LIBLINEAR is an open source library for large-scale linear classification. It supports logistic regression and linear support vector machines. We provide easy-to-use command-line tools and library calls for users and developers. Comprehensive documents are available for both beginners and advanced users. Experiments demonstrate that LIBLINEAR is very efficient on large sparse data sets.
translated by 谷歌翻译
scikit-learn is an increasingly popular machine learning library. Written in Python, it is designed to be simple and efficient, accessible to non-experts, and reusable in various contexts. In this paper, we present and discuss our design choices for the application programming interface (API) of the project. In particular, we describe the simple and elegant interface shared by all learning and processing units in the library and then discuss its advantages in terms of composition and reusability. The paper also comments on implementation details specific to the Python ecosystem and analyzes obstacles faced by users and developers of the library.
translated by 谷歌翻译
There are many excellent toolkits which provide support for developing machine learning software in Python, R, Matlab, and similar environments. Dlib-ml is an open source library, targeted at both engineers and research scientists, which aims to provide a similarly rich environment for developing machine learning software in the C++ language. Towards this end, dlib-ml contains an extensible linear algebra toolkit with built in BLAS support. It also houses implementations of algorithms for performing inference in Bayesian networks and kernel-based methods for classification, regression, clustering, anomaly detection, and feature ranking. To enable easy use of these tools, the entire library has been developed with contract programming, which provides complete and precise documentation as well as powerful debugging tools.
translated by 谷歌翻译
The Universal Feature Selection Tool (UniFeat) is an open-source tool developed entirely in Java for performing feature selection processes in various research areas. It provides a set of well-known and advanced feature selection methods within its significant auxiliary tools. This allows users to compare the performance of feature selection methods. Moreover, due to the open-source nature of UniFeat, researchers can use and modify it in their research, which facilitates the rapid development of new feature selection algorithms.
translated by 谷歌翻译
预测使用地面真理听起来像机器学习中的矛盾。然而,如果没有在寻找图表表示的区域中的数千篇论文,则使用这种不切实际的设置。为了通过使用所获得的表示来评估节点分类的多标签问题,许多作品在预测阶段假设每个测试实例的标签数是已知的。在实践中,这样的理论信息很少可用,但我们指出这种不恰当的环境现在在这个研究领域普遍存在。我们详细探讨了情况发生的原因。我们的分析表明,具有不切实际的信息,性能可能会过度估计。为了了解未使用合适的预测,我们识别应用一些多标签技术的困难。对于未来的研究,我们提出了简单且有效的设置而不使用实际上未知的信息。最后,我们借此机会对多标签节点分类进行主要的图形表示学习方法进行公平和严肃的比较。
translated by 谷歌翻译
Optimal transport has recently been reintroduced to the machine learning community thanks in part to novel efficient optimization procedures allowing for medium to large scale applications. We propose a Python toolbox that implements several key optimal transport ideas for the machine learning community. The toolbox contains implementations of a number of founding works of OT for machine learning such as Sinkhorn algorithm and Wasserstein barycenters, but also provides generic solvers that can be used for conducting novel fundamental research. This toolbox, named POT for Python Optimal Transport, is open source with an MIT license.
translated by 谷歌翻译
支持向量机(SVM)是机器学习工具箱中的标准方法,特别是对于表格数据。但是,非线性内核SVM通常以较长的培训时间为代价提供高度准确的预测指标。随着时间的推移,数据量的指数增长加剧了这个问题。过去,它主要是通过两种类型的技术来解决的:近似求解器和平行的GPU实现。在这项工作中,我们将这两种方法结合在一起,以设计非常快速的双SVM求解器。我们充分利用现代计算服务器的功能:多核架构,多个高端GPU和大型随机访问存储器。在这样的机器上,我们在24分钟内在ImageNet数据集上训练一个大利润分类器。
translated by 谷歌翻译
数值验证是机器学习研究的核心,因为它允许评估新方法的实际影响,并确认理论和实践之间的一致性。然而,该领域的快速发展构成了一些挑战:研究人员面临着大量的方法来比较,有限的透明度和最佳实践的共识以及乏味的重新实施工作。结果,验证通常是非常部分的,这可能会导致错误的结论,从而减慢研究的进展。我们提出了Benchopt,这是一个协作框架,旨在在跨编程语言和硬件体系结构的机器学习中自动化,复制和发布优化基准。 Benchopt通过提供用于运行,共享和扩展实验的现成工具来简化社区的基准测试。为了展示其广泛的可用性,我们在三个标准学习任务上展示基准:$ \ ell_2 $ regulaine的逻辑回归,套索和RESNET18用于图像分类的培训。这些基准强调了关键的实际发现,这些发现对这些问题的最新问题更加细微,这表明在实际评估中,魔鬼在细节上。我们希望Benchopt能在社区中促进合作工作,从而改善研究结果的可重复性。
translated by 谷歌翻译
在过去的二十年中,几个机器学习(ML)库已自由使用。许多研究都使用此类图书馆对预测软件工程(SE)任务进行实证研究。但是,使用一个库在另一个库上使用的差异被忽略了,隐含地假设使用这些库中的任何一个都会为用户提供相同或非常相似的结果。本文旨在提高人们对使用不同ML库进行软件开发工作估算(见)时所产生的差异的认识,这是研究最广泛的SE预测任务之一。为此,我们研究了3个最受欢迎的ML开源库(即不同语言)(即Scikit-Learn,Caret和Weka)提供的4个确定性机器学习者。我们进行了一项彻底的实证研究,比较了机器学习者在5个最常见的数据集上的性能,请参见方案(即,盒子内ML和TUNED-ML)以及深入的分析其API的文档和代码。我们的研究结果表明,在总共研究的105例病例中,这3个文库提供的预测平均为95%。在大多数情况下,这些差异明显很大,并且误容最多。每个项目3,000小时。此外,我们的API分析表明,这些库为用户提供了可以操纵参数的不同级别的控制,并且总体上缺乏清晰度和一致性,这可能会误导用户。我们的发现强调,ML库是参观研究的重要设计选择,这可能会导致性能差异。但是,这种差异不足。最后,我们通过强调开放式挑战,对图书馆的开发商以及使用它们的研究人员和从业者提出建议。
translated by 谷歌翻译
Machine Learning for Source Code (ML4Code) is an active research field in which extensive experimentation is needed to discover how to best use source code's richly structured information. With this in mind, we introduce JEMMA, an Extensible Java Dataset for ML4Code Applications, which is a large-scale, diverse, and high-quality dataset targeted at ML4Code. Our goal with JEMMA is to lower the barrier to entry in ML4Code by providing the building blocks to experiment with source code models and tasks. JEMMA comes with a considerable amount of pre-processed information such as metadata, representations (e.g., code tokens, ASTs, graphs), and several properties (e.g., metrics, static analysis results) for 50,000 Java projects from the 50KC dataset, with over 1.2 million classes and over 8 million methods. JEMMA is also extensible allowing users to add new properties and representations to the dataset, and evaluate tasks on them. Thus, JEMMA becomes a workbench that researchers can use to experiment with novel representations and tasks operating on source code. To demonstrate the utility of the dataset, we also report results from two empirical studies on our data, ultimately showing that significant work lies ahead in the design of context-aware source code models that can reason over a broader network of source code entities in a software project, the very task that JEMMA is designed to help with.
translated by 谷歌翻译
该报告介绍了开源软件包,该软件包在过去几年中实现了我们的一系列增强作品。特别是,该软件包主要包括三条技术,其中两个已经是流行的增压树平台中的标准实现:(i)基于直方图的(基于功能 - 固定)方法使树实施方便。在Li等人(2007年)中,开发了一种简单的固定长度自适应分子算法。在本报告中,我们证明,与流行树平台中更复杂的变体相比,如此简单的算法仍然非常有效。 (ii)基于损失函数的二阶导数,在Li(20010)中的显式增益公式通常在一阶方法上通常会大大改善。尽管LI(2010)中的增益公式是用于逻辑回归损失的,但它是具有第二个衍生物的损失函数的通用公式。例如,开源软件包还包括$ p \ geq 1 $的$ L_P $回归。该软件包的主要贡献是用于多类分类的ABC-Boost(自适应基类提升)。 Li(2008)中的最初作品通过指定“基类”来得出了经典多级逻辑回归的一组新衍生物。如果正确选择基类,则可以显着提高准确性。主要的技术挑战是设计搜索策略以选择基类。先前已发布的作品实施了一个详尽的搜索程序,以查找计算上太昂贵的基类。最近,一份新报告(Li and Zhao,20022)提出了一个“快速ABC-Boost”的统一框架,该框架使用户可以为基类有效选择适当的搜索空间。该软件包提供了Linux,Windows,Mac,Matlab,R,Python的接口。
translated by 谷歌翻译
上下文:差分测试是一种有用的方法,它使用相同算法的不同实现,并比较软件测试的结果。近年来,这种方法已成功用于深度学习框架的测试活动。目的:对超出深度学习的差异测试的应用几乎没有知识。在本文中,我们要缩小此差距以进行分类算法。方法:我们使用Scikit-Learn,Weka,Spark Mllib和Caret进行了案例研究,在其中我们通过考虑哪些算法在多个框架中可用,通过识别应识别的算法对应表现出相同的算法来确定差异测试的潜力。行为,以及通过执行确定对的测试并分析偏差来实现的有效性。结果:尽管我们发现流行算法的潜力很大,但可行性似乎有限,因为通常无法确定其他框架中相同的配置。可行测试的执行表明,分数和类别存在很大的偏差。只有基于班级统计意义的宽松方法不会导致大量的测试失败。结论:超出深度学习的差异测试的潜力似乎有限用于研究机器学习库的质量。如果从业人员对实施有深入的了解,则可能仍然使用该方法,尤其是如果仅考虑班级显着差异的粗糙甲骨文就足够了。
translated by 谷歌翻译
Establishing open and general benchmarks has been a critical driving force behind the success of modern machine learning techniques. As machine learning is being applied to broader domains and tasks, there is a need to establish richer and more diverse benchmarks to better reflect the reality of the application scenarios. Graph learning is an emerging field of machine learning that urgently needs more and better benchmarks. To accommodate the need, we introduce Graph Learning Indexer (GLI), a benchmark curation platform for graph learning. In comparison to existing graph learning benchmark libraries, GLI highlights two novel design objectives. First, GLI is designed to incentivize \emph{dataset contributors}. In particular, we incorporate various measures to minimize the effort of contributing and maintaining a dataset, increase the usability of the contributed dataset, as well as encourage attributions to different contributors of the dataset. Second, GLI is designed to curate a knowledge base, instead of a plain collection, of benchmark datasets. We use multiple sources of meta information to augment the benchmark datasets with \emph{rich characteristics}, so that they can be easily selected and used in downstream research or development. The source code of GLI is available at \url{https://github.com/Graph-Learning-Benchmarks/gli}.
translated by 谷歌翻译
基准和性能分析在理解迭代优化启发式(IOHS)的行为中发挥着重要作用,例如本地搜索算法,遗传和进化算法,贝叶斯优化算法等。然而,这项任务涉及手动设置,执行和分析实验单独的基础,这是艰苦的,可以通过通用和设计精心设计的平台来缓解。为此,我们提出了Iohanalyzer,一种用于分析,比较和可视化IOH的性能数据的新用户友好的工具。在R和C ++中实现,Iohanalyzer是完全开源的。它可以在Cran和GitHub上获得。 Iohanalyzer提供有关固定目标运行时间的详细统计信息以及具有实际值的Codomain,单目标优化任务的基准算法的固定预算性能。例如,在多个基准问题上的性能聚合是可能的,例如以经验累积分布函数的形式。 Iohanalyzer在其他性能分析包上的主要优点是其高度交互式设计,允许用户指定对其实验最有用的性能测量,范围和粒度,以及不仅分析性能迹线,还可以分析演变动态状态参数。 Iohanalyzer可以直接从主基准平台处理性能数据,包括Coco平台,JOVERRAD,SOS平台和iohExperenter。提供R编程接口,供用户更倾向于对实现的功能进行更精细的控制。
translated by 谷歌翻译
我们提出了Caisar,这是一个正在积极开发的开源平台,以表征AI Systems的鲁棒性和安全性。Caisar提供了一个统一的入口点,用于使用WhyML(Why3验证平台的成熟和表达语言)来定义验证问题。此外,Caisar协调并创建了最先进的机器学习验证工具,该工具单独无法有效地处理所有问题,但总体可以涵盖越来越多的属性。我们的目的是一方面,通过减少选择针对给定验证问题量身定制的方法的负担来协助V \&v流程,另一方面描述一个平台。CAISAR很快将在https://git.frama-c.com/pub/caisar提供。
translated by 谷歌翻译
GitHub是Internet上最大的开源软件主机。这个大型,可自由访问的数据库吸引了从业人员和研究人员的注意。但是,随着Github的增长的继续,越来越难以导航遍布广泛领域的大量存储库。过去的工作表明,考虑到应用程序域对于预测存储库的普及以及有关项目质量的推理的任务至关重要。在这项工作中,我们建立在先前注释的5,000个GitHub存储库的数据集上,以设计自动分类器,以通过其应用程序域对存储库进行分类。分类器使用最先进的自然语言处理技术和机器学习,根据五个应用程序域从多个数据源和目录存储库中学习。我们用(1)自动分类器贡献,该分类器可以将流行的存储库分配给每个应用程序域,至少具有70%的精度,(2)对该方法在不流行的存储库中的性能进行调查,以及(3)这种方法对这种方法的实际应用程序,用于回答软件工程实践的采用如何在应用程序域之间有何不同。我们的工作旨在帮助GitHub社区确定感兴趣的存储库,并为未来的工作开放有希望的途径,以调查来自不同应用领域的存储库之间的差异。
translated by 谷歌翻译
Scikit-learn is a Python module integrating a wide range of state-of-the-art machine learning algorithms for medium-scale supervised and unsupervised problems. This package focuses on bringing machine learning to non-specialists using a general-purpose high-level language. Emphasis is put on ease of use, performance, documentation, and API consistency. It has minimal dependencies and is distributed under the simplified BSD license, encouraging its use in both academic and commercial settings. Source code, binaries, and documentation can be downloaded from http://scikit-learn.sourceforge.net.
translated by 谷歌翻译
在确定性优化中,通常假定问题的所有参数都是固定和已知的。但是,实际上,某些参数可能是未知的先验参数,但可以从历史数据中估算。典型的预测 - 优化方法将预测和优化分为两个阶段。最近,端到端的预测到优化已成为有吸引力的替代方法。在这项工作中,我们介绍了PYEPO软件包,这是一个基于Pytorch的端到端预测,然后在Python中进行了优化的库。据我们所知,PYEPO(发音为“带有静音” n“”的“菠萝”)是线性和整数编程的第一个通用工具,具有预测的目标函数系数。它提供了两种基本算法:第一种基于Elmachtoub&Grigas(2021)的开创性工作的凸替代损失函数,第二个基于Vlastelica等人的可区分黑盒求解器方法。 (2019)。 PYEPO提供了一个简单的接口,用于定义新的优化问题,最先进的预测 - 优化训练算法,自定义神经网络体系结构的使用以及端到端方法与端到端方法与与端到端方法的比较两阶段的方法。 PYEPO使我们能够进行一系列全面的实验,以比较沿轴上的多种端到端和两阶段方法,例如预测准确性,决策质量和运行时间,例如最短路径,多个背包和旅行等问题销售人员问题。我们讨论了这些实验中的一些经验见解,这些见解可以指导未来的研究。 PYEPO及其文档可在https://github.com/khalil-research/pyepo上找到。
translated by 谷歌翻译
随着软件量表和复杂性的快速增长,将大量错误报告提交到错误跟踪系统中。为了加快缺陷维修的速度,需要对这些报告进行准确的分类,以便可以将其发送给适当的开发人员。但是,现有的分类方法仅使用错误报告的文本信息,从而导致其性能较低。为了解决上述问题,本文提出了一种用于错误报告的新自动分类方法。创新是,当对错误报告进行分类时,除了使用报告的文本信息外,还考虑了报告的意图(即建议或解释),从而提高了分类的性能。首先,我们从四个生态系统(Apache,Eclipse,Gentoo,Mozilla)收集错误报告,并手动注释它们以构建实验数据集。然后,我们使用自然语言处理技术来预处理数据。在此基础上,BERT和TF-IDF用于提取意图的功能和多个文本信息。最后,这些功能用于训练分类器。对五个分类器(包括k-nearest邻居,天真的贝叶斯,逻辑回归,支持向量机和随机森林)的实验结果表明,我们提出的方法可实现更好的性能,其F量度从87.3%达到95.5%。
translated by 谷歌翻译
机器学习算法必须能够有效地应对大量数据集。因此,他们必须在任何现代系统上进行良好的扩展,并能够利用独立于供应商的加速器的计算能力。在监督学习领域,支持向量机(SVM)被广泛使用。但是,即使是现代化和优化的实现,例如LIBSVM或ThunderSVM对于尖端硬件的大型非平凡的密集数据集也不能很好地扩展:大多数SVM实现基于顺序最小优化,这是一种优化的固有顺序算法。因此,它们不适合高度平行的GPU。此外,我们不知道支持不同供应商的CPU和GPU的性能便携式实现。我们已经开发了PLSSVM库来解决这两个问题。首先,我们将SVM的配方作为最小二乘问题。然后训练SVM沸腾以求解已知高度平行算法的线性方程系统。其次,我们提供了一个独立但高效的实现:PLSSVM使用不同的可互换后端 - openmp,cuda,opencl,sycl-支持来自多个GPU的NVIDIA,AMD或INTEL等各种供应商的现代硬件。 PLSSVM可以用作LIBSVM的倒入替换。与LIBSVM相比,与ThunderSVM相比,我们观察到高达10的CPU和GPU的加速度。我们的实施量表在多核CPU上缩放,并在多达256个CPU线程和多个GPU上平行加速为74.7,在四个GPU上的并行加速为3.71。代码,实用程序脚本和文档都可以在GitHub上获得:https://github.com/sc-sgs/plssvm。
translated by 谷歌翻译