tips.正规方程法的局限或者叫最小二乘法的局限(在ESL中)希望小伙伴们不要对这两个词有什么误解,正规方程就是将最小二乘的线性方程组拓展到矩阵的一种解法。
最小二乘法可以将误差方程转化为有确定解的代数方程组(其方程式数目正好等于未知数的个数),从而可求解出这些未知参数。这个有确定解的代数方程组称为最小二乘法估计的正规方程(或称为法方程)。
——百度百科
上篇博文的最后介绍了求解线性回归的正规方程法(☞详情请戳☜)。通过矩阵运算,求解得到系数的估计: θ ^ = ( X T X ) − 1 X T Y \hat\theta=(X^TX)^{-1}X^TY θ^=(XTX)−1XTY其中, ( X T X ) − 1 (X^TX)^{-1} (XTX)−1是 X T X X^TX XTX的逆矩阵。
由此,我们可以得到一个限制条件: X T X X^TX XTX必须可逆。但是在如下情况时矩阵 X T X X^TX XTX不可逆:
1.存在线性相关的特征—多重共线性 。
例如:一个电信数据集中,存在变量:白天通话时长(Day_Mins)、白天通话话费(Day_Charge),显而易见,通话时长越久,话费自然越高。通过做相关图,两个变量存在严重的正相关。
2.特征数据太多(样本数m < 特征数n)
PS.ESL中通过解释力Interpretation 和预测精度Prediction accuracy两个角度解释最小二乘法的局限:
There are two reasons why we are often not satisfied with the least squares estimates (3.6).
• The first is prediction accuracy: the least squares estimates often have low bias but large variance.Prediction accuracy can sometimes be improved by shrinking or setting some coefficients to zero. By doing so we sacrifice a little bit of bias to reducethe variance of the predicted values, and hence may improve the overall prediction accuracy.
• The second reason is interpretation. With a large number of predictors, we often would like to determine a smaller subset that exhibit the strongest effects. Inorder to get the “big picture” ,we are willing to sacrifice some of the small details.
简译过来为:
Prediction accuracy(预测精度) | Interpretation(解释力) |
---|---|
当n(观测数量)、p(特征数)很接近时,模型拟合效果差。为了提高泛化能力,常常表现出低偏倚,高方差的特点。 | 预测变量较多时,造成:①模型复杂度增加②多重共线性。 |
上述两种情况都是因为特征问题而导致最小二乘无法求解线性回归,这时针对特征的处理办法有:
子集选择和降维比较容易理解,在这里,我们主要梳理正则化的概念。
那正则化是做什么呢?首先我们要说一说过拟合的概念。
在上述特征数较多的场景,不可避免的会带来模型复杂度增大的情形,我们针对特征的处理方法也是在降低模型复杂度。模型复杂度体现在哪些方面呢?比如说:
在我们拟合模型时,由于我们希望得到更好的泛化误差,容易对训练集拟合过于彻底,这时系数较多,可能有很多系数很大,模型较复杂。这时,训练数据一点儿变动会导致预测结果产生很大变动,模型泛化能力会很弱。
奥卡姆剃刀原理:在所有可能的模型中,我们应该选择能够
很好地解释
已知数据,并且十分简单
的模型。
综上,模型复杂度越高就会导致模型泛化能力越弱。
通过R做图如下:(其中红色曲线是测试误差;蓝色曲线是训练误差。)
若有需要代码的小伙伴,请戳☞传送门☜
说了这么多,其实过拟合就是模型在训练数据上拟合的过于彻底,从而导致学习了较多训练数据独有的特征,使得模型在新的测试数据上表现较差。
我们举一个不太恰当的例子:我们想要根据一些特征来判断一个人是男是女,由于我们训练数据中的“发长”这个特征男生都是短发、女生大多是长发,这时我们的测试集中存在的长发男生就可能被错判成女生。
正则化就是通过增加一些限制项来缩减系数,达到降低模型复杂度的目的。
上篇博客,我们引入损失函数求解回归系数,使损失函数最小化,现在,要选取使损失函数最小化的最小的模型复杂度。而此时需要正则化项来达到控制模型复杂度的目的: J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∗ L ( θ j ) J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2+\lambda*L(\theta_j) J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2+λ∗L(θj)其中, λ \lambda λ是正则化参数, L ( θ j ) L(\theta_j) L(θj)为正则化项。我们最终的目的是使带罚项的损失函数达到最小,用一个例子来看——
通过 m i n J ( θ ) minJ(\theta) minJ(θ)来简化函数为了使上式尽可能的小,可以想象,若我们加了一个较大的?,这时要使 J ( θ ) J(\theta) J(θ)最小化,最好的办法就是使 β 3 \beta_3 β3 、 β 4 \beta_4 β4趋向于0,得到右图简单模型。
λ的目标就是在损失函数最小化
和参数最小化
之间权衡。
接下来要介绍的岭回归和LASSO回归就是针对正则化项的不同表现形式。
在回归系数平方和小于一个常数的约束下,使残差平方和最小化,从而限制回归系数的大小。 J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n θ j 2 J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^{n}\theta_j^2 J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2+λj=1∑nθj2 θ ^ R i d g e = a r g m i n { ∑ i = 1 m ( θ 0 + θ 1 x ( 1 ) + θ 2 x ( 2 ) + . . . θ m x ( m ) − y ( i ) ) 2 , s . t . ∑ j = 1 n θ j 2 ≤ t \hat\theta^{Ridge}=argmin\lbrace {}\sum_{i=1}^{m}(\theta_0+\theta_1x^{(1)}+\theta_2x^{(2)}+...\theta_mx^{(m)}-y^{(i)})^2,s.t.\sum_{j=1}^{n}\theta_j^2\leq t θ^Ridge=argmin{i=1∑m(θ0+θ1x(1)+θ2x(2)+...θmx(m)−y(i))2,s.t.j=1∑nθj2≤t
由上推导可得,
由于 X T X X^TX XTX对角线增加了 λ \lambda λ看起来像一条山岭,正是其岭回归的由来。
λ \lambda λ为岭系数, λ \lambda λ越小,参数数变化幅度越大。因为我们刚才说过 λ \lambda λ代表对参数的惩罚(压缩)程度,较大的 λ \lambda λ会对系数惩罚越大。
参数逐步减小,但不会缩减到0
在回归系数绝对值之和小于一个常数的约束下,使残差平方和最小化。
通过构造一个一阶惩罚函数获得一个精炼的模型,最终确定一些指标(变量)的系数为零(岭回归估计系数等于 0 的机会微乎其微,造成筛选变量困难)
J ( θ ) = 1 2 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) 2 + λ ∑ j = 1 n ∣ θ j ∣ J(\theta)=\frac{1}{2m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})^2+\lambda\sum_{j=1}^{n}|\theta_j| J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2+λj=1∑n∣θj∣ θ ^ l a s s o = a r g m i n { ∑ i = 1 m ( θ 0 + θ 1 x ( 1 ) + θ 2 x ( 2 ) + . . . θ m x ( m ) − y ( i ) ) 2 , s . t . ∑ j = 1 n ∣ θ j ∣ ≤ t \hat\theta^{lasso}=argmin\lbrace {}\sum_{i=1}^{m}(\theta_0+\theta_1x^{(1)}+\theta_2x^{(2)}+...\theta_mx^{(m)}-y^{(i)})^2,s.t.\sum_{j=1}^{n}|\theta_j|\leq t θ^lasso=argmin{i=1∑m(θ0+θ1x(1)+θ2x(2)+...θmx(m)−y(i))2,s.t.j=1∑n∣θj∣≤t
在ESL中,上面的岭迹图和刚才Ridge岭回归的不同,我一开始也是很懵,后来明白ESL岭迹图中横坐标为t(有没有很熟悉,是岭回归和lasso回归的约束值~),t越小,说明 λ \lambda λ对系数的惩罚越大,系数越会缩减到0。(如果还没有清楚,请拿出笔画一画,t减小,上图○和◇向原点移动, β 1 2 + β 2 2 \beta_1^2+\beta_2^2 β12+β22取值范围越小)
本文主要介绍了一些线性回归的衍生方法,通过发现常规最小二乘解决不了的问题,找到其原因,对其进行优化,增加正则化项,使其变为线性回归可解决的问题。