使用拆分行来拆分数据
重要
对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习。
从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。
ML 工作室(经典)文档即将停用,将来可能不会更新。
本文介绍如何使用机器学习 Studio (经典) 的 "拆分数据" 模块中的 "拆分行" 选项。 如果需要划分用于定型和测试的数据集(无论是随机还是按某些标准),则此选项特别有用。
拆分行选项支持随机和分层拆分。 例如,你可以指定一个70-30 拆分,10-90 或在两个数据集中以相同方式表示的目标变量进行拆分。
有关机器学习试验的数据分区的常规信息,请参阅 拆分数据 和 分区和拆分。
相关任务
" 拆分数据 " 模块中的其他选项支持不同的数据划分方式:
使用正则表达式拆分数据:将正则表达式应用于单个文本列,并根据结果划分数据集。
使用相对表达式拆分数据:对数值列应用表达式,并根据结果划分数据集
拆分推荐器数据集:划分在建议模型中使用的数据集。 数据集应有三列:项、用户和分级。
将一个数据集分成两个组
将 " 拆分数据 " 模块添加到 Studio 中的试验 (经典) ,并连接要拆分的数据集。
对于“拆分模式”,请选择“拆分行”。
首个输出数据集中的小部分行。 使用此选项确定有多少行进入第一个(左侧)输出。 所有其他行将进入第二个(右侧)输出。
此比率表示发送到第一个输出数据集的行的百分比,因此必须键入一个介于 0 和 1 之间的十进制数字。
如果将 0.75 作为值键入,则将使用 75:25 的比率拆分数据集,并将 75% 的行发送到第一个输出数据集,而将 25% 发送到第二个输出数据集。
如果要将数据选定内容随机化为两个组,请选择“随机化拆分”选项。 这是创建训练和测试数据集时的首选项。
随机种子:键入一个非负整数值以初始化要使用的实例的伪随机序列。 此默认种子用于生成随机数字的所有模块。
指定种子会使结果通常可重复。 如果需要重复执行拆分操作的结果,则应指定随机数生成器的种子。 否则,随机种子默认设置为 0,这意味着将从系统时钟获取初始种子值。 因此,每次执行拆分时,数据的分布都会略有不同。
分层拆分:如果将此选项设置为 True,则可确保两个输出数据集包含“阶层列”或“分层键列”中值的代表性示例 。
使用分层采样,将对数据进行划分,以便每个输出数据集大约获取每个目标值的相同百分比。 例如,您可能希望确保您的定型集和测试集的大致平衡与结果有关,或者与其他一些列(如性别)有关。
运行试验,或右键单击模块并选择 " 运行所选项"。
示例
下面的示例演示如何使用 拆分行 模式执行简单拆分。
拆分为两个相等部分
在数据集之后添加 拆分数据 模块,无需进行其他更改。 默认情况下,该模块将数据集拆分成两个相等部分。 对于行数为奇数的数据,第二个输出获取剩余部分。
分成三分之二
假设您想要将数据集拆分为两个部分,其中包含用于定型的第三个数据,以及用于测试或其他拆分的其余数据。
为此,请添加 " 拆分数据 " 模块,并将 第一个输出中的行部分 设置为0.33。 第二个输出包含剩余的三分之二。
若要将第二个输出分成相等的部分,请添加 拆分数据 模块的另一个实例,这一次使用的是 50-50 split 的默认值。
技术说明
本部分包含实现详情、使用技巧和常见问题解答。
实现详细信息
此模块要求 dataset 至少包含两行;否则,将引发错误。
如果你使用该选项指定所需的行数,则指定的数目必须是正整数,而且该数必须小于数据集中的总行数。
所有百分比值必须在0到1的范围内。
如果指定的数字或百分比是小于1的浮点数,并且未使用百分号 (% ) ,则该数字将被解释为比例值。
分层采样的其他要求
阶层列只能包含名义或分类的数据。 如果列包含连续数值数据,则会引发错误消息。
具有太多唯一值的列不是分层的理想候选项。 您可以事先尝试折叠某些类别或分组值。