金融商业算法建模:基于Python和SAS
上QQ阅读APP看书,第一时间看更新

2.1.10 正则化

正则化是降低模型过拟合的通用方法。这种方法通过对模型的参数施加一定的限制条件,从而控制模型的复杂程度。一般地,越简单的模型对样本拟合越差,但是模型表现越稳定;越复杂的模型越能对样本进行精确的拟合,但模型表现越不稳定。为此,人们通过正则化在模型的拟合程度与稳定性之间寻找平衡。

欠拟合与过拟合示例如图2-22所示。

图2-22 欠拟合与过拟合示意

图2-22a中,拟合线未能很好地与样本的趋势拟合,这种情况称为欠拟合。尽管其预测效果差,但表现稳定,即对新样本与老样本的预测结果是差不多的。图2-22b中样本分布与a图完全一样,但由于模型足够复杂,因此可以完美拟合所有样本点,但是对新样本的预测会很差,这种情况称为过度拟合。从图2-22中的公式我们可以发现,欠拟合对应的模型十分简单,而过拟合使用了自变量的6次方,十分复杂。欠拟合与过拟合都是需要避免的。如果选择复杂度适中的模型,则可以大大提升模型预测效果。如图2-23所示,我们对完全相同的样本使用自变量的二次项进行建模。

图2-23 复杂度适中的模型

可以看到,模型既能很好地拟合样本,又比较稳定。

那么,怎样控制模型的复杂度呢?筛选变量是一种方法,变量越少自然模型会越简单。另外就是通过正则化,在线性回归中使用的正则化方法主要包含岭回归、Lasso回归、弹性网络等。

1.岭回归

一般的建模过程中,自变量存在多重共线性是十分常见的。前文已经提到,多重共线性会造成模型不稳定,具体体现在参数估计方差较大。

具体来看,多元线性回归系数的最小二乘估计为,X的分量存在共线性意味着行列式为0,则不存在;即便不是完全的共线性,也会十分接近0,此时的方差很大(证明略),这也就意味着其估计值变得不可信。

为了解决这个问题,学者们提出了岭回归。其核心思想是以作为参数β的估计。比较一下就会发现,这相当于在普通最小二乘估计中,将加上一个kI(k为很小的正常数,I为单位矩阵),这样行列式就不为0。可以证明,此时的方差远小于最小二乘估计的方差。因此尽管岭回归的估计是有偏的,但其方差更小,模型更加稳定,对新样本的预测效果反而更好。

2.正则化的直观理解

我们可以从损失函数的角度来理解正则化原理。可以证明,岭回归等同于将经典线性回归的损失函数改为以下形式:

通过比较发现,岭回归相当于在经典线性回归的损失函数中增加了(该项称为正则化项,也称惩罚项),其中λ>0,称为正则化系数。与待估计参数不同,是通过优化损失函数得来的,λ是人为指定的,因此λ也称为超参数。

对于λ的意义,我们可以这样理解。

·如果将λ设得很大(比如1 000 000),为了使达到最小,只有一个办法,那就是每个都为0。这相当于模型退化到一个基线模型,即(模型曲线为一条平行于x的直线),这是最简单的模型。

·如果设定λ=0,那么与经典线性回归没有差别,这样每个变量都在模型中保留,这是模型最复杂的情况。

可以想见,如果将λ设置在一个合适的值,对应的模型应该会在上述两种情况之间,既不过于复杂也不过于简单。因此,代表对模型复杂程度的惩罚,λ越大,则对模型复杂度惩罚越大,反之惩罚越小。

3.正则化系数的选择

正则化系数λ需要在训练前手动选定。可供借鉴的方法包括岭迹图、交叉验证等。

(1)岭迹图

合理的λ需要使得各回归系数的岭估计基本稳定;用最小二乘法估计的正负号不合理的回归系数,在岭估计时变得合理。

这两个条件可以使用岭迹图进行分析。岭迹图的横轴是λ,纵轴为参数估计。一般情况下,随着λ的增大,的曲线会由震荡逐渐达到稳定。合理的λ需要尽量小,但又使得稳定如图2-24所示。

图2-24 岭迹图选择正则化系数

可见,当λ较小时,三个回归系数的估计会不稳定;当λ超过适当的取值后,回归系数会稳定,并逐渐收敛至0。

(2)交叉验证

确定正则化系数更流行的方法是使用验证集:通过抽样将样本划分为相互独立的训练集和验证集,训练集用于模型训练,验证集只用于对模型效果进行评估。尝试使用不同的λ值建立多个模型,哪个模型在验证集上的表现效果最好,对应的λ就是最合适的惩罚系数。

使用验证集能够简单、有效地确定超参数,不过会有抽样误差,因此人们常使用交叉验证,即使用数据集的各个部分轮流作为训练集和验证集,取多轮验证的平均结果来衡量模型或超参数的结果。示意如图2-25所示。

图2-25 交叉验证示意

假定我们选择了100个不同的λ值做3折交叉验证,则一共会建立300个模型,得到100个验证结果的均值,分别对应100个λ。

像岭回归这样,将参数的平方和作为正则化项的方法,统称为L2正则。L2正则被广泛应用在多种模型中。

4.岭回归的图形解释

已知岭回归的损失函数,求岭回归的解相当于求:

该问题等同于一个带约束条件的极值问题:

式中,subject to的含义是“约束条件”,通常简写为s.t.。该问题中求最小值的部分与经典线性回归完全一样,约束条件相当于将解限制在一个圆域内,假设是二维的,则可以用图2-26来表示岭回归的解。

图2-26 岭回归参数估计图解

等高线代表了经典线性回归的损失函数形态,其最小值取在处;阴影部分则是约束条件,即只能在阴影内取值,于是最优解在等高线与阴影的切点上。对岭回归来说,约束域是个圆域,其半径与正则化系数λ成反比,即正则化系数越小,约束域越大,岭回归的解也更接近于经典线性回归;反之,正则化系数越大,圆域越小。极端情况下每个参数都为零,模型退化为最简单的基线模型。

5.Lasso回归

Lasso(Least Absolute Shrinkage and Selection Operator,最小绝对值收缩和选择算子)回归与岭回归相似,都是在线性回归基础上增加了正则项。其损失函数如下:

比较可知,Lasso的正则项使用了参数的绝对值之和,岭回归的正则项使用了参数的平方和。

Lasso损失函数的最优化等同于一个带约束条件的极值问题:

比较一下就会发现,与岭回归相比,Lasso对参数取值的约束条件不一样,其约束域相当于图2-27的阴影部分。

图2-27 Lasso回归参数估计图解

类似地,Lasso回归的最优解在等高线与约束域的切点上。由于Lasso回归约束域是空间中的正方体,因此使得Lasso回归具有选择变量的功能:等高线与约束域的切点更可能出现在正方体的顶点上,这意味着某些回归系数的估计值为0,相当于对应的变量在回归方程中被去掉。例如图2-27中,损失函数与约束域的切点处,的取值为0,相当于对应的变量x1从回归方程中被剔除了。

像Lasso回归这样,将参数的绝对值之和作为正则化项的方法,统称为L1正则。L1正则主要应用于需要进行变量筛选的场景中。