本文作者:合肥工业大学 电商所 钱洋
内容可能有不到之处,欢迎交流
未经本人允许禁止转载。
简介
当在讨论预测模型时,预测的误差可以分解成两个子部分,即由偏差(Bias)引起的误差和由方差引起的误差。那么,模型相当于是在最小化偏差和方差之间权衡。理解Bias-Variance Tradeoff将有助于建模,进而避免过拟合和欠拟合。
偏差(Bias)与方差(Variance)的概念
偏差指的是模型预测值的期望与真实值之间的差距。偏差越大,预测的值越偏离真实值。
- 引起的原因:没有充分利用训练数据,模型过于简单(欠拟合)。
方差:给定数据点的情况下,模型预测的可变性,可以理解成模型预测的范围。
- 高方差模型对训练数据的重视程度过高,但对测试数据集表示很差。
通过,下图可以很容易理解偏差和方差。
过拟合和欠拟合
过拟合:即在训练集上表现良好,但在测试集上表现很差。
欠拟合:在训练集上和测试集上表现都很差。
- 原因:模型过于复杂容易引起过拟合(参数过多);模型过于简单容易引起欠拟合(模型参数过少)。
下面两个图很好的展示了过拟合和欠拟合:
例如,在于训练集,采用递归算法生成决策树时,直到不能向下计算为止。如果数据量过大或者决策条件过多,则生成的决策树就会过于复杂,并且容易产生过拟合。因此,需要对决策树进行剪枝(预剪枝或后剪枝)。
Bias-Variance Decomposition
假设需要预测的值
Y
Y
Y,可以表示为:
Y
=
f
(
x
)
+
e
Y=f(x) + e
Y=f(x)+e
其中,
f
(
x
)
f(x)
f(x)为true function。
我们假设
f
^
(
x
)
\hat{f}\left ( x \right )
f^(x)为通过训练集要训练的模型,则在数据点
x
x
x处的误差可以表示为:
将该误差可以进一步分解为:
其中,第一项为偏差的平方,第二项为方差,即有:
下面为完整的推导公式,来源于:https://www.cs.cmu.edu/~wcohen/10-601/bias-variance.pdf
进一步简化为:
接着,将真实的function,即
f
f
f进行拆开:
在化简的时候,最后一项中的第一个和第二个期望是相当的,第三个和第四个期望是相当的,所以结果为0。进而有:
GBDT 和 RF
GBDT,即Gradient Boosting Decision Tree,是Boosting(提升)的一种方法。 GBDT是将弱学习算法提升为强学习算法的一种统计方法,非常常用。其采用的是CART回归树作为其基本回归算法。其算法流程如下图所示:
RF,即Random Forest Algorithm,随机深林算法,其是bagging方法(并行)的一种,其不仅对数据进行Sampling,也对特征(或属性)进行Sampling。Sampling的方法为bootstrapping。如下为Bagging方法的示意图:
如下为RF的流程,即对特征和数据都进行采样:
差异:
- GBDT,采用弱分类器(高偏差,低方差)。GBDT综合了这些弱分类器,在迭代的过程中,降低了偏差,但保持低方差。
- 随机深林采用完全的子决策树(低偏差,高方差)。随机深林要求这些子树尽可能无关,从而综合之后能降低方差,同时保持低偏差。
参考
https://towardsdatascience.com/understanding-the-bias-variance-tradeoff-165e6942b229
http://scott.fortmann-roe.com/docs/BiasVariance.html
https://www.cs.cmu.edu/~wcohen/10-601/bias-variance.pdf