为什么要使用交叉验证?
如果我们有一个数据集,我们通保留20%作为验证集,其余作为训练集。但是我们训练的模型可能在这个验证集表现很好,在其他数据上表现不好。
通常情况下,验证集越大,我们的模型质量度量中的随机性(也就是“噪声”)就越小,它就越可靠。不幸的是,我们只能通过从我们的训练数据中删除行来获得一个大的验证集,而更小的训练数据集意味着更糟糕的模型!
交叉验证:例如,我们将数据等分成五份,实验一用第一份作为验证集,其余部分作为训练集。实验二用第二份作为验证集,其余作为训练集。以此类推,重复直到每一份都做了验证集。最后我们得到了基于整个数据集的模型质量度量。
交叉验证提供了更准确的模型质量度量,如果您正在做出许多建模决策,则这一点尤为重要。然而,它可能需要更长的运行时间,因为它估计了多个模型。
什么时候使用交叉验证?
1.对于小数据集,在这些数据集中,额外的计算负担并不是什么大问题,您应该使用交叉验证。
2.对于较大的数据集,一个验证集就足够了。你的代码将运行得更快,并且您可能有足够的数据,因此没有必要使用交叉验证。
例子
假设我们已经加载了数据X,y.
预处理和定义模型
from sklearn.e