【发布时间】:2016-05-25 10:37:40
【问题描述】:
我有一个数据集,包括user ID、item ID和rating,如下所示:
user ID item ID rating
1233 1011 4
1220 0999 3
2011 0702 1
...
当我将它们分成train 和test 集时:
from sklearn import cross_validation
train, test = cross_validation.train_test_split(df, test_size = 0.2)
测试集中的用户是否已经出现在训练集中,是否有项目?如果没有,我该怎么做?我在document 中找不到答案。你能告诉我吗?
【问题讨论】:
-
我不明白这个问题。你到底想做什么?
-
@kazemakase 该模型是在测试集中预测
rating从user到item。为此,我们必须测量训练集中user和item的潜在因子。那么如何确保测试集中的用户也在训练集中。因为,同样的事情应该发生在项目中。好点了吗? -
我也不太明白你在问什么。您想对用户、项目或用户和项目的独特组合进行分层吗?例如,您是否允许您的训练和测试分区都包含用户 X 对不同项目的排名,或者两者都包含不同用户对项目 Y 的排名?是否可以同时包含用户 X 和项目 Y 的示例,只要它们都不包含用户 X 对项目 Y 的评分?
-
@ali_m 这就是我的意思:
allow your training and test partitions to both contain rankings of different items by user X, or for both to contain rankings of item Y by different users和OK for them both to contain examples of user X and item Y as long as they don't both contain a rating of item Y by user X
标签: python pandas machine-learning scikit-learn cross-validation