简单生活第一步:数据科学家该了解的4个Python自动库
全文共4739字 , 预计学习时长12分钟
本文插图
图源:unsplash
机器学习(AutoML)是一个新兴领域 , 其中用来建模数据的机器学习模型是一个自动化的过程 , AutoML的功能使建模更为轻松 。 如果对AutoML感兴趣 , 笔者向你推荐以下4个必学的Python库 。
1.auto-sklearn
auto-sklearn是一个自动机器学习工具包 , 无缝集成业内许多人都熟悉的标准sklearn界面 。 通过使用贝叶斯优化等最新方法 , 构建库来导航可能的模型空间 , 并学习推断特定的配置是否能很好地完成给定任务 。
这个库是由Matthias Feurer等人创建 , 其技术细节在一篇名为《高效和鲁棒机器学习》的论文中进行了描述 。 Feurer写道:“我们引入了一个基于scikit-learn的新鲁棒性自动系统——使用15个分类器、14个特征预处理方法和4个数据预处理方法生成110个超参数的结构化假设空间 。 ”
auto-sklearn可能是入门AutoML的最佳库 。 除了挖掘数据集的数据准备和模型选择之外 , 它还能学习类似数据集上性能良好的模型 。
本文插图
图源:Efficient and Robust Automated Machine Learning(2015)
在有效实施的基础上 , auto-sklearn将所需用户交互降至最低 。 可以使用pip install auto-sklearn来安装库 。
可以使用的两大类是Auto Sklearn Classifier和Auto Sklearn Regressor , 分别用于分类和回归任务 。 两者都有相同的用户指定参数 , 其中最重要的是时间限制和集成大小 。
import autosklearn as ask #ask.regression.AutoSklearnRegressor()for regression tasks model =ask.classification.AutoSklearnClassifier(ensemble_size=10, #size of the endensemble (minimum is 1) time_left_for_this_task=120, #the number ofseconds the process runs for per_run_time_limit=30) #maximum secondsallocated per model model.fit(X_train, y_train) #begin fittingthe search model print(model.sprint_statistics()) #printstatistics for the search y_predictions = model.predict(X_test) #get predictionsfrom the model
【简单生活第一步:数据科学家该了解的4个Python自动库】2.TPOT
TPOT是另一个自动化建模管道的Python库 , 它更强调数据准备、建模算法和模型超参数 。 它通过一种进化的基于树结构自动化特征选择、预处理和构造 , “该结构称为基于树管道优化工具(TPOT) , 可以自动设计和优化机器学习管道 。 ”
本文插图
图源:数据科学自动化中基于树的流水线优化工具的评价(2016)
程序或管道以树状图呈现 。 遗传程序选择并进化某些程序 , 以最大化每个自动机器学习管道的最终结果 。
正如Pedro Domingos所说:“一个拥有大量数据的愚蠢算法胜过一个拥有有限数据的聪明算法 。 ”事实确实如此 , TPOT可以生成复杂的数据预处理管道 。
本文插图
图源:TPOT documentation
就像许多AutoML算法一样 , TPOT管道优化器可能要花几个小时才能产生好的结果 , 你可以在Kaggle commits或者谷歌Colab中运行这些长时间的程序 。
import tpot pipeline_optimizer = tpot.TPOTClassifier(generations=5, #number ofiterations to run the training population_size=20, #number ofindividuals to train cv=5) #number of foldsin StratifiedKFold pipeline_optimizer.fit(X_train, y_train) #fit thepipeline optimizer - can take a long time print(pipeline_optimizer.score(X_test, y_test)) #print scoringfor the pipeline pipeline_optimizer.export('tpot_exported_pipeline.py') #export thepipeline - in Python code!
- 大数据&云计算长飞公司亮相2020中国国际信息通信展览会
- 金十数据|澳大利亚铁矿石对华出口会受影响吗?,中国1年买超6亿吨!煤炭之后
- 丁祖昱|数据中心成投资新风口“数字地产”受青睐
- 数据|4.9%:三季度经济强劲复苏
- 增长|0.7%,一个标志性数据!
- 最高检网站|最高检:多个反映办案质量数据呈现积极变化
- 第一财经|中国GDP数据提振市场情绪 美股集体高开
- 第一财经|碧桂园与秦淮数据签订战略合作协议,共创新基建时代新智慧产城
- 第一财经|中国信登:信托行业标准化监管数据信息完成首次全量采集
- 新华视点微博|一图速览!前三季度中国经济九大数据