偏差与方差, 过拟合与欠拟合、学习曲线之间的联系

机器学习中,偏差与方差, 过拟合与欠拟合、学习曲线之间的联系

  • 1 学习曲线?
  • 2 偏差与方差?
  • 3 过拟合与欠拟合的解决办法?

1 学习曲线?

学习曲线就是通过画出不同训练集大小时训练集和交叉验证的准确率,可以看到模型在新数据上的表现,进而来判断模型是否方差偏高或偏差过高,以及增大训练集是否可以减小过拟合。如何判别一个模型是过拟合还是欠拟合,是偏差问题还是方差问题?可以通过学习曲线来判断。

从总体趋势上来看,训练集的准确率是逐渐减低的,测试集的准确率逐渐上升。

高偏差:训练集和测试集的准确率都比较小,但是两者趋于一致,这种情况是欠拟合状态。解决办法:增加模型参数,比如,构建更多的特征,减小正则项。此时通过增加数据量是不起作用的。

高方差:训练集和测试集的准确率相差较大,但是都在期望的准确率附件,这种情况是过拟合状态。可以增大训练集,降低模型复杂度,增大正则项,或者通过特征选择减少特征数。

2 偏差与方差

偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据集。
方差:描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,预测结果数据的分布越散。

基于偏差的误差:所谓基于偏差的误差是我们模型预期的预测与我们将要预测的真实值之间的差值。偏差是用来衡量我们的模型的预测同真实值的差异。

基于方差的误差:基于方差的误差描述了一个模型对给定的数据进行预测的可变性。比如,当你多次重复构建完整模型的进程时,方差是,在预测模型的不同关系间变化的多少。

之前理解机器学习中的偏差的概念,即预测值与真实值之前的差异大小。对于方差不理解,不知如何衡量,其实,很简单,将一份数据多次切分,进行预测,每次得出的误差都不相同,它们之间的离散程度即是基于方差的误差。一般来讲,不同的训练集、测试集分割的方法导致其准确率不同,而交叉验证的基本思想是:将数据集进行一系列分割,生成一组不同的训练测试集,然后分别训练模型并计算测试准确率,最后对结果进行平均处理。这样来有效减小基于方差的误差。

一般来讲:越复杂的模型偏差越小,而方差越大。
我们用一个参数少的,简单的模型进行预测,会得到低方差,高偏差,通常会出现欠拟合。
而我们用一个参数多的,复杂的模型进行预测,会得到高方差,低偏差,通常出现过拟合。
因此需要在模型复杂度之间寻找一个适当值

3 过拟合与欠拟合的解决办法?

上面解释学习曲线的时候也提到了一些。
过拟合:1 降低模型的复杂度 2 减少特征数 3 增大正则项 4 增加数据(学到更多有效特征)5 bagging 如RF随机选择特征 5 重新清洗数据,可能因为噪声太大导致。
欠拟合:1 增大模型的复杂度,2 增加特征数(特征生成)3 减少正则项

参考:
[模型优化]模型欠拟合及过拟合判断、优化方法
什么是高/低方差、高/低偏差、(推荐阅读)
用学习曲线 learning curve 来判别过拟合问题

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章