经常用spss、stata等软件分析数据,给出残差、偏差、方差等结果,几个差经常傻傻分不清楚,现在就这模拟拟合的学习,正好把这几个总结一遍吧。
方差:
针对某一模型多次输出结果或者多个模型不同输出结果进行对比,训练样本集数据不够(数据量、样本质量)导致,方差大一般是过拟合,需增加数据
反映的是模型每一次输出结果与模型输出期望(即均值) 之间的误差,即模型的稳定性。
模型方差不是针对某一个模型输出样本进行判定,而是指多个(次)模型输出的结果之间的离散差异,注意这里写的是多个模型或者多次模型,即不同模型或同一模型不同时间的输出结果方差较大,方差是由训练集的数据不够导致,一方面量 (数据量) 不够,有限的数据集过度训练导致模型复杂,另一方面质(样本质量)不行,测试集中的数据分布未在训练集中,导致每次抽样训练模型时,每次模型参数不同,输出的结果都无法准确的预测出正确结果;
偏差:
预测值与真实值的对比,模拟拟合度不够导致,可预测,偏差大一般是欠拟合,需增加模型复杂度,优化算法
指预测结果与真实值之间的差异,排除噪声的影响,偏差更多的是针对某个模型输出的样本误差,偏差是模型无法准确表达数据关系导致,比如模型过于简单,非线性的数据关系采用线性模型建模,偏差较大的模型是错的模型;
残差(噪声):
预测值与真实值的对比,是随机产生的,不可预测不可消除
指预测结果与真实值之间的差异,这么一看,和模型偏差的定义很接近,两者的区别是偏差模型拟合度不够导致,而残差是模型准确,但仍然与真实值有一定的差异,这里可以理解成噪声,噪声是随机的,意味着不可预测,而偏差不是随机产生的,可通过一定的特征工程进行预测;
总结:
简单模型:
偏差大,方差小(简单模型受样本值的影响较小,稳定性高),容易造成欠拟合
复杂模型:
偏差小,方差大,容易产生过拟合
判断偏差大还是方差大:
1)模型上的训练样本的真实值较少,则偏差大(欠拟合)
2)在训练样本上样本拟合的较好,但在测试集上拟合较差,则方差大(过拟合Overfiting)
3)当偏差较大时,表示目标可能未在模型上(即未瞄准靶心),需要重新训练model(有可能未考虑其他因素对样本的影响,或者应让模型更复杂考虑更高次幂的情况)。增加网络层数,增加隐藏层神经元数量,增加算法迭代次数,或者用更好的优化算法。
4)当方差较大时:增加更多的数据或正则化
参考资料:
1、残差、方差、偏差、MSE均方误差、Bagging、Boosting、过拟合欠拟合和交叉验证:https://blog.csdn.net/u010986753/article/details/102495494
2. 回归模型偏差&方差&残差https://zhuanlan.zhihu.com/p/50214504?utm_source=wechat_session
3.开源内容:https://github.com/datawhalechina/team-learning-data-mining/tree/master/IntegratedLearning
4.论坛地址:http://datawhale.club/t/topic/1574