交叉验证 cross validation
交叉验证 cross validation:
一:基本概念
交叉验证是机器学习在建立模型和验证模型参数时常用的方法。通常用于原始数据不是很充足时,使用交叉验证来重复的使用数据,把原始数据集进行切分组合成多组不同的训练集(训练模型)和测试集(评估模型预测好坏)。
交叉的概念指拆分组合的训练集和测试集的数据是交叉的,比如训练集的样本数据可能下一次就会出现在测试集中。[1]
二:主要方法
当原始样本集数据量很小时,采用交叉验证,其使用的主要方法如下所示:
(1)留出法(hold out method):
一般数据量大于10000条时,我们一般将原始样本数据随机分成三组(留出法):训练集training set,测试集test set,验证集validation set。其中的验证集是用于评估模型预测好坏和选择模型及其对应参数,并把最终得到的模型用于测试集,最终决定使用的模型和对应参数。(通常训练集和测试集比例为7:3)(结果不具说服性)如下图所示【4】
(2)k折交叉验证(K-folder cross validation,K-CV)
其步骤如下:
①将原始数据集不重复抽样的随机分成k组(一般均分)。
②将分好的k组数据,进行k次训练,每次选取其中一组作为测试集数据,剩
余k-1组作为训练集。这样就会得到k个模型。
③用这k个模型,每个模型都在对应的测试集上测试。
得到k个评估指标:分类准确率。
④将这k个分类准确率的平均值作为最终K-CV下分类器的性能指标
k的取值一般大于2,一般取10,20。
使用K-CV可以有效避免欠拟合和过拟合发生。最终结果较具说服性。
如图所示【4】:
(3)留一法(leave- one -out cross validation,LOO-CV)
留一法是k折交叉验证的特殊情况,即k=样本数N。此时对样本集进行N次训练,每次训练取单个数据做测试集,剩余N-1个数据作训练集。因此留一法即是N-CV。
特点:
①最接近原始样本分布,评估结果比较可靠。
②计算成本高,训练复杂度增加,因为要建立的模型数量与原始数据量相同,
因此通常在数据量实在缺乏时使用。
[1] https://www.cnblogs.com/pinard/p/5992719.html
[2]https://blog.****.net/u013713117/article/details/66971668
[3]https://www.cnblogs.com/sddai/p/5696834.html
[4]https://blog.****.net/aliceyangxi1987/article/details/73532651
[5]https://blog.****.net/luanpeng825485697/article/details/79836262