python自动机器学习库auto_ml模块

图片

图片

=======================================================================================================================================================

什么是 AutoML?

==============

自动化机器学习提供了方法和流程,使非机器学习专家可以使用机器学习,以提高机器学习的效率并加速机器学习的研究。

近年来,机器学习 (ML) 取得了相当大的成功,并且越来越多的学科依赖它。然而,这种成功在很大程度上依赖于人类机器学习专家来执行以下任务:

  • 预处理和清理数据。

  • 选择并构建适当的特征。

  • 选择合适的模型族。

  • 优化模型超参数。

  • 设计神经网络的拓扑结构(如果使用深度学习)。

  • 后处理机器学习模型。

  • 批判性地分析获得的结果。

由于这些任务的复杂性通常超出非 ML 专家的范围,机器学习应用程序的快速增长催生了对无需专家知识即可轻松使用的现成机器学习方法的需求。我们将由此产生的以机器学习渐进式自动化为目标的研究领域_称为 AutoML_。

python的auto_ml模块介绍

用于生产和分析的自动化机器学习模块。自动化整个机器学习过程,使它超级容易使用的分析,并得到实时预测在生产。快速概述流行词,这个项目自动化:

分析(传入数据,auto_ml将告诉您每个变量与您试图预测的变量之间的关系)。

特征工程(特别是关于日期和NLP)。

自动缩放(将所有值转换为它们在0和1之间的缩放版本,这种方式对异常值处理很强大,并且可以处理稀疏数据)。

特性选择(只选择实际证明有用的特性)。

数据格式化(将DataFrame或字典列表转换为稀疏矩阵、一热编码分类变量、对回归问题取自然对数y等)。

模型选择(哪种模型最适合您的问题—我们尝试了大约12个分类和回归问题,包括最喜欢的XGBoost(如果安装在您的计算机上)。

超参数优化(什么超参数最适合该模型)。

大数据(为它提供大量数据——它使用资源的效率相当高)。


安装

pip install auto_ml

核心功能示例

auto_ml 是为生产而设计的。这是一个示例,其中包括序列化和加载经过训练的模型,然后对单个字典进行预测,大致就是部署经过训练的模型可能遵循的过程。

代码流程:

1、导入auto_ml中的包Predictor和get_boston_dataset

2、通过get_boston_dataset获取训练集和测试集

3、告诉机器数据输出列和不是纯数字的列

4、建立模型并训练模型

5、模型训练效果评估

6、保存模型

7、使用模型进行预测

from auto_ml import Predictor
from auto_ml.utils import get_boston_dataset
from auto_ml.utils_models import load_ml_model

# Load data
df_train, df_test = get_boston_dataset()

# Tell auto_ml which column is 'output'
# Also note columns that aren't purely numerical
# Examples include ['nlp', 'date', 'categorical', 'ignore']
column_descriptions = {
  'MEDV': 'output'
  , 'CHAS': 'categorical'
}

ml_predictor = Predictor(type_of_estimator='regressor', column_descriptions=column_descriptions)

ml_predictor.train(df_train)

# Score the model on test data
test_score = ml_predictor.score(df_test, df_test.MEDV)

# auto_ml is specifically tuned for running in production
# It can get predictions on an individual row (passed in as a dictionary)
# A single prediction like this takes ~1 millisecond
# Here we will demonstrate saving the trained model, and loading it again
file_name = ml_predictor.save()

trained_model = load_ml_model(file_name)

# .predict and .predict_proba take in either:
# A pandas DataFrame
# A list of dictionaries
# A single dictionary (optimized for speed in production evironments)
predictions = trained_model.predict(df_test)
print(predictions)

XGBoost、使用 TensorFlow 和 Keras 进行深度学习以及 LightGBM

auto_ml 集成了所有这三个很棒的库!通常,只需将其中一个传入 model_names。ml_predictor.train(数据,model_names=[‘DeepLearningClassifier’])

可用选项有 - DeepLearningClassifier和DeepLearningRegressor - XGBClassifier和XGBRegressor - LGBMClassifier和LGBMRegressor

所有这些项目都已准备好投入生产。这些项目单次预测的预测时间都在1毫秒范围内,训练后可以序列化到磁盘并加载到新环境中。

根据您的机器,它们有时可能难以安装,因此它们不包含在 auto_ml 的默认安装中。您有责任自行安装它们。auto_ml 在没有安装它们的情况下也能正常运行(在选择使用哪种算法之前,我们会检查安装了什么)。如果您想尝试简单安装,只需pip install -r advanced_requirements.txt,它将安装 TensorFlow、Keras 和 XGBoost。LightGBM 目前不能作为 pip 安装使用。

分类

支持二元和多类分类。请注意,目前,标签必须是整数(二进制分类为 0 和 1)。auto_ml 会自动检测它是二分类还是多分类问题——你只需要传入ml_predictor = Predictor(type_of_estimator=‘classifier’, column_descriptions=column_descriptions)

建议

在继续之前,请尝试运行代码。在 Python 中加载一些字典,其中每个字典是一行数据。制作一个column_descriptions字典,告诉我们每一行中的哪个属性名称代表我们试图预测的值。将所有这些传递给auto_ml,看看会发生什么!

这些文档中的其他所有内容都假定您至少已完成上述操作。从那里开始,其他一切都将建立在上面。但这部分可以为您提供您可能感兴趣的输出,而没有不必要的复杂性。

深度学习和特征学习

auto_ml 中的深度学习

如果您的机器上安装了 Keras 和 TensorFlow,则可以在 auto_ml 中使用深度学习。这很简单:调用ml_predictor.train()时只需选择model_names='DeepLearningRegressor’或 model_names=‘DeepLearningClassifier’` 。

没错,我们拥有以生产就绪速度运行的自动化深度学习(一次获得一个预测时,每个预测大约需要 1 毫秒)。

特征学习

深度学习非常适合为您学习功能。将这些特征转化为预测并不是那么令人惊奇(没有自由预感,我没有看到太多人使用感知器作为独立模型将特征转化为预测——通常梯度提升在这里获胜)。

那么,为什么不将这两种模型都用于它们最擅长的地方:深度学习为我们学习特征,而梯度提升将这些特征转化为准确的预测?

这正是auto_ml 中的feature_learning=True参数的用途。

首先,我们将在fl_data上训练一个深度学习模型,这是一个你必须传入 .train 的数据集:ml_predictor.train(df_train, feature_learning=True, fl_data=df_fl_data)。该数据集应该是与您的训练数据不同的数据集,以避免过度拟合。

一旦我们训练了 feature_learning 模型,我们将把它的最后一层分开,而是使用它的倒数第二层,它输出 10 个最有用的特征。我们会将这些特征与您在训练数据中的其他特征一起叠加。因此,如果您的训练数据中有 100 个特征,我们将添加来自 feature_learning 模型的 10 个预测特征,总共有 110 个特征。

然后,我们将在这 110 个特征的组合集上训练梯度提升模型(或您选择的任何模型 - 全套 auto_ml 模型可供您使用)。

这种混合方法的结果比单独使用任何一种方法的准确度高 5%。

深度学习的所有典型最佳实践都适用于此:小心过度拟合,尝试拥有足够大的数据集,这实际上是有用的,等等。

这不是一种超级新颖的方法(你可以合理地认为它只是一种堆叠形式,几乎在所有 Kaggle 比赛中都已经使用过)。然而,从概念上讲,考虑采用神经网络并将其简单的输出层换成更复杂的梯度提升模型作为输出层是很有趣的。

而且,当然,这是 auto_ml,它全部自动运行并以生产速度运行(每次获得一个预测时,预测需要 1 到 4 毫秒)。

QQ学习群:1026993837 领资料
python自动机器学习库auto_ml模块就为大家介绍到这里,欢迎各位学习《从0到1Python数据科学之旅》bye!

  • 5
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

python机器学习建模

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值