error=bias+variance
类比射击靶子
bias是一开始就瞄准错了
variance是手抖导致的与瞄准点之间的差距
模型复杂往往会导致,数据多散布开。
bias大是指大家都偏离靶心很大;小bias是指数据的均值距离靶心很近,但这并不代表数据都距离靶心近,很可能是比较分散的。
蓝色线条为平均,黑色为靶心。
模型简单,比较集中但是平均起来并不怎么贴合靶心;模型复杂,比较分散但平均起来比较贴合靶心。
model越复杂,space越大。target在其中的可能性就越大。
bias VS variance
瞄的越来越准(红色),越来越贴近靶心;散布的越来越大(绿色);综合考虑两方面因素(蓝色),3附近较好。最右边,overfitting,最左边underfitting;即error来自variance较多则过拟合,来自bias较多,则欠拟合。
overfitting VS underfitting
- 模型不适合训练集,bias大,欠拟合
- 训练集效果好,测试集有很大误差,variance大,过拟合
对策:bias造成的误差,重新设计更复杂的模型,考虑更多的特征进来。
对策:variance造成的误差
- 更多的数据。
- 正则化,更平滑的函数。正则化简单理解为增加条件限定缩小范围,让样本更加集中来减少variance。缺点是该条件原本是不存在的,很可能与目标偏差更远。
model selection
真正的测试集(橙色)和验证集(绿色)是有区别的。
解决方法
- 交叉检验
- N叠交叉检验
这时候public上的才能够真正反映private上的err