12 模型选择之过拟合与正则化

在上一篇中,我们探讨了贝叶斯因子模型比较,了解了如何在不同模型之间进行选择。接下来,我们将深入讨论与模型选择密切相关的两个概念:过拟合正则化。这两个概念对于确保我们的贝叶斯学习模型的泛化能力至关重要。

过拟合(Overfitting)

过拟合是指模型在训练数据上表现良好,但在新数据上的表现却急剧下降的现象。这通常发生在模型过于复杂时,即模型具有过多的参数,能够非常好地拟合训练数据中的噪声。

过拟合的案例

以线性回归为例,假设我们有一组数据点,我们使用一个高阶多项式来拟合这些数据。在训练集上,该高阶多项式可以很好地通过所有的数据点,但在验证集上,模型的预测能力却显著下降。这个现象就是过拟合的表现。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
from sklearn.pipeline import make_pipeline

# 生成数据
np.random.seed(0)
X = np.sort(5 * np.random.rand(80, 1), axis=0)
y = np.sin(X).ravel() + np.random.normal(0, 0.1, X.shape[0])

# 使用不同的多项式阶数
degrees = [1, 3, 5, 10]
plt.figure(figsize=(15, 10))

for i, degree in enumerate(degrees):
model = make_pipeline(PolynomialFeatures(degree), LinearRegression())
model.fit(X, y)
y_pred = model.predict(X)

plt.subplot(2, 2, i + 1)
plt.scatter(X, y, s=10, label='Data')
plt.plot(X, y_pred, label='Prediction (degree={})'.format(degree), color='red')
plt.title('Polynomial Degree: {}'.format(degree))
plt.legend()

plt.show()

在上面的图中,我们可以看到随着多项式阶数的增加,模型在训练数据上的表现越来越好,但在测试数据上的预测能力并没有显著提高,甚至开始下降,这就是过拟合的体现。

正则化(Regularization)

为了对付过拟合,我们可以采用正则化技术。正则化通过向损失函数中加入一个惩罚项来限制模型的复杂度,从而减少过拟合的风险。常见的正则化方法有L1正则化(Lasso)和L2正则化(Ridge)。

正则化的原理

在贝叶斯框架下,我们可以将正则化视为对参数施加先验分布。一种常见的选择是对参数引入一个Gaussian先验,这导致了L2正则化;而使用Laplace先验则导致L1正则化

正则化的案例

继续使用上面的例子,我们将引入Ridge回归(L2正则化)来对抗过拟合。

1
2
3
4
5
6
7
8
9
10
11
12
13
from sklearn.linear_model import Ridge

# 使用Ridge回归
plt.figure(figsize=(10, 5))
ridge_model = make_pipeline(PolynomialFeatures(10), Ridge(alpha=1.0))
ridge_model.fit(X, y)
y_ridge_pred = ridge_model.predict(X)

plt.scatter(X, y, s=10, label='Data')
plt.plot(X, y_ridge_pred, label='Ridge Prediction (degree=10)', color='green')
plt.title('Ridge Regression with Regularization')
plt.legend()
plt.show()

在上面的图中,我们引入了Ridge回归来平衡模型的复杂度与拟合性能。虽然模型未能完全通过每个数据点,但其在新数据上的泛化能力得到了改善。

小结

在贝叶斯学习过程中,过拟合正则化是两个非常重要的概念。了解如何识别过拟合以及通过正则化技术来改善模型的泛化能力,将帮助我们更好地进行模型选择。在下一篇中,我们将进一步探讨贝叶斯回归,特别是线性回归模型的具体应用和实现。

通过这篇教程,我们希望你能够将在选择中考虑到模型的复杂度,使用正则化技术来提高良好的拟合能力,同时避免过拟合现象的发生。

12 模型选择之过拟合与正则化

https://zglg.work/bayesian-learning-zero/12/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论