使用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 新功能,每个群集,其中包含每个示例与每个群集的形心的距离的一个新数字功能。 |
运行实验并查看结果
若要运行此试验,请单击开始。 实验准备过程需要几分钟的时间。
查看实验详细信息
实验准备阶段完成后,你将看到运行详细信息屏幕。 这样,您创建的模型的完整列表。 默认情况下,最高评分的模型基于您的参数列表的顶部。 如训练作业尝试出更多的模型,则将它们添加到迭代列表和图表中。 使用迭代图表以获取到目前为止生成的模型的快速度量值的比较。
训练作业可能需要每个管道完成运行一段时间。