![金融商业算法建模:基于Python和SAS](https://wfqqreader-1252317822.image.myqcloud.com/cover/743/41426743/b_41426743.jpg)
2.1.10 正则化
正则化是降低模型过拟合的通用方法。这种方法通过对模型的参数施加一定的限制条件,从而控制模型的复杂程度。一般地,越简单的模型对样本拟合越差,但是模型表现越稳定;越复杂的模型越能对样本进行精确的拟合,但模型表现越不稳定。为此,人们通过正则化在模型的拟合程度与稳定性之间寻找平衡。
欠拟合与过拟合示例如图2-22所示。
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/2a22.jpg?sign=1739498695-7XKhsu9OCHkrusd1bhIW3QPJJDjviqND-0-d93efb36b8bee4fc6df8a4d338a7eb63)
图2-22 欠拟合与过拟合示意
图2-22a中,拟合线未能很好地与样本的趋势拟合,这种情况称为欠拟合。尽管其预测效果差,但表现稳定,即对新样本与老样本的预测结果是差不多的。图2-22b中样本分布与a图完全一样,但由于模型足够复杂,因此可以完美拟合所有样本点,但是对新样本的预测会很差,这种情况称为过度拟合。从图2-22中的公式我们可以发现,欠拟合对应的模型十分简单,而过拟合使用了自变量的6次方,十分复杂。欠拟合与过拟合都是需要避免的。如果选择复杂度适中的模型,则可以大大提升模型预测效果。如图2-23所示,我们对完全相同的样本使用自变量的二次项进行建模。
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/2a23.jpg?sign=1739498695-rfQliYi68rqoC1363PP2MDSJ7I5hiTR1-0-616bdeb00372acfd648aec35ac59928b)
图2-23 复杂度适中的模型
可以看到,模型既能很好地拟合样本,又比较稳定。
那么,怎样控制模型的复杂度呢?筛选变量是一种方法,变量越少自然模型会越简单。另外就是通过正则化,在线性回归中使用的正则化方法主要包含岭回归、Lasso回归、弹性网络等。
1.岭回归
一般的建模过程中,自变量存在多重共线性是十分常见的。前文已经提到,多重共线性会造成模型不稳定,具体体现在参数估计方差较大。
具体来看,多元线性回归系数的最小二乘估计为,X的分量存在共线性意味着行列式
为0,则
不存在;即便不是完全的共线性,
也会十分接近0,此时
的方差很大(证明略),这也就意味着其估计值变得不可信。
为了解决这个问题,学者们提出了岭回归。其核心思想是以作为参数β的估计。比较一下就会发现,这相当于在普通最小二乘估计中,将
加上一个kI(k为很小的正常数,I为单位矩阵),这样行列式
就不为0。可以证明,此时
的方差远小于最小二乘估计的方差。因此尽管岭回归的估计是有偏的,但其方差更小,模型更加稳定,对新样本的预测效果反而更好。
2.正则化的直观理解
我们可以从损失函数的角度来理解正则化原理。可以证明,岭回归等同于将经典线性回归的损失函数改为以下形式:
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/070-10-i.jpg?sign=1739498695-GlAOf35qKNGnl6z2K38CyVi7CuHMGxtU-0-d83a0ed9fd81cde68bf4a67ed34c7a57)
通过比较发现,岭回归相当于在经典线性回归的损失函数中增加了(该项称为正则化项,也称惩罚项),其中λ>0,称为正则化系数。与待估计参数
不同,
是通过优化损失函数得来的,λ是人为指定的,因此λ也称为超参数。
对于λ的意义,我们可以这样理解。
·如果将λ设得很大(比如1 000 000),为了使达到最小,只有一个办法,那就是每个
都为0。这相当于模型退化到一个基线模型,即
(模型曲线为一条平行于x的直线),这是最简单的模型。
·如果设定λ=0,那么与经典线性回归没有差别,这样每个变量都在模型中保留,这是模型最复杂的情况。
可以想见,如果将λ设置在一个合适的值,对应的模型应该会在上述两种情况之间,既不过于复杂也不过于简单。因此,代表对模型复杂程度的惩罚,λ越大,则对模型复杂度惩罚越大,反之惩罚越小。
3.正则化系数的选择
正则化系数λ需要在训练前手动选定。可供借鉴的方法包括岭迹图、交叉验证等。
(1)岭迹图
合理的λ需要使得各回归系数的岭估计基本稳定;用最小二乘法估计的正负号不合理的回归系数,在岭估计时变得合理。
这两个条件可以使用岭迹图进行分析。岭迹图的横轴是λ,纵轴为参数估计。一般情况下,随着λ的增大,
的曲线会由震荡逐渐达到稳定。合理的λ需要尽量小,但又使得
稳定如图2-24所示。
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/2a24.jpg?sign=1739498695-VH5hp5wAy2EQfHXD5HH0CGo8kAfEdeLf-0-0a1a7fe8ee8982e18b86430133de8827)
图2-24 岭迹图选择正则化系数
可见,当λ较小时,三个回归系数的估计会不稳定;当λ超过适当的取值后,回归系数会稳定,并逐渐收敛至0。
(2)交叉验证
确定正则化系数更流行的方法是使用验证集:通过抽样将样本划分为相互独立的训练集和验证集,训练集用于模型训练,验证集只用于对模型效果进行评估。尝试使用不同的λ值建立多个模型,哪个模型在验证集上的表现效果最好,对应的λ就是最合适的惩罚系数。
使用验证集能够简单、有效地确定超参数,不过会有抽样误差,因此人们常使用交叉验证,即使用数据集的各个部分轮流作为训练集和验证集,取多轮验证的平均结果来衡量模型或超参数的结果。示意如图2-25所示。
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/2a25.jpg?sign=1739498695-zUnbwgjESMU4dchSSZlhqye1CPJvQkPP-0-97f7e1c450908a063a5c8dd99bc7dad3)
图2-25 交叉验证示意
假定我们选择了100个不同的λ值做3折交叉验证,则一共会建立300个模型,得到100个验证结果的均值,分别对应100个λ。
像岭回归这样,将参数的平方和作为正则化项的方法,统称为L2正则。L2正则被广泛应用在多种模型中。
4.岭回归的图形解释
已知岭回归的损失函数,求岭回归的解相当于求:
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/072-i.jpg?sign=1739498695-K8Mlb5ySBY0quevOMkvYYfNBAVebFNmc-0-e845d4598d8221ffbce6caa7b7624154)
该问题等同于一个带约束条件的极值问题:
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/072-2-i.jpg?sign=1739498695-TLzSD4ydVXATLbp8oKUqarlXFTsIMNmA-0-ddecbaf92af1217b6d9fd8e418da3cee)
式中,subject to的含义是“约束条件”,通常简写为s.t.。该问题中求最小值的部分与经典线性回归完全一样,约束条件相当于将解限制在一个圆域内,假设
是二维的,则可以用图2-26来表示岭回归的解。
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/2a26.jpg?sign=1739498695-31F1f78DkdwmdJkFdfMXqvYCXvlx8XqB-0-ec70372270c9e4df9bf7016dc9faf7d8)
图2-26 岭回归参数估计图解
等高线代表了经典线性回归的损失函数形态,其最小值取在处;阴影部分则是约束条件,即
只能在阴影内取值,于是最优解在等高线与阴影的切点上。对岭回归来说,约束域是个圆域,其半径与正则化系数λ成反比,即正则化系数越小,约束域越大,岭回归的解也更接近于经典线性回归;反之,正则化系数越大,圆域越小。极端情况下每个参数
都为零,模型退化为最简单的基线模型。
5.Lasso回归
Lasso(Least Absolute Shrinkage and Selection Operator,最小绝对值收缩和选择算子)回归与岭回归相似,都是在线性回归基础上增加了正则项。其损失函数如下:
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/072-7-i.jpg?sign=1739498695-aDXdiit8wun83s4fwnc9cFZuENUSu3di-0-bc9cfbd0e431f40db78d6cd617c17192)
比较可知,Lasso的正则项使用了参数的绝对值之和,岭回归的正则项使用了参数
的平方和。
Lasso损失函数的最优化等同于一个带约束条件的极值问题:
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/072-10-i.jpg?sign=1739498695-CMXVMqyi7T7ktF7xf1Kp2MuZfhYBb2l4-0-65b63278592019a91c58a9d5486fd2df)
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/073-i.jpg?sign=1739498695-arh7TSh0aVucDSzn9qUag9gJ8pH9OX6w-0-0229992a66e85a8bc5a7a37f3b0354a4)
比较一下就会发现,与岭回归相比,Lasso对参数取值的约束条件不一样,其约束域相当于图2-27的阴影部分。
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/2a27.jpg?sign=1739498695-VbZgbAfgStUTQjrvO48ZehSPTx2Hsc1l-0-2bf3c93f92e685c0b72ac43edce392ca)
图2-27 Lasso回归参数估计图解
类似地,Lasso回归的最优解在等高线与约束域的切点上。由于Lasso回归约束域是空间中的正方体,因此使得Lasso回归具有选择变量的功能:等高线与约束域的切点更可能出现在正方体的顶点上,这意味着某些回归系数的估计值为0,相当于对应的变量在回归方程中被去掉。例如图2-27中,损失函数与约束域的切点处,的取值为0,相当于对应的变量x1从回归方程中被剔除了。
像Lasso回归这样,将参数的绝对值之和作为正则化项的方法,统称为L1正则。L1正则主要应用于需要进行变量筛选的场景中。