我找到了以下定义,但我并没有真正看到区别。
交叉验证 用于测试分类和预测模型的方法。数据被随机分成 N 个分区(通常 N=10),然后从 N-1 个分区创建模型 N 次,并在“保留”数据上进行测试。
留出 一个 每个数据点在测试集中恰好出现一次,并且在训练集中出现 k-1 次。
我找到了以下定义,但我并没有真正看到区别。
交叉验证 用于测试分类和预测模型的方法。数据被随机分成 N 个分区(通常 N=10),然后从 N-1 个分区创建模型 N 次,并在“保留”数据上进行测试。
留出 一个 每个数据点在测试集中恰好出现一次,并且在训练集中出现 k-1 次。
考虑一个数据集,其中您有用户并希望根据一些值来预测关于他们的一些事情。每个用户可能在 DS 中有许多条目。
在交叉验证中,数据是随机分区的,因此不同的用户条目可以落入同一个分区,或者某些分区可能没有关于某些用户的信息,如下所示:
Dataset -> Partition
user1; somevalues -> partition 1
user1; someOthervalues -> partition 2
user2; somevalues -> partition 2
user1; more_on_user1 -> partition 1
user2; someMoreValues -> partition 2
user3; somevalues -> partition 1
etc...
partition 1一无所知user2。如果您假设行为是全局的而不是用户特有的,那么这可能并不重要
而leave-one-out将确保测试集具有每个用户的一个示例。这在推荐系统中很常见,在推荐系统中,您会为每个用户留下一个评分,因为在所有用户中测试的指标(在 rec.sys 的上下文中)比可能跳过许多用户的指标更可靠。