本文主要讨论回归算法。
假设给定一个数据集,其中特征个数p大于样本个数n。这种情形不满足经典回归方法所蕴含的假设条件,因此不可以利用一般的回归方法(ordinary least square,OLS)。如果特征个数p多于样本个数n,利用一般的最小二乘法(OLS)并不能计算唯一的最小二乘系数估计,方差会变得无限大,因此,一般的最小二乘方法不适用。
为了解决这类问题,可以利用正则化或者带有惩罚项的回归方法,比如lasso(L1正则化方法),LARS(Least Angle Regression),ridge(L2正则化方法)回归等等,这些方法可以缩减回归系数,使得方差减小或者降低。其中ridge回归方法比较适用于最小二乘估计具有高方差的情形。lasso约束即为在目标函数中加入对回归系数的一阶范数的约束,这种约束可以使得多数回归系数为0,只有少数回归系数非零。容易看出,lasso具有特征选择、稀疏化和降维的作用。
LARS是一种模型选择算法,这里的S表示Lasso和Stagewise。跟经典的前向选择算法类似,首先将所有系数置零,然后选择跟响应变量关联度最大的变量或特征。然后选择这个预测器方向上的最大步长,使其跟当前残差具有同样多的关联度。这儿LARS的做法跟前向选择方法不同。然后选择第三个变量,使得该变量跟前两个变量等角,并将其加入最相关的集合中。以此类推。
ridge回归方法,跟lasso不同,它在目标函数中对回归系数加入二阶约束,使得回归系数维持在相对稳定的范围内。lasso和ridge二者也可以结合,进而可以得到ElasticNet。
还有一些其他方法,比如子集回归法,前向阶梯回归法。子集回归法即为利用最佳特征子集得到回归系数。前向阶梯回归法即为,每次添加一个特征,然后进行回归。
参考资料
http://statweb.stanford.edu/~tibs/ftp/lars.pdf