一、误差来自于哪?
error一般有两种来源:bias(偏差) 和 variance(方差),如果可以诊断error的来源,就可以挑选适当的方法来改进我们的模型。
对于我们面对的问题,理论上有一个最佳的模型,这个理论上最佳的function一般写作
f
^
\hat{f}
f^ , 即
y
^
=
f
^
(
x
)
\hat{y}=\hat{f}(x)
y^=f^(x),而我们能做的是通过一些training data去找一个能力范围内最好的function,记作
f
∗
f^*
f∗,
f
∗
f^*
f∗ 不一定等于
f
^
\hat{f}
f^ ,它相当于是
f
^
\hat{f}
f^ 的估测值Estimator。
这就相当于打靶,靶心是 f ^ \hat{f} f^,但我们得到的 f ∗ f^* f∗ 到靶心是有一段距离的,这个误差就来自于 b i a s bias bias 和 v a r i a n c e variance variance
二、如何理解方差和偏差?
偏差度量了算法的期望预测与真实结果的偏离程度,即算法本身的拟合能力;
方差度量了同样大小的训练集的变动所导致学习性能的变化,即刻画了数据扰动所造成的影响。
进行若干次射击,这些射击点的平均值到靶心的距离就是偏差的大小。如果我们以靶心为目标进行射击,那么得到的点的应该分布于靶心的周围,其期望值应该为靶心,如果这些射击点的期望值不在靶心,说明目标偏了,并没有正对着靶心进行射击,这就产生了偏差。
而方差是 [每一个射击点] 到 [所有射击点的中心点] 的距离。不难理解,当我们对着靶心射击时,由于风力、光照等因素的影响我们也并不一定能正中靶心,但此时所有射击点的中心应当是靶心,此时的误差就来自于方差。
比较简单的模型,方差小,但偏差大。 相当于每次射击的位置都是差不多,但可能整体偏离目标。这是因为简单的模型受数据的影响较小,数据的不同使模型发生改变的幅度较小。
比较复杂的模型,方差大,但偏差小。 相当于每次射击点都很分散,并不是聚在一起的,但是其中心点和靶心相差较小。也说明比较复杂的模型对数据很敏感。
三、判断误差来源于方差还是偏差
误差主要来自方差的情况
- 过拟合
- 训练集上误差小,测试集上大
- 如何改进:重新设计模型(考虑更多因素)
误差主要来自偏差的情况
- 欠拟合
- 模型不能很好地 fit 训练数据
- 如何改进:增加数据;正则化。
四、模型选择
我们当然希望得到一个模型同时有很小的偏差和方差,而在实际中往往需要在方差和偏差之间做一些平衡,从而进行模型的选择。
1.训练集、测试集、验证集
通常我们将数据划分成训练集和测试集,在训练集中训练出模型,选择在测试集中表现最好的那个。但是这种做法是有误差的,因为我们的测试集用来衡量模型的好坏,并不是真正的“测试集”,真正的测试集是没有见过的新数据,是无法获得的,我们的测试集的期望值和所谓真正的测试集是不同的,存在bias。
2.k折交叉验证
我在学习过程中,常常混淆验证集和测试集,平时经常会说将数据划分训练集和测试集。看到西瓜书上说:
但是学得模型在实际使用中遇到的数据称为“测试数据”,为了加以区分,模型评估与选择中用于评估测试的数据集常称为“验证集”。
我们用测试集上的判断效果来估计模型实际使用时的泛化能力,而把训练数据另外划分为训练集和验证集,基于验证集上的性能来进行模型选择和调参。
CSDN站内一些相关的文章:
训练集、测试集、验证集
交叉验证
五、偏差与方差的数学理解
我们所得到的模型都相当于是估计量,而在数理统计中估计量优良性的评判一般有三个标准:无偏性、有效性、一致性。
无偏性 若参数 θ \theta θ 的估计量 θ ^ = θ ^ ( X 1 , X 2 , . . . , X n ) \hat{\theta}=\hat{\theta}(X_1,X_2,...,X_n) θ^=θ^(X1,X2,...,Xn) 满足 E ( θ ^ ) = θ E(\hat{\theta})=\theta E(θ^)=θ , 则称 θ ^ \hat{\theta} θ^ 是 θ \theta θ的一个无偏估计量。
无偏性是对估计量的基本要求,具有系统误差为0的特点。也就是说,这个估计量在多次试验的结果中,在待估参数附近随机摆动,并使这个估计量的平均值恰好就是待估参数。
如果两个估计量 θ 1 ^ \hat{\theta_1} θ1^ 和 θ 2 ^ \hat{\theta_2} θ2^ 都是无偏估计量,其取值都在 θ \theta θ周围波动,我们就会想要取值更集中地聚集在 θ \theta θ 周围的估计量。由此引入有效性。
有效性 θ 1 ^ \hat{\theta_1} θ1^ 和 θ 2 ^ \hat{\theta_2} θ2^ 都是无偏估计量,如果 D ( θ 1 ^ ) < D ( θ 2 ^ ) D(\hat{\theta_1})<D(\hat{\theta_2}) D(θ1^)<D(θ2^),则 θ 1 ^ \hat{\theta_1} θ1^ 比 θ 2 ^ \hat{\theta_2} θ2^ 有效。也就是说,在期望相等的条件下,方差小的估计的效果更好。
综上,偏差小对应于无偏性,方差小对应于有效性,它们表现了一个估计量的优良性,在机器学习中就是表示了一个估计器Estimator的性能优劣。