过拟合及交叉验证方法的对比

过拟合与欠拟合

1.常用的判断方法是从训练集中随机选一部分作为一个验证集,采用K折交叉验证的方式,用训练集训练的同时在验证集上测试算法效果。在缺少有效预防欠拟合和过拟合措施的情况下,随着模型拟合能力的增强,错误率在训练集上逐渐减小,而在验证集上先减小后增大;当两者的误差率都较大时,处于欠拟合状态(high bias, low variance);当验证集误差率达到最低点时,说明拟合效果最好,由最低点增大时,处与过拟合状态(high variance, low bias)。上图的横坐标用拟合函数多项式的阶数笼统地表征模型拟合能力。

2.防止过拟合方法主要有:

1.正则化(Regularization)(L1和L2)

2.数据增强(Data augmentation),也就是增加训练数据样本

3.Dropout

4.early stopping:在每一个Epoch结束时计算validation data的accuracy,当accuracy不再提高时,就停止训练。

5.batch_normalization 用在激活函数之前提高泛化能力,加快训练速度,而且避免了训练数据中协方差偏移的情况。反传时梯度接近1,不容易出现梯度消失和梯度爆炸。

5.模型过于复杂,减少神经网络层数和参数量

几种交叉验证方法

1、随机子抽样验证(Hold-Out Method) 
介绍:常识来说,Hold-Out 验证并非一种交叉验证,因为数据并没有交叉使用。该方法将原始数据随机分为两组,一组做为训练集,一组做为验证集,利用训练集训练分类器,然后利用验证集验证模型,记录最后的分类准确率为分类器的性能指标。相对K-CV又被称为2-CV。

优点:处理简单,只需随机把原始数据分为两组即可。

缺点:有些样本可能从未做过训练或测试数据,而有些样本不止一次选为训练或测试数据。另外训练集样本数太少,通常不足以代表母体样本的分布,导致 test 阶段辨识率容易出现明显落差。

2、K折交叉验证(K-fold Cross Validation) 
介绍:作为2-CV的演进,将原始数据分成K组(一般是均分),将每个子集数据分别做一次验证集,其余的K-1组子集数据作为训练集,这样会得到K个模型,用这K个模型最终的验证集的分类准确率的平均数作为此K-CV下分类器的性能指标。K一般大于等于2,实际操作时一般从3开始取,只有在原始数据集合数据量小的时候才会尝试取2。而K-CV 的实验共需要建立 k 个models,并计算 k 次 test sets 的平均辨识率。在实作上,k 要够大才能使各回合中的训练样本数够多,一般而言 k=10 (作为一个经验参数)算是相当足够了。

优点: K-CV使得每一个样本数据都既被用作训练数据,也被用作测试数据,可以有效的避免过学习以及欠学习状态的发生,最后得到的结果也比较具有说服性。

缺点: K值的选择

3、留一法交叉验证(Leave-One-Out Cross Validation) 
介绍:如果设原始数据有N个样本,那么每个样本单独作为验证集,其余的N-1个样本作为训练集,所以LOO-CV会得到N个模型,用这N个模型最终的验证集的分类准确率的平均数作为此下LOO-CV分类器的性能指标。

优点: 
a.每一回合中几乎所有的样本皆用于训练模型,因此最接近原始样本的分布,这样评估所得的结果比较可靠; 
b. 实验没有随机因素,整个过程是可重复的。

缺点: 计算成本高,当N非常大时,计算耗时。除非每次训练分类器得到模型的速度很快,或是可以用并行化计算减少计算所需的时间。

在模式识别与机器学习的相关研究中,经常会将数据集分为训练集与测试集这两个子集,前者用以建立模式,后者则用来评估该模式对未知样本进行预测时的精确度,即泛化能力(generalization ability)。

交叉验证核心原则
Cross-validation 是为了有效的估测 generalization error 所设计的实验方法,只有训练集才可以用在模式的训练过程中,测试集则必须在模式完成之后才被用来评估模式优劣的依据。

数据集分割原则
原始数据集分割为训练集与测试集,必须遵守两个要点: 
1、训练集中样本数量必须够多,一般至少大于总样本数的 50%; 
2、两组子集必须从完整集合中均匀取样。均匀取样的目的是希望尽量减少训练集/测试集与完整集合之间的偏差。一般的作法是随机取样,当样本数量足够时,便可达到均匀取样的效果。

参考:https://blog.csdn.net/yawei_liu1688/article/details/79138202 
参考:https://blog.csdn.net/nini_coded/article/details/79304498

讲过拟合非常详细

参考:http://www.cnblogs.com/LittleHann/p/10020448.html 

猜你喜欢

转载自blog.csdn.net/qq_40168949/article/details/85010247
今日推荐