使用推荐器拆分来拆分数据

重要

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

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

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

本文介绍如何在机器学习 Studio (经典) 的拆分数据模块中使用推荐器 Split选项。 当你需要准备定型和测试数据集以便与推荐模型一起使用时,此选项很有用。 这些模型不仅需要特定的格式,而且很难以均衡的方式划分分级、用户和项目,而无需使用特殊工具。

注意

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

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

推荐器 split选项可通过请求所使用的建议模型类型来更轻松地执行此过程:例如,是要推荐项、建议分级还是查找相关用户? 然后,它根据指定的条件划分数据集,例如如何处理 cold 用户或冷项。

拆分数据集时,模块将返回两个数据集,一个用于定型,另一个用于测试或模型计算。 如果输入数据集包含每个实例的任何额外数据(例如分级),它则保留在输出中。

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

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

划分推荐模型使用的数据集

推荐器 Split选项是专门为用于定型建议系统的数据提供的。

使用此选项之前,请确保数据的格式是兼容的。 推荐器拆分器的工作方式是,dataset 仅包含 用户项对 或用户- 项-分级 三元组。 有关详细信息,请参阅本文中的 输入数据要求

  1. 将 " 拆分数据 " 模块添加到实验,并将其作为输入连接到要拆分的数据集。

  2. 对于 拆分模式,请选择 " 推荐器 split"。

  3. 设置以下选项以控制值的划分方式。 指定表示为0和1之间的数字的百分比。

    • 仅限定型用户的分数:指定应仅分配给定型数据集的用户的小数部分。 这意味着行永远不会用于测试模型。

    • 训练的测试用户分级的小数部分:指定您收集的部分用户评分可用于培训。

    • 冷用户的小数部分:冷用户是指系统以前未遇到过的用户。 通常,由于系统没有关于这些用户的信息,因此它们对训练而言很有价值,但预测可能会不太准确。

    • 冷项的小数部分:冷项是指系统以前未遇到过的项。 由于系统没有关于这些项的信息,因此它们对训练而言很有价值,但预测可能会不太准确。

    • 忽略的用户的小数部分:此选项允许推荐器忽略某些用户,这使你可以针对数据的子集定型模型。 这可能是出于性能原因很有用。 指定应忽略的用户的百分比。

    • 忽略项的小数部分:推荐器拆分器可以忽略某些项,并在数据子集上定型模型。 这可能是出于性能原因很有用。 指定要忽略的项数。

  4. 删除偶尔生成的冷项:此选项通常设置为零,以确保测试集中的所有实体都包含在定型集中。

    如果某项仅包含在测试集中且未被显式选作冷门,则将该项称为“偶尔冷门”。 可通过如何拆分推荐器数据部分介绍的算法中的步骤 (4) 和 (6) 生成此类项。

  5. 推荐器的随机种子:如果想要每次按相同方式拆分数据,请指定种子值。 否则,默认情况下会使用系统时钟值作为种子,随机拆分输入数据。

  6. 运行试验。

示例

有关如何划分一组分级和功能以用于定型或测试推荐模型的示例,我们建议你查看 Azure AI 库中的此示例试验提供的演练: 电影建议

技术说明

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

输入数据的要求

推荐器拆分器的工作方式是,dataset 仅包含用户项对或用户-项-分级三元组。 因此," 拆分数据 " 模块无法在具有三列以上的数据集上运行,以避免与功能类型数据混淆。

如果数据集包含的列过多,可能会收到以下错误:

错误0022:输入数据集中的选定列数不等于 x

作为一种解决方法,可以使用 " 在数据集中选择列" 来删除某些列。 您始终可以使用 " 添加列 " 模块以后再添加这些列。

或者,如果你的数据集具有多个要在模型中使用的功能,请使用不同的选项来划分数据集,并使用 定型模型 (而不是 定型 Matchbox 推荐器)来定型模型。

有关支持的数据格式的详细信息,请参阅 训练 Matchbox 推荐器

使用提示

  • 如果数据集不包含至少两行,则会引发错误。

  • 如果你指定一个数字作为百分比,或者使用包含“%”字符的字符串,则该值将被解释为百分比。

    所有百分比值必须在范围 (0, 100) 内,不包括值 0 和 100。

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

实现详细信息

在将数据拆分为训练和测试集与建议模型一起使用时,使用以下算法:

  1. 请求忽略项部分将连同所有关联的观测值一起删除。

  2. 请求冷门项部分将连同所有关联的观测值一起移到测试集。

  3. 前两个步骤之后剩余的请求忽略用户部分将连同所有关联的观测值一起删除。

  4. 前两个步骤之后剩余的请求冷门用户部分将连同所有关联的观测值一起移到测试集。

  5. 前两个步骤之后剩余的请求仅训练用户部分将连同所有关联的观测值一起移到训练集。

  6. 对于所有前述步骤之后剩余的每个用户,用于训练的测试用户分级的请求部分移到训练集,其余部分移到测试集。

    至少一个观察始终转为设置每个用户的训练。

  7. 如果请求,则可以从测试集删除与偶尔生成的冷门项相关联的实例。

    如果某项仅包含在测试集中且未被显式选作冷门,则将该项称为“偶尔冷门”。 可以通过步骤 (4) 和 (6) 生成此类项。

    如果冷门用户和冷门项的请求数被设置为零,预计会使用此选项。 这可确保测试集中的所有实体均包括在训练集中。

另请参阅

拆分数据分区和拆分