为什么说欠拟合和过拟合会导致模型不准确
学习机器学习理论的时候很多教材都会提到欠拟合和过拟合的问题。
上图分别代表欠拟合和过拟合
欠拟合是模型过于简单或者特征太少而导致模型不能很好描述数据和结论的关系;过拟合是模型过于复杂或者特征过多而到导致模型过度关心数据里的噪声。
感性上的认识是这样的,但是欠拟合和过拟合是如何影响模型预测效果的,如何定量的表示他们的影响,我们可以通过定量计算的方法看看:
- 用 y y y代表实际数据, y ^ \hat{y} y^代表模型预测数据
- 假设 y = f ( x ) + σ , σ y = f(x)+\sigma,\sigma y=f(x)+σ,σ是噪声
- 模型和实际的误差我们用 E [ ( y ^ − y ) ] 2 E[(\hat{y}-y)]^2 E[(y^−y)]2代表(为了计算方便去除了对数据数量的平均)
我们根据定义,可以得到:
b
i
a
s
=
E
(
y
^
−
y
)
bias = E(\hat{y} - y)
bias=E(y^−y)
D
(
y
^
)
=
E
(
y
^
2
)
−
E
2
(
y
^
)
D(\hat{y}) = E(\hat{y}^2) - E^2(\hat{y})
D(y^)=E(y^2)−E2(y^)
接下来计算模型和实际的误差
E
[
(
y
^
−
y
)
2
]
=
E
(
y
^
2
−
2
y
y
^
+
y
2
)
=
E
(
y
2
^
−
E
(
2
y
y
^
)
+
E
(
y
2
)
)
=
D
(
y
^
2
)
+
E
2
(
y
^
)
+
D
(
y
2
)
+
E
(
y
2
)
−
E
(
2
y
y
^
)
=
D
(
y
^
2
)
+
D
(
y
2
)
+
E
[
(
y
−
y
^
)
]
2
=
σ
2
+
D
(
y
^
2
)
+
b
i
a
s
2
E[(\hat{y}-y)^2] = E(\hat{y}^2-2y\hat{y}+y^2) = E(\hat{y^2}-E(2y\hat{y})+E(y^2) ) = D(\hat{y}^2)+E^2(\hat{y})+D(y^2)+E(y^2)-E(2y\hat{y})=D(\hat{y}^2)+D(y^2)+E[(y-\hat{y})]^2 = \sigma^2 + D(\hat{y}^2) + bias^2
E[(y^−y)2]=E(y^2−2yy^+y2)=E(y2^−E(2yy^)+E(y2))=D(y^2)+E2(y^)+D(y2)+E(y2)−E(2yy^)=D(y^2)+D(y2)+E[(y−y^)]2=σ2+D(y^2)+bias2
从而我们可以发现,误差相当于数据本身噪声的平方+模型方差(过拟合)+ 模型偏差的平方(欠拟合)