在机器学习中,过拟合是一个常见的问题,模型在训练数据上表现良好,但在未见过的数据上性能下降。这种情况通常是因为模型学习到了训练数据中的噪声。为了解决这个问题,可以使用正则化技术,它通过惩罚大的权重来减少模型对训练数据的依赖。
正则化通过在损失函数中添加一个惩罚项来实现,这个惩罚项随着系数的增大而增大。在岭回归中,使用L2正则化,其损失函数定义为:
L(X, y, β) = ||y - Xβ||^2_2 + α||β||^2_2
其中,X是输入数据,y是目标变量,β是特征对应的系数向量,α是正则化强度。这个正则化损失函数旨在平衡训练集的预测准确性和防止过拟合之间的关系。
在没有正则化的模型中,可能会得到一个过于复杂的模型,对训练数据中的噪声过于敏感。通过引入正则化,可以控制模型的复杂度,防止单个系数过大,从而鼓励系数更加均匀分布。α值越高,系数越趋向于零,但过高的α值可能导致模型欠拟合,无法捕捉数据中的重要模式。
为了展示岭回归正则化的效果,首先创建一个无噪声的数据集。这个数据集包含100个样本和10个特征,其中8个特征对回归有贡献,另外2个特征对目标变量没有影响。在这个例子中,由于数据无噪声,期望回归模型能够准确地恢复真实的系数。
使用岭回归模型,通过调整模型参数α的值来控制正则化强度。对于每个训练的模型,计算真实系数和模型找到的系数之间的误差,并将这些系数和误差存储在列表中,以便后续绘图。
接下来,绘制了10个不同的正则化系数作为正则化参数α的函数,每种颜色代表不同的系数。在右侧,绘制了估计器的系数误差如何随着正则化的变化。
左侧的图表显示了正则化强度α如何影响岭回归系数。α值较小时,系数接近真实系数。随着α的增加,系数逐渐向零缩小,减少了以前更重要的特征的影响。右侧的图表显示了模型找到的系数与真实系数之间的均方误差(MSE),它提供了一个与真实生成模型相比的精确度度量。在本例中,由于玩具数据集无噪声,可以看到最不正则化的模型检索的系数最接近真实系数。
在实际应用中,选择适当的α值对于在过拟合和欠拟合模型之间取得平衡至关重要。在本例中,看到了岭回归通过添加惩罚来对抗过拟合。另一个与训练数据集中的异常值相关的问题。异常值是一个与其他观测值显著不同的数据点,它们会影响之前展示的损失函数的左侧项。还有一些其他线性模型被设计为对异常值具有鲁棒性,例如HuberRegressor。可以在HuberRegressor与强异常值数据集上的岭回归对比示例中了解更多。