编辑:[db:作者] 时间:2024-08-25 04:17:42
王小新 编译自 Georgian Impact Blog
量子位 出品 | "大众号 QbitAI
构建一个范例的机器学习项目,一样平常分成以下步骤:
网络原始数据、合并数据源、洗濯数据、特色工程、模型构建、超参数调优、模型验证和设备支配。
全体过程中,模型构建最能表示创造力,而最耗时的,要数特色工程和超参数调优。
于是,有时候会由于赶韶光,过早将模型从实验阶段转移莅临盆阶段,导致它们发挥不出最佳效果;也有时候,会由于花了太多韶光调优导致支配延迟。
这时候,就表示出了自动机器学习(Automatic machine learning, AML)框架的代价。
自动机器学习框架能帮助数据科学家减轻包袱,降落特色工程和超参数调优的事情量,让他们能花更多韶光来考试测验模型架构。快速验证可能的方案不仅能让数据科学家很快地评估目标数据集,也能供应基准性能用以改进。
本文尽可能全面地先容现有的自动机器学习框架,也附上了对应的代码地址。
综述我们对现有的自动机器学习开源框架展开了充分调研,它们一样平常浸染于机器学习的单个或多个步骤。
自动机器学习框架能够处理项目中一部分步骤,包括模型构建、特色工程和超参数优化。因此,我们剖析了一些成熟框架,它们流传宣传能优化个中某些任务组合。
我们挑选出一些能够随意马虎运用到企业数据科学团队的函数库。在先容每个框架时,我们都给出了它的建库目标、利用的统计方法和将其与新项目或现有项目整合时要考虑的紧张成分。
局部办理方案
现有的自动机器学习框架中,有些只办理了数据科学流程的单个步骤。虽然它们不供应端到真个办理方案,但是这些库侧重于利用前辈方法来办理特定问题或是在带有独特约束的特定环境下操作,因此仍值得考虑。
特色工程
1. Featuretools
https://github.com/Featuretools/featuretools
1347星,139 Forks,119 Commits
最新版本为0.1.21,2018.5.30更新
Featuretools是一个自动特色工程的工具,它可以根据一组干系的表来自动布局特色。这个开源库是一个面向企业客户的商用前端做事的子集。
Featuretools利用了一种叫做深度特色合成(Deep Feature Synthesis, DFS)的算法,这个算法能遍历通过关系数据库中模式描述的关系路径。当DFS遍历这些路径时,它通过数据操作(包括求和、取均匀值和计数)天生合成特色。
例如,它可以把求和操作运用到给定客户端ID的事务列表,将它们聚合成一列。虽然这只是一个大略的单次操作,但这个算法可以遍历到更深层的特色。
这个库的上风,在于其可靠性和在处理韶光序列数据时处理信息透露的能力。
2. Boruta-py
https://github.com/scikit-learn-contrib/boruta_py
318星,82 Forks,62 Commits
最新版本为0.1.5,2017.3.5更新
Boruta-py是Brouta特色降维策略的一种实现,以“全干系”办法来办理问题。
这种算法能保留对模型有显著贡献的所有特色,这与很多特色降维方法利用的“最小最优特色集”思路相反。
Boruta方法先对目标特色进行随机重新排序并组成合成特色,然后在原始特色集上演习大略的决策树分类器,再在特色集中把目标特色更换成合成特色,用这三个步骤来确定特色主要性。
个中,不同特色对应的性能差异可用于打算它们的相对主要性。
3. Categorical-encoding
https://github.com/scikit-learn-contrib/categorical-encoding
494星,115Forks,171 Commits
最新版本1.2.6,2018.1.22更新
这个库扩展了许多分类编码方法,可作为Scikit-learn中数据转换器的接口。
它还实现了常见的分类编码方法,如one-hot编码和hash编码,以及很多niche编码方法(包括base n编码和target编码)。
该函数库常用来处理实际问题中的分类变量,如可能带高变量基数的问题。它还能直接与pandas数据帧共用、打算缺失落值和处理可能在演习集之外的变换值。
4. Tsfresh
https://github.com/blue-yonder/tsfresh
2781星, 340 Forks ,243 Commits
最新版本0.11.0,2017.10.14更新
这个库专注于韶光序列数据的特色天生,它由一个德国零售剖析公司支持,是他们数据剖析流程中的一步。
它能提取出一系列用于描述韶光序列趋势的形态特色,这些特色中包括一些大略特色(如方差)和繁芜特色(近似熵)。
这个库能从数据中提取趋势特色,让机器学习算法更随意马虎地阐明韶光序列数据集。它利用假设考验来获取大量天生特色集,并将其减少到少量最具阐明性的趋势特色。
Tsfresh还与pandas和sklearn兼容,可嵌入到现有的数据科学流程中。Tsfresh库的上风在于其可扩展的数据处理实现,这部分已经在具有大量韶光序列数据的生产系统中进行了测试。
5. Trane
https://github.com/HDI-Project/Trane
4星, 1 Fork, 245 Commits
最新版本0.1.0,2018.2.2更新
这个库是麻省理工学院HDI项目的产品。
Trane库可用来处理存储在关系数据库中的韶光序列数据,和表示韶光序列问题。它能列举出关于数据集的元信息,数据科学家能从数据库中的韶光序列数据中提取这些特色来构建有监督问题。
这个过程存储在JSON文件中,数据科学家能改写这个文件来描述列和数据类型。该框架通过处理这个文件来天生可能的预测问题,这些问题能用于修正数据集。
这个项目对feature-tools库很有帮助,可用来以半自动办法天生额外特色。
6. FeatureHub
https://github.com/HDI-Project/FeatureHub
32星,5 Forks ,249 Commits
最新版本0.3.0,2018.5.9更新
这个项目也是麻省理工学院HDI实验室的,它建立在JupyterHub(支持多用户的 Jupyter Notebook做事器)上,让数据科学家在特色工程开拓过程中能协作。
这个别系能自动对天生特色评分,以确定当前模型的总体代价。这种以众包办法进行特色工程和机器学习的方法,在测试时也取得了很好效果。
超参数优化
1. Skopt
https://scikit-optimize.github.io/
880星,340 Forks ,173 Commits
最新版本0.5.2,2018.3.25更新
Skopt是一个超参数优化库,包括随机搜索、贝叶斯搜索、决策森林和梯度提升树。
这个库包含一些理论成熟且可靠的优化方法,但是这些模型在小型搜索空间和良好的初始估计下效果最好。
2. Hyperopt
https://github.com/hyperopt/hyperopt-sklearn
2161星,473 Forks,939 Commits
最新版本0.1,2016.11.20更新
Hyperopt是一个超参数优化库,针对具有一定条件或约束的搜索空间进行调优,个中包括随机搜索和Tree Parzen Estimators(贝叶斯优化的变体)等算法。
它利用MongoDb作为存储超参数组合结果的中央构造,可实现多台电脑的并行打算。
这个库是用hyperopt-sklearn和hyperas实现的,这两个用于模型选择和优化的函数库分别建立在scikit-learn和keras的根本上。
3. Simple(x)
https://github.com/chrisstroemel/Simple,362星, 22 Forks,4 Commits
需手动安装
Simple(x)是一个优化库,可作为贝叶斯优化的替代方法。
Simple(x)和贝叶斯搜索一样,试图以尽可能少的样本进行优化,但也将打算繁芜度从n降落到log(n),这对大型搜索空间非常有用。
这个库利用单形(n维三角形),而不是超立方体(n维立方体),来仿照搜索空间,这样做可以避开贝叶斯优化中具有高打算本钱的高斯过程。
4. Ray.tune
https://github.com/ray-project/ray/tree/master/python/ray/tune
3435星,462 Forks,1,707 Commits
最新版本0.4.0,2018.3.27更新
Ray.tune是一个超参数优化库,紧张适用于深度学习和强化学习模型。它结合了许多前辈算法,如Hyperband算法(最低限度地演习模型来确定超参数的影响)、基于群体的演习算法(Population Based Training,在共享超参数下同时演习和优化一系列网络)、Hyperopt方法和中值停滞规则(如果模型性能低于中等性能则停滞演习)。
这些都运行在Ray分布式打算平台上,这让它具有很强的扩展性。
5. Chocolate
https://github.com/AIworx-Labs/chocolate
26星,26 Forks,196 Commits
需手动安装
Chocolate是一个分布式超参数优化库(支持打算机集群的并走运算且无需中心主机),它利用通用数据库来联合实行各个任务。
它还支持网格搜索、随机搜索、准随机搜索、贝叶斯搜索和自适应协方差矩阵进化策略。它的上风表示在它支持受约束的搜索空间和多丢失函数优化(多目标优化)。
6. GpFlowOpt
https://github.com/GPflow/GPflowOpt
102星,27 Forks ,407 Commits
最新版本0.1.0,2017.9.11更新
GpFlowOpt是一个基于GpFlow库的高斯过程优化器,可利用TensorFlow在GPU上运行高斯过程任务。
你如果要用到贝叶斯优化且有可用的GPU打算资源,那GpFlowOpt库该当是空想之选。
7. FAR-HO
https://github.com/lucfra/FAR-HO
有22星, 5 Forks,110 Commits
需手动安装
FAR-HO库运行在TensorFlow上,包含一系列基于梯度的优化器,包括Reverse-HG和Forward-HG。
这个库旨在构建TensorFlow中基于梯度的超参数优化器的访问,许可在GPU或其他张量优化打算环境中进行深度学习模型的演习和超参数优化。
8. Xcessiv
https://github.com/reiinakano/xcessiv
1055星,76 Forks,316 Commits
最新版本0.5.1,2017.8.10更新
Xcessiv库支持大规模模型开拓、实行和集成。它的上风在于能够在单个GUI界面中管理多个机器学习模型的演习、实行和评估。
它具有多个集成工具来组合这些模型,以实现最佳性能。它包括一个贝叶斯搜索参数优化器,这个优化器支持高等别并行打算,还支持与TPOT库的集成。
9. HORD
https://github.com/ilija139/HORD
52星,8 Forks,33 Commits
需手动安装
HORD是一个用于超参数优化的独立算法,它能为须要优化的黑盒模型天生一个代理函数,并用它来天生最靠近空想状态的超参数组合,以减少对全体模型的评估。
与Tree Parzen Estimators、SMAC和高斯过程方法比较,它始终具有更高的同等性和更低的缺点率,而且这个方法特殊适用于极高维数据剖析。
10. ENAS-pytorch
https://github.com/carpedm20/ENAS-pytorch
848星, 135 Forks,33 Commits
需手动安装
ENAS-pytorch可在pytorch中实现高效的深度学习构造搜索。它利用参数共享来构建更高效的网络,使实在用于深度学习构造搜索。
全流程办理方案
1. ATM
https://github.com/HDI-Project/ATM
251星,56 Forks, 557 Commits
需手动安装
Auto-Tune Models是麻省理工学院HDI项目开拓出的框架,可用于机器学习模型的快速演习,仅需很小的事情量。
它利用贝叶斯优化和Bandits库,利用穷举搜索和超参数优化来实现模型选择。要把稳,ATM仅支持分类问题,也支持AWS上的分布式打算。
2. MLBox
https://github.com/AxeldeRomblay/MLBox
504星,115 Forks,854 Commits
最新版本0.5.0,2017.8.25更新
MLBox是一个新出的框架,其目标是为自动机器学习供应一个最新和最前辈的方法。
除了许多现有框架实现的特色工程外,它还供应数据采集、数据清理和演习-测试漂移检测等功能。
此外,它利用Tree Parzen Estimators来优化所选模型的超参数。
3. auto_ml
https://github.com/ClimbsRocks/auto_ml
793星,146 Forks,1149 Commits
最新版本2.7.0,2017.9.11更新
Auto_ml是一种实用工具,旨在提高从数据中获取的信息量,且无需除数据洗濯外的过多事情。
该框架利用进化网格搜索算法来完成特色处理和模型优化的繁重事情。它利用其它成熟函数库(如XGBoost、TensorFlow、Keras、LightGBM和sklearn)来提高打算速率,还流传宣传只需最多1毫秒来实现预测,这也是这个库的亮点。
该框架可快速洞察数据集(如特色主要性)来创建初始预测模型。
4. auto-sklearn
https://github.com/automl/auto-sklearn
2271星, 438 Forks,1839 Commits
最新版本0.3.0,2018.1.5更新
Auto-sklearn利用贝叶斯搜索来优化机器学习流程中利用的数据预处理器、特色预处理器和分类器,并把多个步骤经由演习后整合成一个完全模型。
这个框架由弗莱堡大学的ML4AAD实验室编写,且个中的优化过程利用同一实验室编写的SMAC3框架完成。
顾名思义,这个模型实现了sklearn中机器学习算法的自动构建。Auto-sklearn的紧张特点是同等性和稳定性。
5. H2O
https://github.com/h2oai/h2o-3
3132星, 1217 Forks,22936 Commits
最新版本3.20.0.1,2018.6.7更新
H2O是一个用Java编写的机器学习平台,它和sklearn等机器学习库的利用体验相似。但是,它还包含一个自动机器学习模块,这个模块利用其内置算法来创建机器学习模型。
该框架对内置于H2O系统的预处理器履行穷举搜索,并利用笛卡尔网格搜索或随机网格搜索来优化超参数。
H2O的上风在于它能够形成大型打算机集群,这使得它在规模上有所增长。它还可在python、javascript、tableau、R和Flow(web UI)等环境中利用。
6. TPOT
https://github.com/EpistasisLab/tpot
4130星,705 Forks,1766 Commits
最新版本0.9,2017.9.27更新
TPOT为基于树的流程优化工具,是一种用于查找和天生最佳数据科学流程代码的遗传编程框架。TPOT和其他自动机器学习框架一样,从sklearn库中获取算法。
TPOT的上风在于其独特的优化方法,可以供应更有效的优化流程。
它还包括一个能把演习好的流程直接转换为代码的工具,这对希望能进一步调整天生模型的数据科学家来说是一个紧张亮点。
原文:https://medium.com/georgian-impact-blog/automatic-machine-learning-aml-landscape-survey-f75c3ae3bbf2
— 完 —
诚挚招聘
量子位正在招募编辑/,事情地点在北京中关村落。期待有才华、有激情亲切的同学加入我们!
干系细节,请在量子位"大众年夜众号(QbitAI)对话界面,回答“招聘”两个字。
量子位 QbitAI 头条号签约作者
'ᴗ' 追踪AI技能和产品新动态
本站所发布的文字与图片素材为非商业目的改编或整理,版权归原作者所有,如侵权或涉及违法,请联系我们删除,如需转载请保留原文地址:http://www.baanla.com/rsq/116683.html
下一篇:返回列表
Copyright 2005-20203 www.baidu.com 版权所有 | 琼ICP备2023011765号-4 | 统计代码
声明:本站所有内容均只可用于学习参考,信息与图片素材来源于互联网,如内容侵权与违规,请与本站联系,将在三个工作日内处理,联系邮箱:123456789@qq.com