交叉验证 vs 遗漏一个

数据挖掘 数据 交叉验证
2022-02-18 16:02:11

我找到了以下定义,但我并没有真正看到区别。

交叉验证 用于测试分类和预测模型的方法。数据被随机分成 N 个分区(通常 N=10),然后从 N-1 个分区创建模型 N 次,并在“保留”数据上进行测试。

留出 一个 每个数据点在测试集中恰好出现一次,并且在训练集中出现 k-1 次。

2个回答

假设您的数据集包含样本:k

在交叉验证中,有个分区,每个分区的测试拆分将具有大小NkN

留一法验证是一种特殊类型的交叉验证,其中您可以将其视为将交叉验证发挥到极致,我们将分区数设置为最大可能值。在留一法验证中,测试拆分的大小为N=kkk=1

很容易看出差异。这是两个对比交叉验证和留一法的数字。在这些图中,数据集中的每个样本都由一个彩色圆圈表示。训练集用绿色圆圈表示,测试集用黄色圆圈表示。

5折交叉验证:

5折交叉验证

留一交叉验证: 留一交叉验证

考虑一个数据集,其中您有用户并希望根据一些值来预测关于他们的一些事情。每个用户可能在 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 的上下文中)比可能跳过许多用户的指标更可靠。