转换为指示器值

重要

对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习

从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。

ML 工作室(经典)文档即将停用,将来可能不会更新。

将列中的分类值转换成指示器值

类别: 数据转换/操作

注意

适用于:机器学习 Studio (经典) 应用

可在 Azure 机器学习设计器中获取类似的拖放模块。

模块概述

本文介绍如何使用 机器学习 Studio 中的"转换为指示器值" (经典) 。 本模块的目的是将包含分类值的列转换为一系列二进制指示器列,这些列可以更轻松地用作机器学习模型中的功能。

如何配置“转换为指示器值”

  1. "转换为指示器值"模块添加到机器学习试验,并将其连接到包含要转换的列的数据集。 可以在"数据转换" 下的"操作"类别中找到 模块。

  2. 使用“列选择器”选择一个或多个分类列。

    若要确保选择的列是分类列,请在试验中"转换为指示器值"之前使用"编辑元数据",将目标列标记为分类列。

  3. 如果你只想输出新的布尔值列,请选择“覆盖分类列”选项。

    默认情况下,此选项为关闭状态,这使你能够查看作为源的分类列以及相关的指示器列。

    提示

    选择覆盖选项不会真正删除或修改源列。 而是生成新列并在输出数据集中提供新列,而源列仍会在工作区中提供。 如果需要查看原始数据,随时可以使用添加列模块加回源列。

  4. 运行试验。

结果

例如,假设你有一个分数为 的列,该列指示服务器是否具有高、中或低故障概率。

服务器 ID 故障评分
10301
10302 中型
10303

应用" 转换为指示器值"时,标签的单列将转换为包含多个布尔值的列:

服务器 ID 故障评分 - 低 故障评分 - 中 故障评分 - 高
10301 1 0 0
10302 0 1 0
10303 0 0 1

下面是转换的工作原理:

  • 在描述风险的“故障评分”列中,只有三个可能的值(“高”、“中”和“低”),不存在缺失值。 因此,只创建了三个新列。

  • 新指示器列使用以下模式根据源列的列标题和值命名:<源列>- <数据值>。

  • 一个指示器列中应只有 1 个,所有其他指示器列中应包含 0。 这是因为每个服务器只能有一个风险等级。

现在可以使用这三个指示器列作为特征,并分析它们与其他与不同风险级别关联的属性的关联。

示例

若要查看如何使用此模块的示例,请参阅以下 Azure AI 库

  • 疾病检测:根据患者 ID 号将患者分箱到组中,然后使用"指示器值"来标记患者所属的组。 再后,可以在为模型评分时使用组指示器。

  • 直接营销:使用"应用数学运算"将概率与常量进行比较,指示分数高于或低于该常量的"是/否"值将转换为新的指示器列。

  • 网络入侵检测:日志数据从 Azure 存储加载。 类变量(例如,描述攻击是 rootkit 还是缓冲区溢出)被转换成分类列,然后扩展到多个指示器值。

技术说明

本部分包含实现详情、使用技巧和常见问题解答。

使用提示

  • 只能将标记为分类的列转换为指示器列。 如果看到此错误,则所选列之一可能不是分类列:

    错误 0056:名称为 <列名> 的列不在允许的类别中。

    默认情况下,大多数字符串列都作为字符串特征进行处理,因此必须使用编辑元数据将其显式标记为 分类

  • 如果未选择至少一个分类列,则会显示错误。

  • 可以转换为指示器列的列数没有限制。 但是,由于每个值列都可以生成多个指示器列,因此你可能希望一次只转换和查看几个列。

  • 如果该列包含缺失值,则会为缺失的类别单独创建一个名称为“<源列>- 缺失”的指示器列

  • 如果要转换为指示器值的列包含数字,则必须将其标记为分类,如同转换任何其他特征列一样。 完成此操作后,数字将被视为离散值。 例如,如果某个数字列的 MPG 值范围为 25 到 30,则会为每个离散值创建一个新的指示器列:

    制造商 Highway mpg -25 Highway mpg -26 Highway mpg -27 Highway mpg -28 Highway mpg -29 Highway mpg -30
    Alfa Romeo 0 0 0 0 0 1

    为了避免获取大量指示器列,建议首先检查列中的值数,并适当地将数据分箱或量化。

预期输入

名称 类型 说明
数据集 数据表 包含分类列的数据集

模块参数

名称 范围 类型 默认 说明
要转换的分类列 任意 ColumnSelection 选择要转换为指示器矩阵的分类列。
覆盖分类列 任意 布尔 false 如果为 True,则覆盖选定的分类列,否则将生成的指示器矩阵附加到数据集。

输出

名称 类型 说明
结果数据集 数据表 包含已转换成指示器矩阵的分类列的数据集。

另请参阅

操作
数据转换
A-Z 模块列表