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

什么是 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!

python自动机器学习库auto_ml模块相关推荐

  1. 【深度学习】基于Torch的Python开源机器学习库PyTorch卷积神经网络

    [深度学习]基于Torch的Python开源机器学习库PyTorch卷积神经网络 文章目录 1 CNN概述 2 PyTorch实现步骤2.1 加载数据2.2 CNN模型2.3 训练2.4 可视化训练 ...

  2. 【深度学习】基于Torch的Python开源机器学习库PyTorch回归

    [深度学习]基于Torch的Python开源机器学习库PyTorch回归 文章目录1 torch.autograd 2 torch.nn.functional 3 详细的回归DEMO3.1 DATAS ...

  3. 【深度学习】基于Torch的Python开源机器学习库PyTorch概述

    [深度学习]基于Torch的Python开源机器学习库PyTorch概述 文章目录 1 PyTorch简介 2 环境搭建 3 Hello world!3.1 Tensors (张量)3.2 操作 4 ...

  4. python的PIL库部分模块函数

    python的PIL库部分模块函数 1.Image.open("文件路径") 打开图片文件 1.image.convert(mode) 将其转换为某模式 2.Image.new(模 ...

  5. 用python 之turtle库(模块)画太极图、楼梯等

    用python 之turtle库(模块)画太极图.楼梯等 画简易的太极图 代码如下: import turtle t=turtle.Turtle() t.up() t.goto(0,-50)#设置起始 ...

  6. 傻瓜式自动机器学习库:TPOT

    官方文档请戳这里?:https://epistasislab.github.io/tpot/ 现有的大部分博文都是参考官方文档的,还是直接看最正宗的吧,看英文还是需要些耐心的吧,哈哈哈- 0. 概述 ...

  7. 【python教程入门】Python的机器学习库有哪些?

    Python是一种解释性的计算机程序设计语言,具有丰富而强大的库面对象.此外,它具有简单.易学.速度快.免费开放.可移植.可扩展和面向对象的特点,使Python成为2017年十分受欢迎的编程语言! 人 ...

  8. 自动机器学习库:TPOT の 学习笔记

    文章目录 1 TPOT简介 2 安装和使用 TPOT 2.1 安装TPOT库 2.2 使用 TPOT 库 流程 (1)配置类 (2)在搜索结束时,会找到性能最佳的管道 3 TPOT 分类实例 加载数据 ...

  9. Python 安装第三方库,模块和包的安装方法

    在python中已经内置了很多的有用的模块,只要安装了python的开发工具,这些模块就可以立刻使用了.而在实际python开发的过程中,除了python内置的模块外,python还有大量的第三方的库 ...

  10. python sklearn机器学习库 安装

    1.准备工作 安装sklearn之前,我们需要先安装numpy,scipy函数库. Numpy下载地址:http://sourceforge.net/projects/numpy/files/NumP ...

最新文章

  1. 多线程中使用mktime和setenv函数
  2. 学术报告 | 模拟液态和薄结构之间相互作用的多尺度模型
  3. leetcode算法题--对链表进行插入排序
  4. ML:MLOps系列讲解之《端到端 ML工作流生命周期》解读
  5. OpenResty(nginx)限流配置实现
  6. 来自对象字段的Python字典
  7. python编程入门课 视频-Python入门到精通视频教程下载[21课程全]
  8. 微服务架构 SpringCloud(一)组件和概念介绍
  9. 使用纯生js实现图片轮换
  10. 程序员用C/C++打造车牌识别系统!同学眼中只有膜拜!
  11. 堪称经典,一个非常适合初学者的机器学习实战案例
  12. 【代码审计】51 TP5框架、无框架 变量覆盖反序列化
  13. 2017滴滴校招 连续最大和(DP)
  14. 怎么选择触摸液晶广告机?
  15. 深入计算机组成原理(四)穿越功耗墙,我们该从哪些方面提升“性能”?
  16. equals == equals(null) ==null区别
  17. pom里配置阿里云仓库
  18. Excel数据透视表系列培训--课时2
  19. 清华计算机专业考研经验分享
  20. apache mima 过滤器

热门文章

  1. 【java】正则表达式
  2. php二维数组引用变量,PHP二维数组的引用赋值容易犯的错误
  3. python导入datetime模块_Python时间模块datetime用法
  4. python爬虫做毕业论文_关于python的毕业论文_python爬虫毕业论文 - CSDN
  5. linux开发arm音量加减代码,arm-linux学习:最简驱动模块(示例代码)
  6. oracle左裁剪原理,ORACLE 各种PARTITION 的分析(原)
  7. 安装maven过程并配置IDEA的全过程
  8. springCloud Finchley 实战入门(基于springBoot 2.0.3)【五 Hystrix 服务容错保护】
  9. Hibernate方法save、update、merge、saveOrUpdate及get和load的区别
  10. 虚拟ONVIF 摄像机