Lasso(Least absolute shrinkage and selection operator)方法是以缩小变量集(降阶)为思想的压缩估计方法。它通过构造一个惩罚函数,可以将变量的系数进行压缩并使某些回归系数变为0,进而达到变量选择的目的。
正则化
正则化(Regularizaiton)是一种防止过拟合的方法。
图1 欠拟合与过拟合
图来自:百度百科(过拟合)
从图中可以看出,最右边的属于一种过拟合,过拟合的问题通常发生在变量(特征)过多的时候,这种情况下训练出的方程总是能很好的拟合训练数据,也就是损失函数可能非常接近于 0 或者就为 0。 但是,这样的曲线会导致它无法泛化到新的数据样本中。
如果解决过拟合问题?
(1)尽量减少选取变量的数量
可以人工检查每一项变量,并以此来确定哪些变量更为重要,保留那些更为重要的特征变量。这种做法非常有效,但是其缺点是当舍弃一部分特征变量时,也舍弃了问题中的一些信息。例如,所有的特征变量对于预测房价都是有用的,实际上并不想舍弃一些信息或者说舍弃这些特征变量。
(2)正则化
在正则化中将保留所有的特征变量,但是会减小特征变量的数量级。 当有很多特征变量时,其中每一个变量都能对预测产生一点影响。假设在房价预测的例子中,可以有很多特征变量,其中每一个变量都是有用的,因此不希望把任何一个变量删掉,这就导致了正则化概念的发生。
如果应用正则化去解决实际问题?
在图1中,可以看出最右边的是过拟合的,但是不想抛弃变量自带的信息,因此加上惩罚项,使得
足够小。
优化目标为:
在优化目标的基础上,添加一些项(惩罚项),如下:
1000 只是随便写的一个表示很大的数字。现在,如果想要最小化这个函数,那么为了最小化这个新的损失函数,就要让 和
尽可能小。因为,如果在原有代价函数的基础上加上
这一项 ,那么这个新的代价函数将变得很大,所以,当最小化这个新的代价函数时,
和
尽可能小或者接近于0,就像我们忽略了这两个值一样。如果做到这一点(
和
接近于0),那么我们将得到一个近似的二次函数,并且
中并没有丢失
和
的信息(虽然
和
接近于0,但是还是存在的)
但是在真实问题中,一个预测问题可能有上百种特征,并不知道哪一些是高阶多项式的项,就像不知道和
是高阶的项。所以,如果假设有一百个特征,并不知道如何选择关联度更好的参数,如何缩小参数的数目等等。 因此在正则化里,要做的事情,就是把减小损失函数中所有的参数值,(因为并不知道是哪一个或哪几个是要去缩小的)。
因此,我们需要修改代价函数,变成如下形式:
其中就是正则化项; λ称为正则化参数,作用是控平衡拟合训练的目标和保持参数值较小。
Lasso回归模型
Lasso回归是在损失函数后,加L1正则化,如下所示:
m为样本个数,k为参数个数,其中为L1正则化。
此外:还有L2正则化:,加了这种正则化的损失函数模型为:脊(岭)回归(Ridge Regression)。