在数据分析领域,经常需要对数据模式进行拟合,而“过拟合”是必须面对的一大挑战。尽管一般模型都有足够的能力来避免过拟合,但通常需要人为干预以确保模型不会使用过多的属性。
假设有一个包含10名学生的班级,想要基于他们过去的分数来预测他们未来的分数。班级中有5名女生和5名男生,女生的平均分数是60分,男生的平均分数是80分,整个班级的平均分数是70分。
有几种方式来进行预测:
第一种情况被称为欠拟合,第二种是最优拟合,而最后一种是过拟合。
观察以下图表,趋势看起来像是独立变量X上的二次趋势。一个更高阶的多项式可能在训练集上具有非常高的准确性,但在测试数据集上预计会表现很差。将简要介绍用于避免过拟合的各种技术,然后重点讨论一种称为正则化的特定技术。
以下是常用的几种方法:
简单的线性回归是一个估计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是学习参数,它将指导估计值收敛。现在让引入成本项。在取系数平方的导数后,它简化为线性项。以下是在嵌入惩罚/成本项后得到的最终迭代方程。