本文共 1293 字,大约阅读时间需要 4 分钟。
这节课主要讲解了训练模型的误差来源及相应的解决方案。
模型的误差主要来源于数据的Bias和Variance
Bias(偏差):描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据。
Variance(方差):描述的是预测值的变化范围,离散程度,也就是离其期望值的距离。方差越大,数据的分布越分散。
对于均值和方差的无偏估计的表达式如下面2张图中所示。具体推导此处不再赘述。
Bias和Variance反映到数据集上如下图所示,根据定义不难理解。
相对简单的模型受数据的影响更小。
相对简单的model预测的结果:large bias和small variance;
相对复杂的model预测的结果:small bias和large variance。
在model从简单到复杂的过程中,由bias导致的error会不断减小;由variance导致的error会不断增大。
当error主要源自large variance时,称为overfitting;当error主要源自large bias时,称为underfitting。
一图胜千言:
判断underfitting和overfitting。
1)如果model无法很好的拟合训练集中的数据,model的预测值有large bias。这是underfitting。
2)如果model可以很好的拟合训练集中的数据,但model在测试集中会产生很大的error,model的预测值有large variance。这是overfitting。
Large bias时怎么办?
1)重新设计model,在输入中加入更多的特征;2)设计一个更复杂的model。
Large variance时怎么办?
1)收集更多的数据,非常有效的手段,但在实际执行过程中并不总是可行。
2)Regularization(正则化)
如何选择模型?
如下图中所讲。
依据上图,我们不应该根据用Training Set训练出来的model在Testing Set上的准确率来选择model。因为用自己的Testing Data选择的model不一定在真实的Testing Data上效果也很好,通常而言效果是比较差的。
那应该怎么办呢?见下图。
方法就是把原先的Training Set分为Training Set和Validation Set两部分,根据model在validation上的误差来选择最优model。注意:不建议在得出Testing Set的误差后,再回去调整model(这样做相当于把Testing Set也当作Training Set的一部分了)。
也可以用N折交叉验证的方式选择模型,如下图所示。
原则上,少用public Testing Set来调整model,这样往往在private Testing Set上得到的结果与在public Testing Set上得到的结果差距是比较小的。