开发者社区> ShowMeAI> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

全自动化机器学习建模!效果吊打初级炼丹师! ⛵

简介: 全自动化机器学习建模!效果吊打初级炼丹师!本文汇总了常见开源库,PyCaret、H2O AutoML、TPOT、Auto-sklearn、FLAML、EvalML、AutoKeras、Auto-ViML、AutoGluon、MLBox,一起用起来吧!
+关注继续查看

💡 作者:韩信子@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://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e6b9bc122e5a4ec8ac3ba85385589d54~tplv-k3u1fbpfcp-zoom-1.image)

💡 H2O AutoML

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

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

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

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行代码即可完成完整过程。

# 初始化
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的同学可以无障碍快速应用。示例代码如下:

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的详细用法,简单的使用示例代码如下:

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

💡 EvalML

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

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

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

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 查看。示例使用方法如下:

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 查看。示例使用方法如下:

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 查看。示例使用方法如下:

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

💡 MLBox

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

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

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

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)

参考资料

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
express学习10-express静态资源处理
express学习10-express静态资源处理
10 0
一个网站拿下机器学习优质资源!搜索效率提高 50%
一个网站拿下机器学习优质资源!搜索效率提高 50%
60 0
以自动储备池学习机器实现高维场景预测,陈洛南/刘锐团队合作研究登Nature子刊
在实际应用中,仅用近期的短期数据来描述或预测一个复杂系统未来的状态对数据挖掘与分析方法提出了更大的挑战。所以,在本文中,研究者们提出了一种新型 ARNN 框架,它能够把高维空间数据映射到目标变量的未来时间信息,使得通过高维短序列时间序列数据的预测成为可能。
105 0
王亚楠:基于强化学习的自动码率调节
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/vn9PLgZvnPs1522s82g/article/details/81295311 ...
1381 0
【资源】用深度学习解决自然语言处理中的7大问题,文本分类、语言建模、机器翻译等
本文讲的是用深度学习解决自然语言处理中的7大问题,文本分类、语言建模、机器翻译等,自然语言处理领域正在从统计学方法转向神经网络方法。在自然语言中,仍然存在许多具有挑战性的问题。但是,深度学习方法在某些特定的语言问题上取得了state-of-the-art的结果。
5110 0
机器学习资料精选
深度学习 最容易读进去的深度学习科普贴 关于深度学习,这可能是你最容易读进去的科普贴了(一) 给深度学习入门者的Python快速教程 - 基础篇 深度学习入门必看的书和论文?有哪些必备的技能需学习? [转]《零基础入门深度学习》系列文章(教程+代码) 深度学习如何入门? (中文)零基础深度学习dee...
1541 0
+关注
ShowMeAI
『为AI硬核资料库(cool)而生!』构建AI解决方案,用知识加速每一次技术成长!网站:https://www.showmeai.tech/ 公众号:ShowMeAI研究中心
193
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载