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 Predictor
from 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练手项目实战》,在实战中成长。