顶级 AutoML 自动化机器学习 Python 库介绍


作者: 韩信子@ ShowMeAI
机器学习实战系列: https://www.showmeai.tech/tutorials/41
本文地址: https://www.showmeai.tech/article-detail/289
声明:版权所有,转载请联系平台与作者并注明出处
收藏 ShowMeAI查看更多精彩内容


自动化机器学习,也称为自动化 ML 或 AutoML,是自动化完成开发耗时且需要反复迭代的机器学习建模过程。它让数据科学家、分析师和开发人员轻松构建具有高规模、高效率和生产力的机器学习模型,同时保持模型质量。

常规的机器学习模型开发应用,需要大量时间来构建和比较若干个不同模型。借助自动化机器学习,一些繁琐枯燥的迭代开发环境可以自动完成,提高了效率。


Python 拥有不断增长的开源 AutoML 库生态系统。ShowMeAI在本篇中梳理了截止2022年,最流行和实用的 AutoML 库,其中也有不少企业级应用工具。ShowMeAI本次介绍的AutoML工具库包括:

  • PyCaret
  • H2O AutoML
  • TPOT
  • Auto-sklearn
  • FLAML
  • EvalML
  • AutoKeras
  • Auto-ViML
  • AutoGluon
  • MLBox

💡 PyCaret

PyCaret 是 Python 中的一个开源、低代码机器学习库,可自动执行机器学习工作流。它也是一个端到端的机器学习和模型管理工具,可以成倍地加快实验周期,提升工作开发效率。


与其他开源机器学习库相比,PyCaret 有着明显的低代码特质,可仅用几行代码完成原本需要数百行代码完成的工作,尤其是对于密集的实验迭代过程可以大大提速。PyCaret 本质上是围绕多个机器学习库和框架封装而成,包括大家熟悉的scikit-learn、XGBoost、LightGBM、CatBoost、spaCy、Optuna、Hyperopt 和 Ray等。


Pycaret的相关资料链接如下:

  • 📘 文档: https://pycaret.gitbook.io/
  • 📘 GitHub: https://www.github.com/pycaret/pycaret
  • 📘 教程: https://pycaret.gitbook.io/docs/get-started/tutorials

💡 H2O AutoML

H2O AutoML是另一个很有名的自动化机器学习库,可以帮助我们在有限的时间内自动训练和调优许多模型。

H2O 的核心代码是用 Java 编写的。这些算法在 H2O 的分布式 Map/Reduce 框架之上实现,并利用 Java Fork/Join 框架进行多线程处理。数据被并行读取并分布在集群中,并以压缩方式以列格式存储在内存中。


H2O AutoML 的设计理念是,希望尽量自动化,即用户只需要给定数据集和极少量的参数,即可开始建模和调优,并在指定的时间或者其他约束条件下,尽量找到最佳的模型。

  1. import h2o
  2. from h2o.automl import H2OAutoML
  3. # 初始化
  4. h2o.init()
  5. aml = H2OAutoML(max_models =25,
  6. balance_classes=True,
  7. seed = 1)
  8. # 自动建模训练
  9. aml.train(training_frame = X, y = 'y')
  10. lb = aml.leaderboard
  11. # 获取最佳模型
  12. best_model = aml.get_best_model()
  13. print(best_model)

相关的文档可以在 📘 这里 查阅。

💡 TPOT

TPOT自动化机器学习 (AutoML) 工具库构建在scikit-learn 之上,它使用 Gentic Programming (GP) 来有效地发现给定数据集的最佳模型流水线。

TPOT 使用遗传编程来自动设计和优化一系列数据转换(特征处理)和机器学习模型,并努力最大限度提高给定监督学习数据集的效果。


流程示意图如下:


整个建模调优过程也非常简单,如下2行代码即可完成完整过程。

  1. # 初始化
  2. model = TPOTClassifier(generations=5, population_size=50, cv=cv, scoring='accuracy', verbosity=2, random_state=1, n_jobs=-1)
  3. # 自动化拟合与调优
  4. model.fit(X, y)


关于TPOT的资料可以在它的 📘 文档 和官方 📘 GitHub 查看。

💡 Auto-sklearn

从名字可以看出来,Auto-sklearn 是一个基于sklearn的自动化机器学习工具包。它利用了贝叶斯优化、元学习和集成模型等方法来自动化建模与调优。


使用方法和sklearn非常相似,熟悉sklearn的同学可以无障碍快速应用。示例代码如下:

  1. import autosklearn.classification
  2. # 构建自动化分类器
  3. cls = autosklearn.classification.AutoSklearnClassifier()
  4. # 拟合调优
  5. cls.fit(X_train, y_train)
  6. # 预估
  7. predictions = cls.predict(X_test)

关于Auto-sklearn的资料可以在它的 📘 文档 和官方 📘 GitHub 查看。

💡 FLAML

FLAML 是微软推出的轻量级 Python 自动化机器学习库,可以自动、高效且经济地找到准确的机器学习模型。FLAML还有来自 Visual Studio 2022 中的 ML.NE 模型生成器的 .NET 实现。

FLAML 可以快速找到具有低计算资源的高质量模型。它支持经典机器学习模型和深度神经网络。



关于FLAML的资料可以在它的 📘 文档 和官方 📘 GitHub 查看。大家可以在ShowMeAI的教程文章 📘 AutoML自动化机器学习建模 中查看FLAML的详细用法,简单的使用示例代码如下:

  1. from flaml import AutoML
  2. # 构建自动化学习器
  3. automl = AutoML()
  4. # 拟合调优
  5. automl.fit(X_train, y_train, task=”classification”)

💡 EvalML

EvalML这个AutoML工具库使用特定领域的目标函数来构建、优化和评估机器学习流水线。它结合了先进的数据处理与特征工程工具库 📘 Featuretools 和 📘 Compose,可以非常方便地构建端到端的监督机器学习解决方案。


EvalML 支持多种监督学习任务/问题,如回归、分类(二元和多类)、时间序列分析(包括时间序列回归和分类)等。


关于EvalML的资料可以在它的 📘 文档 和官方 📘 GitHub 查看。示例使用方法如下:

  1. from evalml.automl import AutoMLSearch
  2. # 初始化
  3. automl = AutoMLSearch(X_train=X_train, y_train=y_train, problem_type="binary", objective="F1")
  4. # 搜索调优
  5. automl.search()

💡 AutoKeras

AutoKeras 是一个自动化建模库,主要聚焦在自动搜索 深度学习模型的架构和超参数,并尽快获得性能最佳的深度学习模型。Auto-Keras的API接口和scikit-learn风格完全一致,容易上手。

它包括用于文本、图像和结构化数据的分类和回归的构建块。选择高级架构后,Autokeras 会自动调整模型。


关于AutoKeras的资料可以在它的 📘 文档 和官方 📘 GitHub 查看。示例使用方法如下:

  1. import autokeras
  2. # 初始化分类器
  3. search = autokeras.StructuredDataClassifier(max_trials=15)
  4. # 拟合与寻找最佳网络结构和超参数
  5. search.fit(x=X_train, y=y_train, verbose=0)
  6. # 预估
  7. y_pred = search.predict(X_new)

💡 Auto-ViML

Auto-ViML(自动变量可解释机器学习)是一个开源 Python 库,可以训练多个模型并自动识别最佳超参数。它内置大量的数据预处理和可解释性功能:

  • 自动化数据处理与清洗:给定数据集(通常是Dataframe格式),Auto_ViML 会尽量自动化处理缺失值、格式化变量、添加变量等。
  • 特征选择:Auto-ViML自动选择特征变量,当我们特征维度特别高的时候,非常有用。


关于Auto-ViML的资料可以在它的 📘 文档 和官方 📘 GitHub 查看。示例使用方法如下:

  1. from autoviml.Auto_ViML import Auto_ViML
  2. #包含所有参数的一个示例代码
  3. model, features, trainm, testm = Auto_ViML(
  4. train,
  5. target,
  6. test,
  7. sample_submission,
  8. hyper_param="GS",
  9. feature_reduction=True,
  10. scoring_parameter="weighted-f1",
  11. KMeans_Featurizer=False,
  12. Boosting_Flag=False,
  13. Binning_Flag=False,
  14. Add_Poly=False,
  15. Stacking_Flag=False,
  16. Imbalanced_Flag=False,
  17. verbose=0,
  18. )

💡 AutoGluon

AutoGluon 是一个由 AWS 开源的为深度学习开发优化而生的 autoML 框架。除了结构化表格数据,它还支持图像分类、目标检测和自然语言处理任务。


AutoGluon 的核心功能包括

  • 自动化寻找性能最佳的深度学习架构和超参数。
  • 模型选择和自动超参数调优。
  • 自动化数据预处理。

关于 AutoGluon 的资料可以在它的 📘 文档 和官方📘 GitHub 查看。示例使用方法如下:

  1. from autogluon.tabular import TabularDataset, TabularPredictor
  2. # 构建训练集与测试集表格数据
  3. train_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/train.csv')
  4. test_data = TabularDataset('https://autogluon.s3.amazonaws.com/datasets/Inc/test.csv')
  5. # 自动拟合与优化
  6. predictor = TabularPredictor(label='class').fit(train_data=train_data)
  7. # 预估
  8. predictions = predictor.predict(test_data)

💡 MLBox

MLBox 是一个开源的 AutoML Python 库。覆盖如下的强大功能:

  • 特征选择、缺失值填充和异常值检测。
  • 更快效果更好的数据预处理。
  • 自动超参数优化。
  • 用于分类和回归的自动模型选择。
  • 模型预测与模型可解释性。


关于MLBox的资料可以在它的 📘 文档 和官方 📘 GitHub 查看。示例使用方法如下:

  1. import mlbox as mlb
  2. # 数据自动化预处理
  3. data = mlb.preprocessing.Drift_thresholder().fit_transform(data)
  4. # 优化与拟合预估
  5. best = mlb.optimisation.Optimiser().evaluate(None, data)
  6. mlb.prediction.Predictor().fit_predict(best, data)

参考资料

  • 📘 Pycaret 文档: https://pycaret.gitbook.io/
  • 📘 Pycaret GitHub: https://www.github.com/pycaret/pycaret
  • 📘 Pycaret 教程: https://pycaret.gitbook.io/docs/get-started/tutorials
  • 📘[H2O AutoML: https://docs.h2o.ai/h2o/latest-stable/h2o-docs/welcome.html
  • 📘 TPOT 文档: http://epistasislab.github.io/tpot/
  • 📘 TPOT 官方 GitHub: https://github.com/EpistasisLab/tpot
  • 📘 Auto-sklearn 文档: https://automl.github.io/auto-sklearn/master/
  • 📘 Auto-sklearn 官方 GitHub: https://github.com/automl/auto-sklearn
  • 📘 FLAML 文档: https://microsoft.github.io/FLAML/
  • 📘 FLAML 官方 GitHub: https://github.com/microsoft/FLAML
  • 📘 Featuretools: https://featuretools.featurelabs.com/
  • 📘 Compose: https://compose.featurelabs.com/
  • 📘 EvalML 文档: https://evalml.alteryx.com/en/stable/
  • 📘 EvalML 官方 GitHub: https://github.com/alteryx/evalml
  • 📘 AutoKeras 文档: https://autokeras.com/
  • 📘 AutoKeras 官方 GitHub: https://github.com/keras-team/autokeras
  • 📘 Auto-ViML 文档: https://readthedocs.org/projects/auto-viml/
  • 📘 Auto-ViML 官方 GitHub: https://github.com/AutoViML/Auto_ViML
  • 📘 AutoGluon 文档: https://auto.gluon.ai/stable/index.html
  • 📘 AutoGluon 官方 GitHub: https://github.com/awslabs/autogluon
  • 📘 MLBox 文档: https://mlbox.readthedocs.io/en/latest/
  • 📘 MLBox 官方 GitHub: https://github.com/AxeldeRomblay/MLBox
  • 📘 AutoML 自动化机器学习建模: https://www.showmeai.tech/article-detail/210

推荐阅读

🌍 数据分析实战系列 : https://www.showmeai.tech/tutorials/40
🌍 机器学习数据分析实战系列: https://www.showmeai.tech/tutorials/41
🌍 深度学习数据分析实战系列: https://www.showmeai.tech/tutorials/42
🌍 TensorFlow数据分析实战系列: https://www.showmeai.tech/tutorials/43
🌍 PyTorch数据分析实战系列: https://www.showmeai.tech/tutorials/44
🌍 NLP实战数据分析实战系列: https://www.showmeai.tech/tutorials/45
🌍 CV实战数据分析实战系列: https://www.showmeai.tech/tutorials/46
🌍 AI 面试题库系列: https://www.showmeai.tech/tutorials/48

顶级AutoML自动化机器学习Python库介绍

机器学习建模应用流水线 pipeline

PHP网站源码南澳如何制作网站沙井网站开发惠州网站改版坑梓企业网站制作深圳优化罗湖企业网站设计观澜seo网站推广东莞网站改版沙井品牌网站设计布吉建网站大鹏百搜词包坂田英文网站建设坑梓建站光明高端网站设计民治网络推广惠州网络推广龙岗网站优化按天扣费永湖百度关键词包年推广观澜企业网站改版坑梓网站推广系统盐田seo排名布吉关键词排名石岩阿里店铺托管坑梓网站seo优化坑梓外贸网站设计双龙seo网站优化大芬百搜标王坑梓百度网站优化排名坂田设计公司网站横岗网站优化按天收费歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

PHP网站源码 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化