分区和示例组件

本文介绍 Azure 机器学习设计器中的一个组件。

使用分区和采样组件来对数据集执行采样或从数据集创建分区。

采样是机器学习中的一个重要工具,因为通过采样可以减小数据集的大小,同时使值的比率保持相同。 该组件支持机器学习中几个重要的相关任务:

  • 将数据划分为多个大小相同的小节。

    可以将分区用于交叉验证,或用于将事例分配给随机组。

  • 将数据分成组,然后处理特定组中的数据。

    将事例随机分配给不同的组后,可能需要修改只与一个组关联的特征。

  • 采样。

    可以提取一定百分比的数据,应用随机采样,也可以选择一列用于均衡数据集并对其值进行分层采样。

  • 创建更小的数据集用于测试。

    如果存在大量数据,可以在设置管道时使用前 n 行,然后在构建模型时转为使用完整数据集。 也可以使用采样创建更小的数据集,以便在开发环境中使用。

配置组件

此组件支持采用下列方法将数据划分为分区或进行采样。 请先选择方法,然后设置方法所需的其他选项。

  • 采样
  • 分配到折叠
  • 选取折叠

获取数据集中的前 N 行

使用此模式只能获取前 n 行。 如果要使用少量行测试管道,而不需要以任何方式均衡数据或对其进行采样,则此选项很有用。

  1. 在界面中将“分区和采样”组件添加到管道,并连接数据集。

  2. 分区模式或采样模式:将此选项设置为“Head”。

  3. 要选择的行数:输入要返回的行数。

    行数必须为非负整数。 如果所选行数大于数据集中的行数,则返回整个数据集。

  4. 提交管道。

组件输出单个数据集,其中只包含指定行数。 始终从数据集的顶部开始读行。

创建数据样本

此选项支持简单随机采样或分层随机采样。 如果要创建用于测试的小型代表性样本数据集,则可以使用它。

  1. 将“分区和采样”组件添加到管道,并连接数据集。

  2. 分区或采样模式:将此选项设置为“采样”。

  3. 采样率:请输入介于 0 和 1 之间的值。 此值指定输出数据集应包含的行数占源数据集中行数的百分比。

    例如,如果只需要占原始数据集一半的数据,则输入 0.5,表示采样率应为 50%。

    根据指定的比率,随机排列输入数据集中的行,并将其有选择地放入输出数据集。

  4. 用于采样的随机种子:(可选)输入一个要用作种子值的整数。

    如果希望每次都按相同的方式划分多个行,则此选项非常重要。 默认值为 0,表示根据系统时钟生成起始种子。 此值可能会导致每次运行管道的结果略有不同。

  5. 用于采样的分层拆分:如果数据集中的行在采样之前按某些键列平均划分,请选择此选项。

    对于用于采样的分层键列,请选择一个单独的分层列,以供划分数据集时使用。 然后,将数据集中的行划分如下:

    1. 所有输入行均按指定分层列中的值分组(分层)。

    2. 对每个组中的行进行随机排列。

    3. 将每个组有选择地添加到输出数据集中以满足指定比例。

  6. 提交管道。

    使用此选项时,组件将输出单个数据集,其中包含数据的代表性采样。 不会输出数据集的未采样部分。

将数据拆分到多个分区

要将数据集划分为数据子集时,请使用此选项。 要创建自定义数量的折叠以用于交叉验证,或将行拆分为多个组,此选项也很有用。

  1. 将“分区和采样”组件添加到管道,并连接数据集。

  2. 对于分“区或采样模式”,选择“分配到折叠” 。

  3. 在分区中使用替换:如果希望将采样行放回到行池中以允许重用,请选择此选项。 因此,可以将同一行分配到多个折叠。

    如果不使用替换(默认选项),则不会将采样行放回到行池中以允许重用。 因此,只能将每行分配到一个折叠。

  4. 随机拆分:如果要将行随机分配到折叠,请选择此选项。

    如果不选择此选项,则通过轮询机制方法将行分配到折叠。

  5. 随机种子:(可选)输入一个要用作种子值的整数。 如果希望每次都按相同的方式划分多个行,则此选项非常重要。 否则,默认值 0 表示将使用随机起始种子。

  6. 指定分区方法:使用以下选项,指示如何将数据分配到每个分区:

    • 平均分区:使用此选项可使每个分区中的行数相等。 若要指定输出分区的数目,请在“指定要平均拆分的折叠数”框中输入整数。

    • 使用自定义比例进行分区:使用此选项可以用逗号分隔的列表指定每个分区的大小。

      例如,假设要创建三个分区。 第一个分区将包含 50% 的数据。 其余两个分区每个包含 25% 的数据。 在“以逗号分隔的比例列表”框中,输入以下数字: .5、.25、.25

      所有分区大小的总和必须正好是 1。

      如果输入的数字加起来小于 1,则将创建一个额外的分区来容纳剩余的行。 例如,如果输入的值为 .2.3,则会创建第三个分区,用于容纳所有行的其余 50%。

      如果输入的数字加起来大于 1,则在运行管道时会引发错误。

  7. 分层拆分:如果希望在拆分时对行进行分层,请选择此选项,然后选择“分层列”。

  8. 提交管道。

    如果选择此选项,该组件将输出多个数据集。 数据集根据指定的规则分区。

使用预定义分区中的数据

如果已将数据集划分为多个分区,而现在想要依次加载每个分区以进行进一步分析或处理,请使用此选项。

  1. 将“分区和示例”组件添加到管道。

  2. 将组件连接到前一个“分区和示例”实例的输出。 此实例必须使用“分配到折叠”选项才能生成一定数量的分区。

  3. 分区模式或采样模式:选择“选取折叠”。

  4. 指定要采样的折叠:通过输入分区索引来选择要使用的分区。 分区索引从 1 开始。 例如,如果将数据集划分为三个部分,则分区的索引分别为 1、2 和 3。

    如果输入无效的索引值,则会引发设计时错误:“Error 0018:数据集包含无效数据。”

    除了将数据集按折叠分组,还可以将数据集分成两个组:目标折叠和其他所有内容。 为此,请输入单个折叠的索引,然后选择选项“选取所选折叠的补集”,以获取除指定折叠中数据以外的所有内容。

  5. 如果使用多个分区,则必须添加更多的“分区和示例”组件实例来处理每个分区。

    例如,第二行的“分区和示例”组件设置为“分配到折叠”,第三行的组件设置为“拾取折叠”。

    Partition and sample

  6. 提交管道。

    使用此选项,组件输出一个数据集,其中仅包含分配给该折叠的行。

注意

不能直接查看折叠指定情况。 此信息仅存在于元数据中。

后续步骤

请参阅 Azure 机器学习可用的组件集