作者:韩信子@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 AutoMLH2O AutoML是另一个很有名的自动化机器学习库,能够帮忙咱们在无限的工夫内主动训练和调优许多模型。H2O 的外围代码是用 Java 编写的。这些算法在 H2O 的分布式 Map/Reduce 框架之上实现,并利用 Java Fork/Join 框架进行多线程解决。数据被并行读取并散布在集群中,并以压缩形式以列格局存储在内存中。H2O AutoML 的设计理念是,心愿尽量自动化,即用户只须要给定数据集和极少量的参数,即可开始建模和调优,并在指定的工夫或者其余约束条件下,尽量找到最佳的模型。`pythonimport h2ofrom h2o.automl import H2OAutoML# 初始化h2o.init()aml = H2OAutoML(max_models =25, balance_classes=True, seed = 1)# 主动建模训练aml.train(training_frame = X, y = 'y')lb = aml.leaderboard# 获取最佳模型best_model = aml.get_best_model()print(best_model)`相干的文档能够在 这里 查阅。# TPOTTPOT自动化机器学习 (AutoML) 工具库构建在scikit-learn 之上,它应用 Gentic Programming (GP) 来无效地发现给定数据集的最佳模型流水线。TPOT 应用遗传编程来主动设计和优化一系列数据转换(特色解决)和机器学习模型,并致力最大限度进步给定监督学习数据集的成果。流程示意图如下:整个建模调优过程也非常简单,如下2行代码即可实现残缺过程。`python# 初始化model = TPOTClassifier(generations=5, population_size=50, cv=cv, scoring='accuracy', verbosity=2, random_state=1, n_jobs=-1)# 自动化拟合与调优model.fit(X, y)`对于TPOT的材料能够在它的 文档 和官网 GitHub 查看。# Auto-sklearn从名字能够看进去,Auto-sklearn 是一个基于sklearn的自动化机器学习工具包。它利用了贝叶斯优化、元学习和集成模型等办法来自动化建模与调优。应用办法和sklearn十分类似,相熟sklearn的同学能够无障碍疾速利用。示例代码如下:`pythonimport autosklearn.classification# 构建自动化分类器cls = autosklearn.classification.AutoSklearnClassifier()# 拟合调优cls.fit(X_train, y_train)# 预估predictions = cls.predict(X_test)`对于Auto-sklearn的材料能够在它的 文档 和官网 GitHub 查看。# FLAMLFLAML 是微软推出的轻量级 Python 自动化机器学习库,能够主动、高效且经济地找到精确的机器学习模型。FLAML还有来自 Visual Studio 2022 中的 ML.NE 模型生成器的 .NET 实现。FLAML 能够疾速找到具备低计算资源的高质量模型。它反对经典机器学习模型和深度神经网络。对于FLAML的材料能够在它的 文档 和官网 GitHub 查看。大家能够在ShowMeAI的教程文章 AutoML自动化机器学习建模 中查看FLAML的具体用法,简略的应用示例代码如下:`pythonfrom flaml import AutoML# 构建自动化学习器automl = AutoML()# 拟合调优automl.fit(X_train, y_train, task=”classification”)`# EvalMLEvalML这个AutoML工具库应用特定畛域的指标函数来构建、优化和评估机器学习流水线。它联合了先进的数据处理与特色工程工具库 FeaturetoolsCompose,能够十分不便地构建端到端的监督机器学习解决方案。EvalML 反对多种监督学习工作/问题,如回归、分类(二元和多类)、工夫序列剖析(包含工夫序列回归和分类)等。对于EvalML的材料能够在它的 文档 和官网 GitHub 查看。示例应用办法如下:`pythonfrom evalml.automl import AutoMLSearch# 初始化automl = AutoMLSearch(X_train=X_train, y_train=y_train, problem_type="binary", objective="F1")# 搜寻调优automl.search()`# AutoKerasAutoKeras 是一个自动化建模库,次要聚焦在主动搜寻 深度学习模型的架构和超参数, 并尽快取得性能最佳的深度学习模型。Auto-Keras的API接口和scikit-learn格调完全一致,容易上手。它包含用于文本、图像和结构化数据的分类和回归的构建块。抉择高级架构后,Autokeras 会主动调整模型。对于AutoKeras的材料能够在它的 文档 和官网 GitHub 查看。示例应用办法如下:`pythonimport autokeras# 初始化分类器search = autokeras.StructuredDataClassifier(max_trials=15)# 拟合与寻找最佳网络结构和超参数search.fit(x=X_train, y=y_train, verbose=0)# 预估y_pred = search.predict(X_new) `# Auto-ViMLAuto-ViML(主动变量可解释机器学习)是一个开源 Python 库,能够训练多个模型并自动识别最佳超参数。它内置大量的数据预处理和可解释性功能:- 自动化数据处理与荡涤:给定数据集(通常是Dataframe格局),Auto_ViML 会尽量自动化解决缺失值、格式化变量、增加变量等。- 特征选择:Auto-ViML主动抉择特色变量,当咱们特色维度特地高的时候,十分有用。对于Auto-ViML的材料能够在它的 文档 和官网 GitHub 查看。示例应用办法如下:`pythonfrom autoviml.Auto_ViML import Auto_ViML#蕴含所有参数的一个示例代码model, features, trainm, testm = Auto_ViML( train, target, test, sample_submission, hyper_param="GS", feature_reduction=True, scoring_parameter="weighted-f1", KMeans_Featurizer=False, Boosting_Flag=False, Binning_Flag=False, Add_Poly=False, Stacking_Flag=False, Imbalanced_Flag=False, verbose=0,)`# AutoGluonAutoGluon 是一个由 AWS 开源的为深度学习开发优化而生的 autoML 框架。除了结构化表格数据,它还反对图像分类、指标检测和自然语言解决工作。AutoGluon 的外围性能包含:- 自动化寻找性能最佳的深度学习架构和超参数。- 模型抉择和主动超参数调优。- 自动化数据预处理。对于 AutoGluon 的材料能够在它的 文档 和官网 GitHub 查看。示例应用办法如下:`pythonfrom autogluon.tabular import TabularDataset, TabularPredictor# 构建训练集与测试集表格数据train_data = TabularDataset('https://autogluon.s3.amazonaw...')test_data = TabularDataset('https://autogluon.s3.amazonaw...')# 主动拟合与优化predictor = TabularPredictor(label='class').fit(train_data=train_data)# 预估predictions = predictor.predict(test_data)`# MLBoxMLBox 是一个开源的 AutoML Python 库。笼罩如下的弱小性能:- 特征选择、缺失值填充和异样值检测。- 更快成果更好的数据预处理。- 主动超参数优化。- 用于分类和回归的主动模型抉择。- 模型预测与模型可解释性。对于MLBox的材料能够在它的 文档 和官网 GitHub 查看。示例应用办法如下:`pythonimport mlbox as mlb# 数据自动化预处理data = mlb.preprocessing.Drift_thresholder().fit_transform(data)# 优化与拟合预估best = mlb.optimisation.Optimiser().evaluate(None, data)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