将数据拆分为训练/测试 - 但保证两者中不存在某个键/标识符

问题描述 投票:0回答:1

我需要做的是将数据集拆分为训练/测试数据集(python),但请考虑以下事项:

  1. 遵守近似的训练/测试配给分配(例如 70/30)
  2. 数据集中的每一行都有一个键。这些键不是唯一的,这意味着我可以使用 1 个键拥有 1000 行,使用另一个键拥有另外 2 行。我想保证训练和测试中不存在相同的密钥。

我尝试了网上的所有内容(包括这里的类似主题),例如 GroupKFold,.. 等。但似乎我无法做到这一点。 有什么想法吗?

python machine-learning
1个回答
0
投票

如果您需要确保特定 ID 不会在训练数据集和测试数据集之间共享,则应使用拆分器中的

groups
参数来说明它们。

一个好的方法是利用

GroupShuffleSplit
中的
sklearn.model_selection
类,它允许您根据组标签分割数据,确保没有组出现在训练集和测试集中。

有关更多详细信息,请查看此相关问题:如何根据组 ID 生成训练测试分割?。在那里,您将找到一个清晰的示例,说明如何在使用

groups
时设置
GroupShuffleSplit
参数。

© www.soinside.com 2019 - 2024. All rights reserved.