机器学习

理解高偏差和高方差

2018-11-17  本文已影响0人  仙人掌gg

2019-06-18 更新
博客已迁移到 https://www.zhihu.com/people/cactusgame/posts


最早接触高偏差(high bias)和高方差(high variance)的概念,是在学习machine learning的欠拟合(under fitting)和过拟合(over-fitting)时遇到的。Andrew的讲解很清晰,我也很容易记住了过拟合-高方差,欠拟合-高偏差的结论。但是有关这两个概念的具体细节,我还不是很理解,比如


前提

问题来了

既然我们永远无法训练出那个理想的模型,只能训练出训练模型,那么训练模型预测的结果和理论模型(即现实)的结果肯定就存在误差。我们肯定希望这个误差越小越好,并且将这个训练模型应用在其他数据集上的误差也是越小越好。那么问题来了,如果这个误差很大,我们该如何是好?

举个栗子

假设我们要训练一个股票市场的模型,模型的目标是预测某支股票第2天的收益率,如果收益为正则买入,反之则卖出。我们的模型天天都想发财,它希望能准确预测每一天的涨跌,所以它关注的是第二天的收益,什么一年翻一倍之类的中长线策略它根本不关心。

上面训练的2种模型,和我们期待的“神预测”模型有很大误差。我们要想减少预测误差,就要分析造成误差的原因。这里的误差包含:

引用一个列子,打靶图

打靶图

在很多文章里看到过这张图,其原始出处就在参考文献中。这个例子很清晰,但是我第一次看的时候,有个问题并没有理解:

概念

我第一次看到这张图时,把图上的蓝点理解成了每次射击时的结果,即一个训练模型对不同输入X作出的不同预测Y。如果是这么理解的话,就没法解释后面的高方差了。其实,每一个蓝点,都代表了一个训练模型的预测数据,即根据不同的训练集训练出一个训练模型,再用这个训练模型作出一次预测结果。如果将这个过程重复N次,相当于进行了N次射击。我们假设真实的函数关系是Y=f(x),而训练模型预测的结果是p(x),则

打靶图解释


参考文档:

上一篇下一篇

猜你喜欢

热点阅读