![金融商业算法建模:基于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=1739300874-33Sndwktr1tnJ31ITSf2lsx5Ou6zg6UJ-0-6e7b1d3c5963202897601e10844d1311)
图2-22 欠拟合与过拟合示意
图2-22a中,拟合线未能很好地与样本的趋势拟合,这种情况称为欠拟合。尽管其预测效果差,但表现稳定,即对新样本与老样本的预测结果是差不多的。图2-22b中样本分布与a图完全一样,但由于模型足够复杂,因此可以完美拟合所有样本点,但是对新样本的预测会很差,这种情况称为过度拟合。从图2-22中的公式我们可以发现,欠拟合对应的模型十分简单,而过拟合使用了自变量的6次方,十分复杂。欠拟合与过拟合都是需要避免的。如果选择复杂度适中的模型,则可以大大提升模型预测效果。如图2-23所示,我们对完全相同的样本使用自变量的二次项进行建模。
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/2a23.jpg?sign=1739300874-fDIneVCxit2L7nJ8n7bV4NvScGdUS0ku-0-667ec4566ea8fd23639cbb48d245d15a)
图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=1739300874-SdevKndFC4ZZYoaAqBhnB2ASE5ABzIA9-0-15c47ae579d8cd99707060647b47f7d3)
通过比较发现,岭回归相当于在经典线性回归的损失函数中增加了(该项称为正则化项,也称惩罚项),其中λ>0,称为正则化系数。与待估计参数
不同,
是通过优化损失函数得来的,λ是人为指定的,因此λ也称为超参数。
对于λ的意义,我们可以这样理解。
·如果将λ设得很大(比如1 000 000),为了使达到最小,只有一个办法,那就是每个
都为0。这相当于模型退化到一个基线模型,即
(模型曲线为一条平行于x的直线),这是最简单的模型。
·如果设定λ=0,那么与经典线性回归没有差别,这样每个变量都在模型中保留,这是模型最复杂的情况。
可以想见,如果将λ设置在一个合适的值,对应的模型应该会在上述两种情况之间,既不过于复杂也不过于简单。因此,代表对模型复杂程度的惩罚,λ越大,则对模型复杂度惩罚越大,反之惩罚越小。
3.正则化系数的选择
正则化系数λ需要在训练前手动选定。可供借鉴的方法包括岭迹图、交叉验证等。
(1)岭迹图
合理的λ需要使得各回归系数的岭估计基本稳定;用最小二乘法估计的正负号不合理的回归系数,在岭估计时变得合理。
这两个条件可以使用岭迹图进行分析。岭迹图的横轴是λ,纵轴为参数估计。一般情况下,随着λ的增大,
的曲线会由震荡逐渐达到稳定。合理的λ需要尽量小,但又使得
稳定如图2-24所示。
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/2a24.jpg?sign=1739300874-1b4xt7Y1gjh3GRr5vz04CvUvlozdQCJ7-0-ca5558bd3fa021dc3baed46cccaea17d)
图2-24 岭迹图选择正则化系数
可见,当λ较小时,三个回归系数的估计会不稳定;当λ超过适当的取值后,回归系数会稳定,并逐渐收敛至0。
(2)交叉验证
确定正则化系数更流行的方法是使用验证集:通过抽样将样本划分为相互独立的训练集和验证集,训练集用于模型训练,验证集只用于对模型效果进行评估。尝试使用不同的λ值建立多个模型,哪个模型在验证集上的表现效果最好,对应的λ就是最合适的惩罚系数。
使用验证集能够简单、有效地确定超参数,不过会有抽样误差,因此人们常使用交叉验证,即使用数据集的各个部分轮流作为训练集和验证集,取多轮验证的平均结果来衡量模型或超参数的结果。示意如图2-25所示。
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/2a25.jpg?sign=1739300874-7SnjQ6JldCEwC3jxKxs79MsiSxJ0NmT1-0-32b1fe971bb70180590ef7158a648e50)
图2-25 交叉验证示意
假定我们选择了100个不同的λ值做3折交叉验证,则一共会建立300个模型,得到100个验证结果的均值,分别对应100个λ。
像岭回归这样,将参数的平方和作为正则化项的方法,统称为L2正则。L2正则被广泛应用在多种模型中。
4.岭回归的图形解释
已知岭回归的损失函数,求岭回归的解相当于求:
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/072-i.jpg?sign=1739300874-nf64cXxWQAOYYz9enR5LGXxEDjYUEWc3-0-9b602a2d38dbd53d71b214a9ba8060cb)
该问题等同于一个带约束条件的极值问题:
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/072-2-i.jpg?sign=1739300874-WRrJcUbG5MylrrFpvMYYj3lNDUYxnrqS-0-a9e529c389cc3eb4fc91918e27285b62)
式中,subject to的含义是“约束条件”,通常简写为s.t.。该问题中求最小值的部分与经典线性回归完全一样,约束条件相当于将解限制在一个圆域内,假设
是二维的,则可以用图2-26来表示岭回归的解。
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/2a26.jpg?sign=1739300874-vFxdhyo1Wto9tOdKLI39B3xCAuBZvMWD-0-101b3844a35506d70a8140a9754a861b)
图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=1739300874-vxWTBx3c0sPCaTaIILP5VuWn59zJiSpX-0-de22537a117eae16ceca071f2eb88c6e)
比较可知,Lasso的正则项使用了参数的绝对值之和,岭回归的正则项使用了参数
的平方和。
Lasso损失函数的最优化等同于一个带约束条件的极值问题:
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/072-10-i.jpg?sign=1739300874-CC9nIDblG8yzhBbgx1v7PEs2SWiiU8eu-0-004c8b6d4e7c392443fc23cc79442096)
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/073-i.jpg?sign=1739300874-doJf5DqVB56SP2t4bE41RdgDG5OyNhD6-0-f44ec936432a76db03d9fb8ae4f1a30f)
比较一下就会发现,与岭回归相比,Lasso对参数取值的约束条件不一样,其约束域相当于图2-27的阴影部分。
![](https://epubservercos.yuewen.com/E49416/21588937608904706/epubprivate/OEBPS/Images/2a27.jpg?sign=1739300874-0oBqo436f0LMMFb5zItoInMxhkNdXtpV-0-c55fed8c3490eb11d7fe33941d0fe362)
图2-27 Lasso回归参数估计图解
类似地,Lasso回归的最优解在等高线与约束域的切点上。由于Lasso回归约束域是空间中的正方体,因此使得Lasso回归具有选择变量的功能:等高线与约束域的切点更可能出现在正方体的顶点上,这意味着某些回归系数的估计值为0,相当于对应的变量在回归方程中被去掉。例如图2-27中,损失函数与约束域的切点处,的取值为0,相当于对应的变量x1从回归方程中被剔除了。
像Lasso回归这样,将参数的绝对值之和作为正则化项的方法,统称为L1正则。L1正则主要应用于需要进行变量筛选的场景中。