使用拆分行来拆分数据

重要

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

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

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

本文介绍如何使用机器学习 Studio (经典) 的 "拆分数据" 模块中的 "拆分行" 选项。 如果需要划分用于定型和测试的数据集(无论是随机还是按某些标准),则此选项特别有用。

注意

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

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

拆分行选项支持随机和分层拆分。 例如,你可以指定一个70-30 拆分,10-90 或在两个数据集中以相同方式表示的目标变量进行拆分。

有关机器学习试验的数据分区的常规信息,请参阅 拆分数据分区和拆分

" 拆分数据 " 模块中的其他选项支持不同的数据划分方式:

将一个数据集分成两个组

  1. 将 " 拆分数据 " 模块添加到 Studio 中的试验 (经典) ,并连接要拆分的数据集。

  2. 对于“拆分模式”,请选择“拆分行”

  3. 首个输出数据集中的小部分行。 使用此选项确定有多少行进入第一个(左侧)输出。 所有其他行将进入第二个(右侧)输出。

    此比率表示发送到第一个输出数据集的行的百分比,因此必须键入一个介于 0 和 1 之间的十进制数字。

    如果将 0.75 作为值键入,则将使用 75:25 的比率拆分数据集,并将 75% 的行发送到第一个输出数据集,而将 25% 发送到第二个输出数据集。

  4. 如果要将数据选定内容随机化为两个组,请选择“随机化拆分”选项。 这是创建训练和测试数据集时的首选项。

  5. 随机种子:键入一个非负整数值以初始化要使用的实例的伪随机序列。 此默认种子用于生成随机数字的所有模块。

    指定种子会使结果通常可重复。 如果需要重复执行拆分操作的结果,则应指定随机数生成器的种子。 否则,随机种子默认设置为 0,这意味着将从系统时钟获取初始种子值。 因此,每次执行拆分时,数据的分布都会略有不同。

  6. 分层拆分:如果将此选项设置为 True,则可确保两个输出数据集包含“阶层列”或“分层键列”中值的代表性示例 。

    使用分层采样,将对数据进行划分,以便每个输出数据集大约获取每个目标值的相同百分比。 例如,您可能希望确保您的定型集和测试集的大致平衡与结果有关,或者与其他一些列(如性别)有关。

  7. 运行试验,或右键单击模块并选择 " 运行所选项"。

示例

下面的示例演示如何使用 拆分行 模式执行简单拆分。

拆分为两个相等部分

在数据集之后添加 拆分数据 模块,无需进行其他更改。 默认情况下,该模块将数据集拆分成两个相等部分。 对于行数为奇数的数据,第二个输出获取剩余部分。

分成三分之二

假设您想要将数据集拆分为两个部分,其中包含用于定型的第三个数据,以及用于测试或其他拆分的其余数据。

为此,请添加 " 拆分数据 " 模块,并将 第一个输出中的行部分 设置为0.33。 第二个输出包含剩余的三分之二。

若要将第二个输出分成相等的部分,请添加 拆分数据 模块的另一个实例,这一次使用的是 50-50 split 的默认值。

技术说明

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

实现详细信息

  • 此模块要求 dataset 至少包含两行;否则,将引发错误。

  • 如果你使用该选项指定所需的行数,则指定的数目必须是正整数,而且该数必须小于数据集中的总行数。

  • 所有百分比值必须在0到1的范围内。

  • 如果指定的数字或百分比是小于1的浮点数,并且未使用百分号 (% ) ,则该数字将被解释为比例值。

分层采样的其他要求

  • 阶层列只能包含名义或分类的数据。 如果列包含连续数值数据,则会引发错误消息。

  • 具有太多唯一值的列不是分层的理想候选项。 您可以事先尝试折叠某些类别或分组值。

另请参阅

示例和拆分分区和示例