交叉验证用于模型选择Model Selection,比如KNN中的K值选择。
将训练数据(对于有监督学习,即带有label的数据)一分为二,分为 training set和validation set。使用training set训练不同参数的模型,在validating set上验证准确率,然后选择表现最好的模型参数。
将训练数据分为N等份,每一次使用其中一份作为validation set,其他N-1份作为training set,这样针对一种模型参数,就能进行N次的简单交叉验证,得到更多的验证集准确性,取平均值,再据此进行模型选择。
此方法适用于训练数据很有限的情况,是特殊情况的N折交叉验证,此时N等于样本数,相当于每次从数据中取出1个作为validation set,其他作为training set。
此方法也适用于数据量特别少的情况,从含有N个样本的数据集中有放回的采样N次,采样到的数据去重后作为training set,未采到的数据作为validation set,bootstrapping得到的training set大概会有原数据集的68%,由于我们的训练集有重复数据,这会改变数据的分布,因而训练结果会有估计偏差,因此,此种方法不是很常用,除非数据量真的很少,比如小于20个。