【机器学习】22个开源的机器学习库,帮助您选择一个适合您的管道工具。

目录

介绍

概观

部分解决方案

特色工程

多功能工具

boruta-py

tsfresh

Trane

FeatureHub

超参数优化器

Skopt

Hyperopt

simple(x)

Ray.tune

Chocolate

GpFlowOpt

FAR-HO

Xcessiv

HORD

ENAS-pytorch

其他

其他开源解决方案

付费解决方案

 完整的管道解决方案

ATM

MLBox

auto_ml

Auto-sklearn

H2O

TPOT

结论


 

介绍

在Georgian Partners,我们的数据科学团队一直在寻找提高我们投资组合公司效率和团队效率的方法。一种方法是通过改进机器学习管道中的工具。不是手动编写代码来操作数据集,而是从可用的大量库中抽取更有效。然而,有很多图书馆声称以不同的方式改进不同的过程,所以选择是不可能的。在本文中,我们提炼出22个机器学习库的核心功能,以明确哪些是您的管道的正确选择。

典型的机器学习项目分为不同的步骤:收集原始数据,合并数据源,清理数据,特征工程,模型构建,超参数调整,模型验证和部署。数据科学家可以最好地为模型构建阶段贡献自己的聪明才智,但有趣的是,似乎最耗时的机器学习部分是特征工程和超参数调整。因此,许多模型不是最优的,因为它们由于时间限制而从实验阶段过早地转移到生产阶段,或者生产中的部署被延迟。

自动机器学习(AutoML)框架减少了数据科学家的负担,因此他们可以花更少的时间进行特征工程和超参数调整,并花更多的时间尝试模型架构。快速探索解决方案空间不仅可以让数据科学家快速评估数据集,还可以提供基线性能以进行改进。本文提供了对现有AutoML框架的功能评估。

 

概观

我们调查开源框架,自动化机器学习管道的单个或多个部分。可通过自动框架维护的此管道部分是模型构建,特征工程和超参数优化,因此我们分析了声称优化这些任务的任何组合的成熟框架。我们选择能够以最少的实施工作量包含在企业数据科学团队的管道中的库。如果适用,每个框架审查都包括图书馆的目标,实施的统计方法以及在决定是否将其与新项目或现有项目整合时要考虑的主要区别因素。

 

部分解决方案

一些AutoML解决方案解决了数据科学管道的单个部分。虽然它们不提供端到端解决方案,但这些库侧重于实施尖端方法来解决特定问题或在具有独特约束的特定环境中操作,因此值得考虑。

 

特色工程

多功能工具

Link  - 1,347 Stars - 139 Forks - 119 Commits - BSD 3-Clause - Last Release 30 May,2018(0.1.21)

Featuretools是一个旨在通过利用来自关系数据库的数据集中的模式来解决特征工程挑战的软件包。开源平台是为企业客户提供服务的商用前端服务的子集。Featuretools使用称为深度特征合成(DFS)的算法,该算法遍历通过关系数据库的模式描述的关系路径。当DFS遍历这些路径时,它通过应用于数据的操作(包括总和,平均值和计数)生成合成特征。例如,它可以将sum操作应用于来自给定客户端ID的事务列表,将它们聚合到一列中。虽然这是一个深度操作,但算法可以遍历更深层的特征。

 

boruta-py

Link  - 494 Stars - 115 Forks - 171 Commits - BSD 3-Clause - Last Release 22 Jan,2018(1.2.6)

该软件包扩展了许多实现scikit-learn数据转换器接口的分类编码方法。该软件包实现了常见的分类编码方法,例如一个热编码和散列编码,但也有更多利基编码方法,如基本编码和目标编码。这个包对于处理现实世界的分类变量很有用,例如可能有很高的变量基数。该软件包还直接与pandas数据帧一起使用,计算缺失值,并处理可能在训练集之外的变换值。

 

tsfresh

Link  - 2,781 Stars - 340 Forks - 243 Commits - MIT - Last Release 14 Oct,2017(0.11.0)

该库专注于从时间序列数据生成要素。这一广泛的软件包得到了德国零售分析公司的支持,该公司开放了这部分数据科学管道。它提取描述时间序列趋势的形状特征列表。这些形状特征包括像方差一样简单的特征和与近似熵一样复杂的特征。这允许包能够从数据中提取趋势,这将允许机器学习算法更容易地解释时间序列数据集。该软件包使用假设检验来获取大量生成的特征集,并将其减少到最能解释趋势的特征。tsfresh还与pandas和sklearn兼容,允许将其插入现有的数据科学管道中。

 

Trane

Link  - 4 Stars - 1 Forks - 245 Commits - MIT - Last Release 2 Feb,2018(0.1.0)

该软件包是麻省理工学院HDI项目的产品。Trane处理存储在关系数据库中的时间序列数据,用于制定时间序列问题。通过指定关于数据集的元信息,数据科学家可以让引擎从数据库中提取的时间序列数据中形成监督问题。此过程自包含在json文件中,数据科学家将编写该文件来描述列和数据类型。该框架将处理该文件并生成可能的预测问题,这些问题又可用于修改数据集。该项目与特征工具相切,可用于以半自动方式生成其他功能。

 

FeatureHub

Link  - 32 Stars - 5 Forks - 249 Commits - MIT - Last Release 9 May,2018(0.3.0)

来自麻省理工学院HDI实验室的另一个项目,FeatureHub建立在JupyterHub之上,允许数据科学家在开发特征工程方法时进行协作。他们的系统自动“评分”生成的特征,以确定他们手头模型的总体价值。这种众包的特征工程和机器学习方法在测试时显示了获胜解决方案的0.03和0.05分。

 

超参数优化器

Skopt

Link  - 880 Stars - 340 Forks - 173提交 - 新BSD - 最后发布于2011年3月25日(0.5.2)

Skopt是一个超参数优化实现库,包括随机搜索,贝叶斯搜索,决策林和梯度提升树。该软件包包含经过充分研究和可靠的优化方法,但这些模型在小搜索空间和良好的初始估计值下表现最佳。

 

Hyperopt

Link  - 2,161 Stars - 473 Forks - 939 Commits - BSD 3-Clause - Last Release 20 Nov,2016(0.1)

Hyperopt是一个超参数优化库,针对“笨拙”的条件或约束搜索空间进行调整,其中包括随机搜索和parzen估计器树等算法。它支持跨多台机器的并行化,使用MongoDb作为存储超参数组合结果的中心权限。该库由hyperopt-sklearnhyperas实现,两个模型选择和优化库分别建立在scikit-learn和keras之上。

 

simple(x)

链接  - 362星 - 22分叉 - 4个提交 - AGPL 3.0 - 实验(手动安装)

Simple(x)是一个优化库,它实现了贝叶斯优化的算法替代方案。与贝叶斯搜索一样,简单(x)尝试使用尽可能少的样本进行优化,但也将计算复杂度从n³降低到log(n),使其对大型搜索空间非常有用。该库使用单形(n维三角形)来模拟搜索空间而不是超立方体(n维立方体),这样做可以避免贝叶斯优化使用的计算成本高昂的高斯过程。

 

Ray.tune

Link  - 3,435 Stars - 462 Forks - 1,707 Commits - Apache 2.0 - Last Release 27三月,2018(0.4.0)

Ray.tune是一个超参数优化库,主要针对深度学习和强化学习模型。它结合了许多尖端算法,如超频带:最低限度训练模型的算法,以确定超参数的影响,基于人口的训练:在共享超参数的同时调整多个模型的算法,hyperopt和中值停止规则:如果模型的性能低于中等性能,则停止模型。这一切都运行在Ray分布式计算平台之上,这使得它具有极高的可扩展性。

 

Chocolate

Link  - 26 Stars - 26 Forks - 196提交 - BSD 3-Clause - Experimental(Manual Install)

巧克力是一种分散的(支持并行运行的计算集群,没有中央主机)超参数优化库,它使用通用数据库来联合各个任务的执行; 它支持网格搜索,随机搜索,准随机搜索,贝叶斯搜索和协方差矩阵自适应进化策略。其独特的功能包括支持受约束的搜索空间和优化多个损失函数(多目标优化)。

 

GpFlowOpt

Link  - 102 Stars - 27 Forks - 407提交 - Apache 2.0-11 Sep,2017(0.1.0)

GpFlowOpt是建立在顶部的高斯过程优化GpFlow,关于使用Tensorflow一个GPU上运行高斯过程任务的库。如果需要贝叶斯优化并且GPU计算资源可用,这使得GpFlowOpt成为理想的优化器。

 

FAR-HO

链接  - 22星 - 5分叉 - 110提交 - 麻省理工学院 - 实验(手动安装)

FAR-HO是一个库,包含一组在张量流上运行的基于梯度的优化器,包括Reverse-HG和Forward-HG。此库的目的是提供对Tensorflow中基于梯度的超参数优化器的访问,允许在GPU或其他张量优化的计算环境中进行模型训练和超参数优化,以用于深度学习模型。

 

Xcessiv

Link  - 1,055 Stars - 76 Forks - 316 Commits - Apache-2.0 - Last Release 20 Aug,2017(0.5.1)

Xcessiv是大规模模型开发,执行和集成的框架。它的强大之处在于它能够在单个GUI中管理大量机器学习模型的培训,执行和评估。它还具有多个集成工具,用于组合这些模型以实现最佳性能。它包括一个贝叶斯搜索参数优化器,它支持高水平的并行性,并且还支持与TPOT的集成。

 

HORD

Link  - 52 Stars - 8 Forks - 33提交 - 无执照 - 实验(手动安装)

HORD是用于超参数优化的独立算法。它为正在优化的黑盒模型生成一个代理函数,并使用它来生成可能接近理想的“有希望的”超参数,以减少对完整模型的评估。与parzen估计器,SMAC和高斯过程树相比,它始终显示出更高的一致性和更低的错误。它特别适用于具有极高维度的情况。

 

ENAS-pytorch

Link  - 848 Stars - 135 Forks - 33提交 - Apache-2.0 - 实验(手动安装)

ENAS-pytorch在pytorch中实现了高效的神经架构搜索,用于深度学习。它使用参数共享以实现最快的网络,使其适用于深度学习架构搜索。

 

其他

其他开源解决方案

这些解决方案要么与前面提到的解决方案太相似,要么仍在开发中。它们列在此处供参考:

  • Gpy / GpyOpt(高斯过程超优化库)
  • auto-keras(Keras架构和超参数搜索库)
  • randopt(实验管理和超参数搜索库)

 

付费解决方案

随着机器学习空间的不断发展,许多公司如雨后春笋般涌现,以解决整个数据科学过程中出现的各种问题。以下是AutoML公司列表。由于我们没有对这些解决方案进行基准测试或测试,因此我们不评论其功效或特性。

  • H2O无人驾驶AI(全管道)
  • Mljar(全管道)
  • DataRobot(完整管道)
  • MateLabs(全管道)
  • SigOpt(超参数优化)

 

 完整的管道解决方案

ATM

Link  - 251 Stars - 56 Forks - 557提交 - 麻省理工学院 - 实验(手动安装)

Auto-Tune Models是由麻省理工学院的“人 - 数据交互”项目(与featuretools相同)开发的框架,用于快速培训机器学习模型,而且工作量很小。它使用贝叶斯调优和强盗库使用穷举搜索和超参数优化来执行模型选择。ATM仅支持分类问题,并支持AWS上的分布式计算。

 

MLBox

Link  - 504 Stars - 115 Forks - 854 Commits - BSD 3-Clause - 2017年8月25日(0.5.0)

MLBox是最近的自动机器学习框架,其目标是为自动机器学习提供更新,更新的途径。除了许多现有框架实现的特征工程之外,它还提供数据收集,数据清理和列车测试漂移检测。它使用Tree Parzen Estimators优化所选模型类型的超参数。

 

auto_ml

Link  - 793 Stars - 146 Forks - 1,149 Commits - MIT - Last Release 11 Sep,2017(2.7.0)

Auto_ml是作为一种工具开发的,旨在提高从数据中获取的价值,而不需要太多工作。该框架使用基于进化网格搜索的方法完成特征处理和模型优化的繁重工作。它通过利用高度优化的库(如XGBoost,TensorFlow,Keras,LightGBM和sklearn)来提高速度。该框架声称最多1毫秒的预测时间是其销售特征。该框架可快速洞察数据集,如特征重要性,并创建初始预测模型。

 

Auto-sklearn

Link  - 2,271 Stars - 438 Forks - 1,839提交 - BSD-3-Clause - Last Release 5 Jan,2018(0.3.0)

Auto-sklearn是一个框架,它使用贝叶斯搜索来优化数据预处理器,功能预处理器和机器学习管道中使用的分类器。多个管道经过培训并整合成一个完整的模型。该框架由弗莱堡大学的ML4AAD实验室编写。该优化过程使用由同一研究实验室编写的SMAC3框架完成。顾名思义,该模型实现了sklearn,它用于获取机器学习算法。Autosklearn的主要特点是一致性和稳定性。

 

H2O

Link  - 3,132 Stars - 1,217 Forks - 22,936提交 - Apache-2.0 - Last Release 7 Jun,2018(3.20.0.1)

H2O是一个用Java编写的机器学习平台,它在与sklearn等机器学习库类似的抽象级别上运行。但是,它还包含一个自动机器学习模块,该模块利用其包含的算法来创建机器学习模型。该框架对内置于H2O系统的预处理器执行详尽搜索,并使用笛卡尔网格搜索或随机网格搜索来优化超参数。H2O最大的优势在于它能够形成大型计算机集群,使其能够大规模增长。它还具有python,javascript,tableau,R和Flow(web UI)中的绑定功能。

 

TPOT

Link  - 4,130 Stars - 705 Forks - 1,766 Commits - LGPL-3.0 - Last Release 27 Sep,2017(0.9)

TPOT或基于树的管道优化工具,是一种用于查找和生成最佳数据科学管道代码的遗传编程框架。TPOT从sklearn中获取算法,就像其他自动机器学习框架一样。TPOT最大的优势在于其独特的优化方法,可以提供更多独特的管道。它还包括一个将训练好的管道直接转换为代码的工具,这对于希望进一步调整生成的模型的数据科学家来说是一个主要的好处。

 

结论

这些框架为常见的数据科学问题提供了有价值的解决方案,他们能够显着提高数据科学团队的工作效率,然后他们花费更少的时间来实现算法,并花更多的时间思考理论。但是,本调查未涵盖许多图书馆,并会定期开发新图书馆。我们鼓励团队探索github以解决他们的问题,并向那里的许多小型但高质量的机器学习项目展示一些爱好。

 

原文:https://medium.com/georgian-impact-blog/automatic-machine-learning-aml-landscape-survey-f75c3ae3bbf2

 

 

 

 

 

 

 

你可能感兴趣的:(Machine,Learning,机器学习算法理论与实战)