在 Georgian Partners,他们的统计数据自然科学工程项目组一直在寻找能提高工程项目组工作效率的方式,其中的一种方式是改良机器学习管线工具,使用大量的拉什全自动撰写标识符操作统计数据集相比之下更加有效。然而,有许多相同的库宣称他们透过相同的方式对机器学习的相同部份展开改良,所以要挑选出出最合适的库极难。在这首诗中,他们提炼出了 22 个机器学习库的核心功能(以开放源码工程项目为主),帮助你做出正确的优先选择。
典型的机器学习工程项目包涵相同的关键步骤:搜集原始统计数据、分拆统计管理工具、清扫统计数据、特点工程建设、数学模型构筑、超模块修正、数学模型校正和布署。统计数据生物学家能为数学模型构筑期贡献他们的才智,但有意思的是,最费时的机器学习部份似乎是特点工程建设和超模块修正。因而,许多数学模型并不是最优化的,由于受到天数限制,它过早从实验期进入到制造自然环境,或者因为花了太多天数Listary导致到制造自然环境的布署被延后。
全自动机器学习(AutoML)构架减少了统计数据生物学家的经济负担,他们能花更少的天数展开特点工程建设和超模块调整,花更多的天数用作测试数学模型构架。加速积极探索软件系统空间不仅让统计数据生物学家能加速地评估结果统计数据集,还为数学模型改良提供更多了剖面性能。
概 述他们考察了许多开放源码构架,它能用作全智能化机器学习管线的一个或多个部份。机器学习管线的那些部份能透过全自动构架展开数学模型构筑、特点工程建设和超模块强化,因而他们对宣称能强化那些任务的成熟构架展开了分析。他们优先选择能让统计数据自然科学工程项目组以最多的工作工作效率把它包涵在机器学习管线中的库。我们的评估结果标准包括:库要同时实现的目标、库同时实现的统计方式,以及在决定是否将其与新工程项目或现有工程项目展开软件系统时需要考虑的主要因素。
许多 AutoML 软件系统化解了统计数据自然科学管线的一般而言部份。它不提供起新端软件系统,一般着重于同时实现前沿的方式来化解某一问题,或被用在具有独有束缚的某一自然环境中。
特点工程建设 feature-tools工程项目地址:https://github.com/Featuretools/featuretools
Star:1,347
Fork:139
最新发布:2018 年 5 月 30 日(0.1.21)
featuretools 是一个旨在透过利用关系统计数据库统计数据集中的模式来化解特点工程问题的开放源码库。它使用了深度特点合成(DFS)算法,这个算法会遍历关系统计数据库模式所描述的统计数据关系路径。DFS 在遍历那些路径时,透过应用作统计数据的操作(如 sum、average、count)来生成合成特点。例如,它能对来自给定客户 ID 的事务列表展开 sum 操作。不过这是一个深度操作,算法能遍历更深层的特点。featuretools 的最大优势在于它的可靠性以及在使用天数序列统计数据时处理信息泄漏的能力。
boruta-py工程项目地址:https://github.com/scikit-learn-contrib/boruta_py
Star:318
Fork:82
最新发布:2017 年 3 月 5 日(0.1.5)
boruta-py 是 brouta 特点消减策略的一种同时实现,其中问题是以“完全相关”的方式展开构筑,算法将保留对数学模型有显著贡献的所有特点。这与其他许多特点消减算法所使用的“最小化最优化”特点集相反。
boruta 透过创建由目标特点的随机排序值组成的合成特点来确定特点重要性,然后在原始特点集上训练基于简单树的分类器和在合成特点中替换目标特点的特点集。所有特点的性能差异被用作计算相关性。
categorical-encoding工程项目地址:https://github.com/scikit-learn-contrib/categorical-encoding
Star:494
Fork:115
最新发布:2018 年 1 月 22 日(1.2.6)
这个库扩展了许多同时实现 scikit-learn 统计数据转换器接口的分类编码方式,并同时实现了常见的分类编码方式,例如单热编码和散列编码,也有更利基的编码方式,如基本编码和目标编码。这个库对于处理现实世界的分类变量来说很有用,比如那些具有高基数的变量。这个库还能直接与 pandas 一起使用,用作计算缺失值,以及处理训练集之外的变换值。
tsfresh工程项目地址:https://github.com/blue-yonder/tsfresh
Star:2,781
Fork:340
最新发布:2017 年 10 月 14 日(0.11.0)
这个库专注于基于天数序列统计数据生成特点,由德国零售分析公司开放源码,并提供更多支持。它从天数序列统计数据中提取描述天数序列趋势的特点列表。那些特点包括像方差一样简单的特点和与近似熵一样复杂的特点。这个库能从统计数据中提取趋势,让道中。Tsfresh 的主要功能是它的可伸缩统计数据处理能力,并已在具有大量天数序列统计数据的制造系统中得到了校正。
Trane工程项目地址:https://github.com/HDI-Project/Trane
Star:4
Fork:1
最新发布:2018 年 2 月 5 日(0.1.0)
这个库是麻省理工学院 HDI 工程项目的产品。Trane 能处理存储在关系统计数据库中的天数序列统计数据,用作表述天数序列问题。统计数据科学家能透过指定统计数据集元信息让这个引擎表述统计数据库的天数序列统计数据的监督问题。这个过程透过 json 文件展开描述,统计数据生物学家将在这个文件中描述列和统计数据类型。这个构架会处理这个文件,并生成可能的预测问题,而那些问题又可用作修改统计数据集。这个工程项目可用作以半全智能化的方式生成其他特点。
FeatureHub工程项目地址:https://github.com/HDI-Project/FeatureHub
Star:32
Fork:5
最新发布:2018 年 5 月 9 日(0.3.0)
来自麻省理工学院 HDI 实验室的另一个工程项目,FeatureHub 建立在 JupyterHub 之上,能让统计数据生物学家在开发特点工程建设方法时展开协作。FeatureHub 会全自动给生成的特点“打分”,以确定数学模型的总体价值。
超模块强化器 Skopt工程项目地址:https://scikit-optimize.github.io/
Star:880
Fork:340
最新发布:2011 年 3 月 25 日(0.5.2)
Skopt 是一个超模块强化库,包括随机搜索、贝叶斯搜索、决策森林和梯度提升树。这个库提供更多了可靠的强化方式,不过那些数学模型在给定较小的搜索空间和良好的初始估计值时表现最佳。
Hyperopt工程项目地址:https://github.com/hyperopt/hyperopt-sklearn
Star:2,161
Fork:473
最新发布:2016 年 11 月 20 日(0.1)
Hyperopt 是一个超模块强化库,能修正“笨拙”的条件或受束缚的搜索空间。它支持跨多台机器的并行化,使用 MongoDb 作为存储超模块组合结果的中心统计数据库。这个库透过 hyperopt-sklearn 和 hyperas 来同时实现,而这两个数学模型优先选择和强化库又分别是基于 scikit-learn 和 keras 构筑的。
simple(x)工程项目地址:https://github.com/chrisstroemel/Simple
Star:362
Fork:22
最新发布:处于实验期,需要全自动安装
simple(x) 是一个强化库,是贝叶斯强化算法的一个替代方案。与贝叶斯搜索一样,simple(x) 尝试使用尽可能少的样本展开强化,并将计算复杂度从 n³降低到 log(n),因而对大型搜索空间非常有用。这个库使用单形(n 维三角形)而不是超立方体(n 维立方体)对搜索空间展开建模,这样做能避免计算成本高昂的高斯过程。
Ray.tune工程项目地址:https://github.com/ray-project/ray/tree/master/python/ray/tune
Star:3,435
Fork:462
最新发布:2018 年 3 月 27 日(0.4.0)
Ray.tune 是一个超模块强化库,主要针对深度学习和强化学习数学模型。它结合了许多尖端算法,如超频(最低限度地训练可用作确定超模块效果的数学模型的算法)、基于人口的训练(在共享超模块的同时修正多个数学模型的算法)、响应面算法和中值停止规则(如果数学模型的性能低于中值就将其停止)。这一切都运行在 Ray 分布式计算平台之上,这使得它具有极高的可扩展性。
Chocolate工程项目地址:https://github.com/AIworx-Labs/chocolate
Star:26
Fork:26
最新发布:处于实验期,需要全自动安装
Chocolate 是一种分散的(支持没有中央主节点的并行计算集群)超模块强化库,它使用公共统计数据库来联合各个任务的执行,支持网格搜索、随机搜索、准随机搜索、贝叶斯搜索和协方差矩阵自适应进化策略。它的独有的功能包括支持受束缚的搜索空间和强化多个损失函数(多目标强化)。
GpFlowOpt工程项目地址:https://github.com/GPflow/GPflowOpt
Star:102
Fork:27
最新发布:2017 年 9 月 11 日(0.1.0)
GpFlowOpt 是一个基于 GpFlow 的高斯过程强化器,GpFlow 是一个使用 Tensorflow 在 GPU 上运行高斯过程任务的库。如果需要贝叶斯强化并且具有可用的 GPU 计算资源,那么 GpFlowOpt 会是一个理想的强化器。
FAR-HO工程项目地址:https://github.com/lucfra/FAR-HO
Star:22
Fork:5
最新发布:处于实验期,需要全自动安装
FAR-HO 是一个包涵了一组在运行在 Tensorflow 上的基于梯度的强化器。这个库的目的是提供更多对 Tensorflow 中基于梯度的超模块强化器的访问,允许在 GPU 或其他针对张量强化的计算自然环境中展开数学模型训练和超模块强化。
Xcessiv工程项目地址:https://github.com/reiinakano/xcessiv
Star:1,055
Fork:76
最新发布:2017 年 8 月 20 日(0.5.1)
Xcessiv 是一个用作大规模数学模型开发、执行和软件系统的构架。它的强大之处在于能透过一般而言 GUI 来管理大量机器学习数学模型的训练、执行和评估结果。它还提供更多了多个软件系统工具,用作组合那些数学模型以同时实现最佳性能。它提供更多了一个贝叶斯搜索模块强化器,支持高水平的并行,并且还支持与 TPOT 的软件系统。
HORD工程项目地址:https://github.com/ilija139/HORD
Star:52
Fork:8
最新发布:处于实验期,需要全自动安装
HORD 是一种用作超模块强化的独立算法。它为黑盒数学模型生成一个代理函数,并使用代理函数来生成可能接近理想的超模块,以消减对完整数学模型的评估结果。与 parzen estimator、SMAC 和高斯过程相比,它始终表现出更高的一致性和更低的错误率。它特别适用作具有极高维度的情况。
ENAS-pytorch工程项目地址:https://github.com/ilija139/HORD
Star:848
Fork:135
最新发布:处于实验期,需要全自动安装
ENAS-pytorch 使用 pytorch 同时实现了高效的神经构架搜索。它透过共享模块来同时实现最快的网络,非常适用作深度学习构架搜索。
其 他 其他开放源码软件系统那些软件系统要么与前面提到的软件系统很相似,要么仍在开发当中。在这里列在供参考:
Gpy/GpyOpt(高斯过程超强化库)
auto-keras(Keras 构架和超模块搜索库)
randopt(实验管理和超模块搜索库)
付费软件系统随着机器学习的不断发展,许多公司如雨后春笋般涌现,以化解整个统计数据科学过程中出现的各种问题。以下是许多 AutoML 公司列表。由于他们没有对那些软件系统展开基准测试,因而不对它的功效或特性展开评论。
H2O 无人驾驶 AI(全管线)
Mljar(全管线)
DataRobot(全管线)
MateLabs(全管线)
SigOpt(超模块强化)
全管线软件系统 ATM工程项目地址:https://github.com/HDI-Project/ATM
Star:251
Fork:56
最新发布:处于实验期,需要全自动安装
Auto-Tune Models 是由麻省理工学院的“人与统计数据交互”工程项目(与 featuretools 相同)开发的构架,用作加速培训机器学习数学模型,而且工作工作效率很小。它使用穷举搜索和超模块强化来执行数学模型优先选择。ATM 仅支持分类问题,并支持 AWS 上的分布式计算。
MLBox工程项目地址:https://github.com/AxeldeRomblay/MLBox
Star:504
Fork:115
最新发布:2017 年 8 月 25 日(0.5.0)
MLBox 是一个全智能化机器学习构架,其目标是为全自动机器学习提供更多更新的途径。除了现有构架已经同时实现的特点工程建设之外,它还提供更多统计数据收集、统计数据清扫和训练测试漂移检测。它使用 Tree Parzen Estimator 来强化所选数学模型类型的超模块。
auto_ml工程项目地址:https://github.com/ClimbsRocks/auto_ml
Star:793
Fork:146
最新发布:2017 年 9 月 11 日(2.7.0)
法完成特点处理和数学模型强化。它透过利用高度强化的库(如 XGBoost、TensorFlow、Keras、LightGBM 和 sklearn)来提高速度。最多 1 毫秒的预测天数是它的亮点。这个构架可加速洞察统计数据集,如特点重要性,并创建初始预测数学模型。
auto-sklearn工程项目地址:https://github.com/automl/auto-sklearn
Star:2,271
Fork:438
最新发布:2018 年 1 月 5 日(0.3.0)
auto-sklearn 使用贝叶斯搜索来强化机器学习管线中使用的统计数据预处理器、特点预处理器和分类器。多个管线经过训练并整合成一个完整的数学模型。这个构架由弗莱堡大学的 ML4AAD 实验室开发。它的强化过程使用由同一研究实验室开发的 SMAC3 构架来完成。顾名思义,这个数学模型同时实现了 sklearn。auto-sklearn 的主要特点是一致性和稳定性。
H2O工程项目地址:https://github.com/h2oai/h2o-3
Star:3,132
Fork:1,217
最新发布:2018 年 6 月 7 日(3.20.0.1)
H2O 是一个使用 Java 开发的机器学习平台,它在与机器学习库(如 sklearn)类似的抽象级别上运行。它还提供更多了一个全自动机器学习模块,这个模块利用自身包涵的算法来创建机器学习数学模型。该构架对内置于 H2O 系统的预处理器执行详尽搜索,并使用笛卡尔网格搜索或随机网格搜索来强化超模块。H2O 最大的优势在于它能形成大型计算机集群,从而能展开大规模伸缩。它还支持与 python、javascript、tableau、R 和 Flow(web UI)软件系统。
TPOT工程项目地址:https://github.com/EpistasisLab/tpot
Star:4,130
Fork:705
最新发布:2017 年 9 月 27 日(0.9)
的强化方式,能提供更多更多独有的管线。它还提供更多了一个将训练好的管线直接转换为标识符的工具,这对于希望进一步修正生成数学模型的统计数据生物学家来说是一个很大的好处。
结 论那些构架为常见的统计数据自然科学问题提供更多了有价值的软件系统,它能显著提高统计数据自然科学工程项目组的工作工作效率,这样他们就能减少花在同时实现算法上的天数,并花更多的天数思考理论。
英文原文:
https://medium.com/georgian-impact-blog/automatic-machine-learning-aml-landscape-survey-f75c3ae3bbf2
如果你喜欢这首诗,或希望看到更多类似优质报道,记得给我留言和点赞哦!