使用Azure进行自动化机器学习
什么是自动化机器学习?
自动化的机器学习,也称为 AutoML,让数据科研人员、 分析人员和开发人员,同时维护模型质量构建具有高缩放性、 效率和工作效率的机器学习模型。
自动化机器学习生成的机器学习模型自动、 智能地选择用于训练的模型的集合,并推荐最适合您。 传统的机器学习模型开发是资源密集型需要大量域知识和时间来生成和比较数十个模型。 与自动化机器学习将加快所需获取生产的 ML 模型很好的轻松和高效的时间。
在幕后,将训练数据是采用一个定义的目标的功能,并以智能方式在循环的机器学习算法和功能选择的组合。 然后,根据训练的分数,最拟合的模型是标识并向你推荐。
您仍然可以控制您的实验和的透明度了解发生了什么情况。 您可以定义约束和试验根据时间、 准确性或迭代次数,例如目标。 在实验中,每次迭代的训练流和由给定模型的影响最大功能,可以看到每个生成的模型。
如何自动机器学习工作原理
使用Azure 机器学习服务,可以设计和使用这些步骤运行自动化的机器学习训练实验:
确定机器学习问题待解决: 分类,预测或回归
指定的源和标记的训练数据的格式:Numpy 数组或 Pandas 数据帧
配置计算目标,以便为模型定型,如你本地计算机、 Azure 机器学习计算、 远程 Vm 或 Azure Databricks。
配置自动化的机器学习参数,确定通过不同的模型超参数设置的迭代数高级预处理/特征化,以及要在确定最佳的模型时,查询的指标。
提交训练运行。
在训练期间,Azure 机器学习服务会创建多个尝试不同算法和参数的管道。 它将停止后它会命中在试验中定义的退出条件。
此外可以检查记录运行的信息,其中包含运行期间收集的指标。 训练运行生成 Python 序列化对象 (.pkl
文件),其中包含的模型和数据预处理。
在 Azure 门户中创建和浏览自动化的机器学习试验 (预览版)
必备组件
Azure 订阅。 如果没有 Azure 订阅,请在开始之前创建一个免费帐户。 立即试用 Azure 机器学习服务免费版或付费版。
Azure 机器学习服务工作区。 请参阅创建 Azure 机器学习服务工作区。
开始使用
导航到你的工作区的左窗格中。 在创作 (预览版) 部分下选择自动机器学习。
如果这是你第一次执行任何使用自动化的机器学习试验,你将看到以下信息:
否则,你将看到自动机器学习仪表板与所有自动化机器学习试验,包括那些运行随 SDK 的概述。 此处可以筛选和按日期浏览在运行过程中,试验名称,并运行状态。
创建试验
选择创建试验按钮以填充以下窗体。
输入试验名称。
选择计算的数据事件探查和训练作业。 在下拉列表中提供了您现有的计算资源的列表。 若要创建新的计算,请执行步骤 3 中的说明。
选择创建新的计算按钮以打开下方窗格中,并配置对于此试验计算上下文。
字段 描述 计算名称 输入用于标识您的计算上下文的唯一名称。 虚拟机大小 选择在计算的虚拟机大小。 其他设置 最小节点:输入在计算节点的最小数目。 最小的 AML 计算节点数为 0。 若要启用数据事件探查,您必须具有一个或多个节点。
最大节点:根据计算输入的最大节点数。 默认值为 6 个节点的 AML 计算。若要开始创建新计算,请选择创建。 这可能需要一些时间。
选择你的数据的存储帐户。 公共预览版仅支持本地文件上传和 Azure Blob 存储帐户。
选择一个存储容器。
从存储容器,选择一个数据文件或上传到容器的文件从本地计算机。
- 使用预览和配置文件选项卡进一步配置你的数据对于此试验。
- 在预览选项卡上,指示是否你的数据包含标头,并选择特征 (列) 是用于定型包含每个功能列中切换按钮。
在配置文件选项卡,你可以查看数据配置文件的功能,以及每个分发、 类型和摘要的统计信息 (平均值、 中间值、 最大/最小值等) 。
- 在预览选项卡上,指示是否你的数据包含标头,并选择特征 (列) 是用于定型包含每个功能列中切换按钮。
- 选择训练作业类型: 分类、 回归或预测。
- 选择目标列。 其想要对预测的列。
用于预测:
- 选择时间列:此列包含要使用的时间数据。
- 选择预测时间范围:指示多少个时间单位 (分钟/小时/天/周/月/年) 将该模型能够预测到将来的发展。 随着更长远的预测,模型将变得不太准确。
- (可选)高级设置: 可用于更好地控制训练作业的其他设置。
高级设置 | 描述 |
---|---|
主要指标 | 用于进行评分模型的主要度量。 |
退出条件 | 当满足以下任意条件时,训练作业结束之前完全完成。 训练作业时间 (分钟):允许运行训练作业的时间。 最大迭代数:管道 (迭代) 中,以便测试在训练作业的最大数目。 该作业将不会运行多个指定的迭代次数。 指标分数阈值:所有管道的最小指标分数。 这可确保,如果您想要达到定义的目标度量值,则执行不花更多时间比实际所需的训练作业。 |
预处理 | 选择此选项可以启用或禁用通过自动的机器学习的预处理。 预处理包括自动数据清理、 准备,和转换以生成综合的功能。 |
验证 | 选择一个要在训练作业中使用的交叉验证选项。 |
并发 | 选择你想要使用多核计算时使用的多核限制。 |
已阻止的算法 | 选择你想要从训练作业中排除的算法。 |
数据事件探查
跨您的数据集以验证您的数据集是否是机器学习准备就绪,可以获取各种汇总统计信息。 对于非数字列,其中包括 min、 max 和错误计数等的仅基本统计信息。 对于数值列,您还可以查看其统计一点时间,估计分位数。 具体而言,我们的数据配置文件包括:
功能: 这汇总的列的名称。
配置文件: 在行中可视化效果基于推断出的类型。 例如,字符串、 布尔值和日期将具有值计数,而小数 (数字) 具有近似直方图。 这允许您快速了解数据的分布。
键入分发: 类型列中的行中值计数。 Null 值是其自己的类型,因此此可视化效果可用于检测异常或缺失值。
类型: 列的推断的类型。 可能的值包括: 字符串、 布尔值、 日期和小数位数。
最小值: 列的最小值。 对于其类型不具有固有的排序 (例如布尔值) 的功能显示为空白条目。
最大: 列的最大值。 如"最小值,"为空白条目出现在不相关类型的功能。
计数: 缺少和非缺少列中的项的总数。
不会错过计数: 列不是缺失的条目数。 请注意,空字符串和错误被视为值,因此它们不会构成"不缺少计数"。
分位数(在 0.1、 1、 5、 25、 50、 75、 95、 99 和 99.9%的时间间隔): 在每个分位来提供数据的分布的意义上的近似的值。 功能与不相关的类型显示为空白条目。
意味着: 列的算术平均值。 功能与不相关的类型显示为空白条目。
标准偏差: 列的标准偏差。 功能与不相关的类型显示为空白条目。
方差: 列的方差。 功能与不相关的类型显示为空白条目。
不对称度: 列的不对称度。 功能与不相关的类型显示为空白条目。
峰度: 列的峰值。 功能与不相关的类型显示为空白条目。
高级预处理
在配置在实验时,可以启用高级的设置Preprocess
。 因此,这样做意味着自动执行以下数据预处理和特征化步骤。
预处理 步骤 | 描述 |
---|---|
删除较大的基数或者无差异的特征 | 请先删除这些从训练和验证集,包含所有缺失,相同的值之间的所有行或具有极高基数 (例如,哈希、 Id 或 Guid) 值中包括的功能。 |
估算缺失值 | 数字特征,输入与列中值的平均值。
分类特征、 输入与最常用的值。 |
生成其他特征 | 对于日期时间特征:年、月、日、星期、年日期、季、年周、小时、分钟、秒。
对于文本特征:根据获得、 双元语法和三元字符语法的字词频率。 |
转换和编码 | 很少唯一值的数字功能会被转换为分类特征。
独热编码为较小的基数分类; 执行为高的基数,一个热的哈希编码。 |
词嵌入 | 文本特征化器,可将文本标记的向量转换到句子矢量使用预先训练的模型。 在文档中的每个单词嵌入向量被聚合在一起以生成文档特征向量。 |
目标编码 | 分类特征、 将映射与平均的目标值对于回归问题,并为每个类分类问题的类概率的每个类别。 基于频率的权重和 k-折叠交叉验证用于减少通过映射和干扰引起的稀疏数据类别中调整。 |
文本目标编码 | 文本输入具有包的单词的堆积线性模型用于生成每个类的概率。 |
证据 (出错) 的权重 | 计算为分类列与目标列的关联的度量值出错。 它的计算方式的类在 vs 扩展类的概率的比率的日志。 此步骤中输出每个类的一个数字特征列,并且无需显式用户输入缺失值和离群值处理方法。 |
分类距离 | 训练的 k 平均值聚类分析模型对所有数字列。 输出 k 新功能,每个群集,其中包含每个示例与每个群集的形心的距离的一个新数字功能。 |
运行实验并查看结果
若要运行此试验,请单击开始。 实验准备过程需要几分钟的时间。
查看实验详细信息
实验准备阶段完成后,你将看到运行详细信息屏幕。 这样,您创建的模型的完整列表。 默认情况下,最高评分的模型基于您的参数列表的顶部。 如训练作业尝试出更多的模型,则将它们添加到迭代列表和图表中。 使用迭代图表以获取到目前为止生成的模型的快速度量值的比较。
训练作业可能需要每个管道完成运行一段时间。
查看训练运行详细信息
向下钻取的任何输出模型,以查看运行详细信息,如性能指标和分发图表的训练。
使用Azure进行自动化机器学习的更多相关文章
- 使用Azure Automation(自动化)定时关闭和启动虚拟机
1. 概述 作为Windows Azure的用户,使用Azure的过程中,最担心的事情就是还没到月底,预设的费用就快消耗完了(下面两张账单图是我最讨厌看到的).但是仔细分析自己的费用列表,发现绝大部分 ...
- 初识TPOT:一个基于Python的自动化机器学习开发工具
1. TPOT介绍 一般来讲,创建一个机器学习模型需要经历以下几步: 数据预处理 特征工程 模型选择 超参数调整 模型保存 本文介绍一个基于遗传算法的快速模型选择及调参的方法,TPOT:一种基于Pyt ...
- 使用ML.NET和Azure Function进行机器学习 - 第2部分
本文是<使用ML.NET和AzureFunction进行机器学习 - 第1部分>的续篇. 像机器一样识别鸢尾花 回顾第1部分,您将使用Visual Studio创建一个新的Azure Fu ...
- 使用ML.NET和Azure Function进行机器学习 - 第1部分
介绍 一提到机器学习,总是让人望而生畏.幸运的是,Azure正在想方设法让开发人员更容易进入机器学习.ML.NET是Microsoft Research专为.NET开发人员开发的机器学习框架,因此您可 ...
- 【Azure Developer】Azure Automation 自动化账号生成的时候怎么生成连接 与证书 (Connection & Certificate)
Azure Automation :The Azure Automation service provides a highly reliable and scalable workflow exec ...
- 微软Azure DevOps自动化部署
1.准备一个https://hub.docker.com账号,申请一个免费的镜像仓库(免费账户可以申请一个) 创建docker远程镜像库 2.新建一个mvc的项目 给这个项目加上Dockerfile文 ...
- 【转载】 自动化机器学习(AutoML)之自动贝叶斯调参
原文地址: https://blog.csdn.net/linxid/article/details/81189154 ---------------------------------------- ...
- 使用ML.NET + Azure DevOps + Azure Container Instances打造机器学习生产化
介绍 Azure DevOps,以前称为Visual Studio Team Services(VSTS),可帮助个人和组织更快地规划,协作和发布产品.其中一项值得注意的服务是Azure Pipeli ...
- Microsoft宣布为Power BI提供AI模型构建器,关键驱动程序分析和Azure机器学习集成
微软的Power BI现在是一种正在大量结合人工智能(AI)的商业分析服务,它使用户无需编码经验或深厚的技术专长就能够创建报告,仪表板等.近日西雅图公司宣布推出几款新的AI功能,包括图像识别和文本分析 ...
随机推荐
- bay——linux6.5-PV-LV-VG扩容.txt
[root@rac2 cdrom]# export LANG=en_US[root@rac2 cdrom]# lsblk[root@rac2 cdrom]# lvscan --- 查看系统PV LV ...
- 10g+: Transportable Tablespaces Across Different Platforms (Doc ID 243304.1)
10g+: Transportable Tablespaces Across Different Platforms (Doc ID 243304.1) APPLIES TO: Oracle Data ...
- [Linux] Nginx服务下统计网站的QPS
单位时间的请求数就是QPS,那么在nginx服务的网站下,如果要统计QPS并且按从高到低排列,需要使用awk配合sort进行处理awk做的主要工作是把access每行日志按分隔符分开,然后循环每一行, ...
- 201871010115-马北《面向对象程序设计(java)》第一周学习总结
博文正文开头格式:(3分) 项目 内容 这个作业属于哪个课程 <https://www.cnblogs.com/nwnu-daizh/> 这个作业的要求在哪里 <https://ww ...
- Luogu P5298 [PKUWC2018]Minimax
好劲的题目啊,根本没往线段树合并方面去想啊 首先每种权值都有可能出现,因此我们先排个序然后一个一个求概率 由于此时数的值域变成\([1,m]\)(离散以后),我们可以设一个DP:\(f_{x,i}\) ...
- Python解释器和Python集成环境小结
目录 一.执行Python程序的两种方式 1.1 交互式 1.2 命令行式 二.执行Python程序的两种IDE 2.1 Pycharm 2.2 Jupyter 一.执行Python程序的两种方式 1 ...
- npm 被墙怎么办
npm install typescript --registry=http://registry.npm.taobao.org 使用下面的命令.
- js forEach参数详解,forEach与for循环区别,forEach中如何删除数组元素
壹 ❀ 引 在JS开发工作中,遍历数组的操作可谓十分常见了,那么像for循环,forEach此类方法自然也不会陌生,我个人也觉得forEach不值得写一篇博客记录,直到我遇到了一个有趣的问题,我们来 ...
- python接口自动化12-pytest前后置与fixture
前言 我们都知道在自动化测试中都会用到前后置,pytest 相比 unittest 无论是前后置还是插件等都灵活了许多,还能自己用 fixture 来定义.(甩 unttest 半条街?) 首先了解一 ...
- Python - ^在正则表达式中的作用
^在正则表达式中有两个作用,一是表达以什么开头,二是表达对什么取反.有时候经常傻傻的分不清楚,接下来给大家详细介绍该怎么用这个^准备一个python文件test.py,借用re.search函数举例说 ...