神器在手!python自动机器学习库auto_ml模块

auto_ml模块介绍

用于生产和分析的自动化机器学习模块。自动化整个机器学习过程,使它超级容易使用的分析,并得到实时预测在生产。快速概述流行词,这个项目包括分析(传入数据,auto_ml将告诉您每个变量与您试图预测的变量之间的关系)、特征工程(特别是关于日期和NLP)、自动缩放(将所有值转换为它们在0和1之间的缩放版本,这种方式对异常值处理很强大,并且可以处理稀疏数据)、特性选择(只选择实际证明有用的特性)、数据格式化(将DataFrame或字典列表转换为稀疏矩阵、一热编码分类变量、对回归问题取自然对数y等)、模型选择(哪种模型最适合您的问题—我们尝试了大约12个分类和回归问题,包括最喜欢的XGBoost(如果安装在您的计算机上)、超参数优化(什么超参数最适合该模型)、大数据(为它提供大量数据——它使用资源的效率相当高)等诸多方面。

安装

auto_ml模块可直接使用pip命令进行安装,目前版本为auto_ml 2.9.10

pip install auto_ml

第三方软件包:TensorFlow & Keras, XGBoost, LightGBM

auto_ml集成了所有这些很棒的库,包括 DeepLearningClassifier 、 DeepLearningRegressor - XGBClassifier、 XGBRegressor - LGBMClassifer、 LGBMRegressor - CatBoostClassifier和 CatBoostRegressor等等,这些项目对单个预测的预测时间都在1毫秒范围内,并且能够序列化到磁盘,并在训练后加载到新的环境中。auto_ml在没有安装它们的情况下可以很好地运行。只需为model_names传递其中之一即可实现调用。

ml_predictor.train(data, model_names=['DeepLearningClassifier'])

主要功能

一、深度学习

如果您的机器上安装了Keras和TensorFlow,可以在auto_ml中使用深度学习。很简单:在调用ml_predictor.train()时,只需要选择model_names="DeepLearningRegressor"或model_names="DeepLearningClassifier"。我们已经实现了自动化的深度学习,可以以生产就绪的速度运行(当每次只进行一次预测时,每个预测大约运行1ms)。

二、特征学习

深度学习对你来说是学习特性的好方法。将这些特性转化为预测并不是一件令人惊讶的事情。所以在auto_ml上把这两个模型都用在它们最擅长的领域:深度学习为我们学习特征,梯度提升将这些特征转化为准确的预测。这正是auto_ml中的feature_learning=True param的用途。

首先,我们将在fl_data上训练一个深度学习模型,这是一个必须传递到.train: ml_predictor中的数据集。train(df_train feature_learning = True,fl_data = df_fl_data)。此数据集应该与您的训练数据集不同,以避免过度拟合。一旦我们训练了feature_learning模型,我们将分离它的最后一层,而使用它的倒数第二层,它输出了10个最有用的特性。我们将把这些特性与训练数据中的其他特性一起进行hstack。因此,如果您的训练数据中有100个特性,那么我们将从feature_learning模型中添加10个预测特性,并得到总共的110个特性。然后我们将训练一个梯度提升模型(或者任何你选择的模型——完整的auto_ml模型在这里对你可用)在这110个特性的组合集上。

这种混合方法的结果比任何一种方法本身都要精确5%。所有来自深度学习的典型最佳实践都适用于此:小心过度拟合,尽量拥有足够大的数据集。

三、分类

支持二进制和多类分类。注意,现在标签必须是整数(0和1代表二进制分类)。auto_ml将自动检测它是否是二进制或多类分类问题——您只需传入

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

使用示例

from auto_ml import Predictorfrom auto_ml.utils import get_boston_dataset

from auto_ml.utils_models import load_ml_model

df_train, df_test = get_boston_dataset()
column_descriptions = {
  'MEDV': 'output'
  , 'CHAS': 'categorical'
}

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

ml_predictor.train(df_train)

test_score = ml_predictor.score(df_test, df_test.MEDV)
file_name = ml_predictor.save()

trained_model = load_ml_model(file_name)evironments)
predictions = trained_model.predict(df_test)
print(predictions)

1、导入auto_ml中的包Predictor和get_boston_dataset

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

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

4、建立模型并训练模型

5、模型训练效果评估

6、保存模型

7、使用模型进行预测

对机器学习感兴趣的同学可以安装auto_ml模块试试效果,可以使用一些小的数据集做一下练习。同时欢迎大家转发&转载本文章,让更多学习机器学习的伙伴加入公众号《python练手项目实战》,在实战中成长。

 

 

  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值