首页 文章详情

太棒了!8 个开源自动化框架,轻松搞定机器学习!

Python学习与数据挖掘 | 212 2021-12-11 05:10 0 0 0
UniSMS (合一短信)

自动化机器学习(AutoML)可以帮助机器学习管道中的某些关键组件实现自动化。其中机器学习管道包括数据理解、数据工程、特征工程、模型训练、超参数调整、模型监控等。

在这篇文章中,我将分享 8 个开源的 autoML 框架:

  • Auto-Sklearn
  • TPOT
  • Auto-ViML
  • H2O AutoML
  • Auto-Keras
  • MLBox
  • Hyperopt Sklearn
  • AutoGluon

1、Auto-Sklearn

Auto-sklearn 是基于 scikit-learn 软件包构建的开源 AutoML 库。它为给定的数据集找到最佳性能的模型以及最佳的超参数集。它包括一些特征工程技术,例如单点编码,特征归一化,降维等。该库使用 Sklearn 估计器来处理分类和回归问题。

Auto-sklearn 库适用于中小型数据集,不适用于大型数据集。

安装方法
pip install autosklearn
实用示例
import autosklearn.classification
cls = autosklearn.classification.AutoSklearnClassifier()
cls.fit(X_train, y_train)
predictions = cls.predict(X_test)

2、TPOT

TPOT 是开源的 python AutoML 工具,可使用遗传编程来优化机器学习管道。TPOT 体系结构的数据流可以在下图中观察到。数据清理不在 TPOT 体系结构之内,也就是说,处理缺失值,将数据集转换为数值形式应由数据科学家处理。

安装方法
pip install tpot
实用示例
from tpot import TPOTClassifier
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split

digits = load_digits()
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target,
                                                    train_size=0.75, test_size=0.25, random_state=42)

tpot = TPOTClassifier(generations=5, population_size=50, verbosity=2, random_state=42)
tpot.fit(X_train, y_train)
print(tpot.score(X_test, y_test))
tpot.export('tpot_digits_pipeline.py')
链接
https://github.com/EpistasisLab/tpot

3、Auto-ViML

Auto-ViML代表自动变体实现机器学习。TPOT AutoML工具的局限性在于它需要数字格式的数据集。任何遗漏的值处理和数据清理工作都应在TPOT实施之前完成。

AutoViML可以解决此问题,因为它可以对数据集进行编码,特征选择和其他数据清理活动。AutoViML相对比TPOT更快,并会生成多个图形结果以及模型选择和超参数优化。

安装方法
pip install autoviml
实用示例
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,
)

4、H2O AutoML

H2O AutoML是 H2O 开发的框架,可用于使机器学习工作流程自动化,包括在指定时限内自动进行模型训练和模型的超参数调整。

H2O AutoML 工具可以进行数据预处理,例如数字编码,缺失值插补和其他预处理工作流程。最后,它会自动进行模型选择和超参数调整,并以模型的排行榜视图及其性能返回。AutoML还提供了随时可用的部署代码。

安装方法

要安装h2o,需要一个Java运行环境,因为h2o是用Java开发的。

!apt-get install default-jre
!java -version
!pip install h2o
实用示例
import h2o
from h2o.automl import H2OAutoML
aml = H2OAutoML(max_models = 10, seed = 10, exclude_algos = ["StackedEnsemble""DeepLearning"], verbosity="info", nfolds=0)
aml.train(x = x, y = y, training_frame = churn_train, validation_frame=churn_valid)

5、Auto-Keras

Auto-Keras 是基于深度学习框架 Keras 构建的开源 AutoML 库,该框架是由 Texas A&M University 的 Datalab 团队开发的。AutoKeras自动搜索深度学习模型的体系结构和超参数,并使用训练数据对其进行训练,最后返回性能最佳的深度学习模型。Auto-Keras遵循经典的Scikit-Learn API设计,因此易于使用。

安装方法
pip3 install autokeras
实用示例
import autokeras as ak
clf = ak.ImageClassifier()
clf.fit(x_train, y_train)
results = clf.predict(x_test)

6、MLBox

MLBox 是功能强大的 AutoML python库。它提供了以下功能:

  • 快速读取和分布式数据预处理/清理/格式化
  • 高度可靠的功能选择和泄漏检测
  • 高维空间中的精确超参数优化
  • 最新的分类和回归预测模型(深度学习,堆栈,LightGBM等)
  • 用模型解释进行预测
安装方法
pip install mlbox
## or
brew install libomp
实用示例
from mlbox.preprocessing import *
from mlbox.optimisation import *
from mlbox.prediction import *
paths = ['train.csv''test.csv'#to modify
target_name = "target" #to modify
data = Reader(sep=",", header = 0, to_hdf5 = True, to_path = 'save', verbose = True).train_test_split(Lpath = paths, target_name = target_name)  #reading

7、Hyperopt Sklearn

HyperOpt-Sklearn 包装了 HyperOpt 库,该库是用于贝叶斯优化的开源Python库。它设计用于具有大量超参数的模型的大规模优化,并允许优化过程跨多个内核和多台机器进行缩放。它允许自动搜索数据准备方法,机器学习算法以及用于分类和回归任务的模型超参数。

安装方法
pip install hyperopt
实用示例
from hpsklearn import HyperoptEstimator, sgd
from hyperopt import hp
import numpy as np

sgd_penalty = 'l2'
sgd_loss = hp.pchoice(’loss’, [(0.50, ’hinge’), (0.25, ’log’), (0.25, ’huber’)])
sgd_alpha = hp.loguniform(’alpha’, low=np.log(1e-5), high=np.log(1))

estim = HyperoptEstimator(classifier=sgd(’my_sgd’, penalty=sgd_penalty, loss=sgd_loss, alpha=sgd_alpha))
estim.fit(X_train, y_train)

8、AutoGluon

AutoGluon 是为 AWS 开源的深度学习工作负载而开发的 autoML 框架。与其他仅支持表格数据的autoML库不同,它还支持图像分类,对象检测,文本以及跨图像的实际应用程序。

适用于ML初学者和专家,AutoGluon具有如下特点:

  • 用几行代码为您的数据找到深度学习解决方案
  • 自动超参数调整,模型选择/架构搜索以及数据处理
  • 改进现有的定制模型和数据管道
安装方法
pip install mxnet
pip install autogluon
实用示例
import autogluon as ag
import pandas as pd
import numpy as np
import os,urllib
from autogluon import TabularPrediction as task
BASE_DIR = '/tmp'
OUTPUT_FILE = os.path.join(BASE_DIR, 'churn_data.csv')
churn_data=urllib.request.urlretrieve('https://raw.githubusercontent.com/srivatsan88/YouTubeLI/master/dataset/WA_Fn-UseC_-Telco-Customer-Churn.csv', OUTPUT_FILE)
churn_master_df = pd.read_csv(OUTPUT_FILE)
size = int(0.8*churn_master_df.shape[0])
train_df = churn_master_df[:size]
test_df = churn_master_df[size:]
train_data = task.Dataset(df=train_df)
test_data = task.Dataset(df=test_df)
predictor = task.fit(train_data=train_data, label=label_column, eval_metric='accuracy')

总结

在本文中,我分享来 8 个开源的AutoML库,这些库可以自动执行重复任务,例如超参数调整和模型选择,以加快数据科学家的工作。我把每个使用方法的详细用法已给出,如果你感兴趣,可以拿来实践!

领取方式:


长按扫码,发消息 [自动化框架]


good-icon 0
favorite-icon 0
收藏
回复数量: 0
    暂无评论~~
    Ctrl+Enter