避免过拟合:简单模型与正则化技术

在数据分析领域,经常需要对数据模式进行拟合,而“过拟合”是必须面对的一大挑战。尽管一般模型都有足够的能力来避免过拟合,但通常需要人为干预以确保模型不会使用过多的属性。

实际案例分析

假设有一个包含10名学生的班级,想要基于他们过去的分数来预测他们未来的分数。班级中有5名女生和5名男生,女生的平均分数是60分,男生的平均分数是80分,整个班级的平均分数是70分。

有几种方式来进行预测:

  1. 预测全班的分数都是70分。
  2. 预测男生的分数是80分,女生的分数是60分。这是一个简单的模型,可能比第一个模型给出更好的估计。
  3. 可以尝试过度复杂化问题,使用学生的学号来预测,并且说每个学生都会得到和上次相同的分数。这种方法不太可能正确,因为已经达到了如此细致的层次,可能会严重出错。

第一种情况被称为欠拟合,第二种是最优拟合,而最后一种是过拟合

图形分析

观察以下图表,趋势看起来像是独立变量X上的二次趋势。一个更高阶的多项式可能在训练集上具有非常高的准确性,但在测试数据集上预计会表现很差。将简要介绍用于避免过拟合的各种技术,然后重点讨论一种称为正则化的特定技术。

避免过拟合的方法

以下是常用的几种方法:

  • 交叉验证:最简单的形式是一轮验证,将一个样本作为内部验证,其余的用于训练模型。为了降低方差,更倾向于使用更高折数的交叉验证。
  • 早停法:早停规则提供了在模型开始过拟合之前可以运行多少次迭代的指导。
  • 剪枝:在构建CART模型时广泛使用剪枝。它简单地移除了对问题增加很少预测能力的节点。
  • 正则化:这是将详细讨论的技术。简而言之,它为引入更多特征的目标函数引入了成本项。因此,它试图将许多变量的系数推向零,从而降低成本项。

正则化基础

简单的线性回归是一个估计y的方程,给定一组x。方程看起来像这样: y = a1x1 + a2x2 + a3x3 + a4x4 ...... 在上述方程中,a1、a2、a3等是系数,x1、x2、x3等是自变量。给定包含x和y的数据,根据目标函数估计a1、a2、a3等。对于线性回归,目标函数如下:

如果x1、x2、x3(自变量)的数量过多,这种优化可能会使方程过拟合。因此,在目标函数中引入一个新的惩罚项来找到系数的估计。对方程进行如下修改: 新的目标函数 = 原始目标函数 + λ * (系数平方和) 其中λ是一个参数,λ=0是超级过拟合场景,λ=无穷大将问题简化为单一均值估计。优化λ是在训练样本的预测准确性和保留样本的预测准确性之间寻找平衡的任务。

有多种方法可以找到线性回归模型的系数。一种广泛使用的方法就是梯度下降。梯度下降是一种迭代方法,它对系数进行一些初始猜测,然后尝试收敛,使得目标函数最小化。因此,使用系数的偏导数。不涉及太多推导细节,将给出最终的迭代方程: theta = theta - alpha * (偏导数) 其中theta是系数的估计值,alpha是学习参数,它将指导估计值收敛。现在让引入成本项。在取系数平方的导数后,它简化为线性项。以下是在嵌入惩罚/成本项后得到的最终迭代方程。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485