大话稀疏回归系列 目录
一.为什么要使回归系数稀疏
二.常用的稀疏回归方法
三.L0和L1、L2正则化
四.求解非凸优化问题——Lasso回归
1.坐标轴下降法
2.近端梯度下降法
五.前向逐步回归和最小角回归
1.Forward Stagewise Regression
2.Least Angle Regression
一.为什么要使回归系数稀疏
我们在求解多元线性回归问题的时候,常常因为特征数量太多,而最终得到不准确的结果。我们可以先从简单的线性代数的角度去看待一下这个问题。
假如X为m*n矩阵,为训练集,有m个样本,每个样本有n维特征。y是训练标签,为m列向量。那么我们对数据预处理之后,需要求解系数w,w为n为列向量,使X*w近似等于y。
大家熟悉的最小二乘法的解为w=(X'X)^(-1)*X'y,很容易求解。那么问题来了,如果X的秩<min{m,n},X'X成为奇异矩阵,我们这样便不能正常求解。就算使用伪逆,我们可能也发现事情不大对劲,因为这说明训练集某些特征是线性相关的,如果仅仅想线性表示y,那么很多特征列就不需要啊。
但是,我们是否可以直接去掉某些列,使训练集的秩和特征维度相等呢?事实上是不可以的,因为我们在小样本建模的时候,维度甚至比样本数还要多,即n>m,这样的长矩阵,我们难道直接将其变成方阵吗?显然不靠谱。
从本质来看,那些使X'X成为奇异矩阵的列,就是产生高误差有以及过拟合的始作俑者,因为,我们应该想一些办法去掉某些特征,但是,去掉哪些特征?以及去掉多少个特征?从实际工程看,当然是去掉使我们测试误差最小的特征。但是,仅仅是使那些没用的特征xj的系数wj变成0吗,其余w会受到什么影响呢?
这种种问题,产生了一个领域,称为特征选择。但是,特征选择的方法不止有稀疏回归,还有PCA、LDA等多种方法,稀疏回归也不止可以解决特征选择和降维的问题,它也是一种成熟的回归模型,可以直接用来训练数据,得到比最小二乘法更精确的结果。
常用的稀疏回归法有L0、L1正则化,最小角回归法,OMP等,而这些方法的内部也有着比较紧密的联系,而Lasso问题的求解也是我们在项目中遇到的常见算法,期间不仅要考虑准确性,还应考虑程序的性能,接下来的几期会详细介绍几种产生稀疏解的算法,并提供易于修改的源代码。