💡 作者:韩信子 @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 的设计理念是,心愿尽量自动化,即用户只须要给定数据集和极少量的参数,即可开始建模和调优,并在指定的工夫或者其余约束条件下,尽量找到最佳的模型。
`
python
import h2o
from 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)
`
相干的文档能够在 📘 这里 查阅。
# 💡 TPOT
TPOT 自动化机器学习 (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 的同学能够无障碍疾速利用。示例代码如下:
`
python
import autosklearn.classification
# 构建自动化分类器
cls = autosklearn.classification.AutoSklearnClassifier()
# 拟合调优
cls.fit(X_train, y_train)
# 预估
predictions = cls.predict(X_test)
`
对于 Auto-sklearn 的材料能够在它的 📘 文档 和官网 📘 GitHub 查看。
# 💡 FLAML
FLAML 是微软推出的轻量级 Python 自动化机器学习库,能够主动、高效且经济地找到精确的机器学习模型。FLAML 还有来自 Visual Studio 2022 中的 ML.NE 模型生成器的 .NET 实现。
FLAML 能够疾速找到具备低计算资源的高质量模型。它反对经典机器学习模型和深度神经网络。
对于 FLAML 的材料能够在它的 📘 文档 和官网 📘 GitHub 查看。大家能够在 ShowMeAI 的教程文章 📂 AutoML 自动化机器学习建模 中查看 FLAML 的具体用法,简略的应用示例代码如下:
`
python
from flaml import AutoML
# 构建自动化学习器
automl = AutoML()
# 拟合调优
automl.fit(X_train, y_train, task=”classification”)
`
# 💡 EvalML
EvalML 这个 AutoML 工具库应用特定畛域的指标函数来构建、优化和评估机器学习流水线。它联合了先进的数据处理与特色工程工具库 📘 Featuretools 和 📘 Compose,能够十分不便地构建端到端的监督机器学习解决方案。
EvalML 反对多种监督学习工作 / 问题,如回归、分类(二元和多类)、工夫序列剖析(包含工夫序列回归和分类)等。
对于 EvalML 的材料能够在它的 📘 文档 和官网 📘 GitHub 查看。示例应用办法如下:
`
python
from evalml.automl import AutoMLSearch
# 初始化
automl = AutoMLSearch(X_train=X_train, y_train=y_train, problem_type=”binary”, objective=”F1″)
# 搜寻调优
automl.search()
`
# 💡 AutoKeras
AutoKeras 是一个自动化建模库,次要聚焦在主动搜寻 深度学习模型的架构和超参数, 并尽快取得性能最佳的深度学习模型。Auto-Keras 的 API 接口和 scikit-learn 格调完全一致,容易上手。
它包含用于 文本、图像和结构化数据 的分类和回归的构建块。抉择高级架构后,Autokeras 会主动调整模型。
对于 AutoKeras 的材料能够在它的 📘 文档 和官网 📘 GitHub 查看。示例应用办法如下:
`
python
import autokeras
# 初始化分类器
search = autokeras.StructuredDataClassifier(max_trials=15)
# 拟合与寻找最佳网络结构和超参数
search.fit(x=X_train, y=y_train, verbose=0)
# 预估
y_pred = search.predict(X_new)
`
# 💡 Auto-ViML
Auto-ViML(主动变量可解释机器学习)是一个开源 Python 库,能够训练多个模型并自动识别最佳超参数。它内置大量的数据预处理和可解释性功能:
– 自动化数据处理与荡涤:给定数据集(通常是 Dataframe 格局),Auto_ViML 会尽量自动化解决缺失值、格式化变量、增加变量等。
– 特征选择:Auto-ViML 主动抉择特色变量,当咱们特色维度特地高的时候,十分有用。
对于 Auto-ViML 的材料能够在它的 📘 文档 和官网 📘 GitHub 查看。示例应用办法如下:
`
python
from 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,
)
`
# 💡 AutoGluon
AutoGluon 是一个由 AWS 开源的为深度学习开发优化而生的 autoML 框架。除了结构化表格数据,它还反对图像分类、指标检测和自然语言解决工作。
AutoGluon 的外围性能包含:
– 自动化寻找性能最佳的深度学习架构和超参数。
– 模型抉择和主动超参数调优。
– 自动化数据预处理。
对于 AutoGluon 的材料能够在它的 📘 文档 和官网📘 GitHub 查看。示例应用办法如下:
`
python
from 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)
`
# 💡 MLBox
MLBox 是一个开源的 AutoML Python 库。笼罩如下的弱小性能:
– 特征选择、缺失值填充和异样值检测。
– 更快成果更好的数据预处理。
– 主动超参数优化。
– 用于分类和回归的主动模型抉择。
– 模型预测与模型可解释性。
对于 MLBox 的材料能够在它的 📘 文档 和官网 📘 GitHub 查看。示例应用办法如下:
`
python
import 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