偏差是什么?
为什么我说是预测值的偏差?这个值实质上,就是实际的label值与模型预测的label值之间的差值。这个十分容易理解,一般情况下,我们提升模型效果都是冲着降低偏差来的。
方差是什么?
在概率论、统计学等书本中都有会方差的介绍,方差(和标准差)表示的,就是一列数据的离散程度,值越大,离散程度越大。
下图很好的展示了这个概念。
一个模型在测试集上表现很差(比如在kaggle上不了榜),往往因为两个方面:高偏差与高方差。
高偏差问题如何解决?
偏差指的是模型预测值与真实值之间的差距,这个距离越大,自然说明模型效果越差。
解决方法追其根源,其实只有一个:
增加特征。也就是所谓的叠特征(特征组合),做kaggle工作量最多的事情。去想如何制造出有用的特征,一个个加入,尝试。
至于增加多项式次数,自然也是其中的一种方式。
减小正则项系数……不,根本不加正则项。
高方差问题如何解决?
之前提到的统计学中的方差指的是数据集中某一列(即某一特征)数据的方差,显然,总数据集所有特征的方差就是这写特征方差的累加和。
那么要降低这个总方差,方法就显而易见了:
减少或削弱特征。这在比赛中被称为特征选择,将不需要的(或作用微乎其微的)特征扔掉,以降低方差,提高测试集准确率。
增加数据集的数量。因为原本的数据集中可能存在许多异常值,多加入一些良好的数据集,每个特征的方差都可能一定成都的减小。
增大正则项系数……但是说实话,这个方式在我使用过程中从没靠谱过。
上面可以明显的看出来,高偏差问题和高方差问题似乎……是相反的?这样的话,在偏差、方差之间取一个均衡也就十分重要,偏差大一点就是欠拟合、方差大一点就是过拟合。且调且小心。