Lasso的历史

(1)相关研究人员及资料

研究Lasso的知名人员:yu bin, zhu ji, zhang tong, hui zou, yuan ming, Nicolai Meinshausen, Peter Bühlmann, Martin J. Wainwright, jianqing fan, Liza Levina, Peter Bickel,Tibshirani(Lasso的提出者)

几个跟Lassso相关的网站:

  1. The Lasso Page

(2)Lasso前世今生

Lasso(Least absolute shrinkage and selection operator, Tibshirani(1996)):最小绝对值收敛和选择算子;又因为“Lasso”这个词本身翻译为套索,所以又称为套索算法。

最初由斯坦福大学统计学教授Robert Tibshirani(见图)于1996年基于Leo Breiman的非负参数推断(Nonnegative Garrote, NNG)提出,发表于统计期刊Journal of the Royal Statistical Society (Series B)。期刊文章为《Regression Shrinkage and Selection via the Lasso》,其中并未对理论进行证明,后来《On Model Selection Consistency of Lasso》这篇文章给出了数学证明。

LASSO系数路径图Python lasso python_Lasso

LASSO系数路径图Python lasso python_Lasso_02

(3)Lasso提出前提:稀疏性假设

简单解释稀疏性假设:尽管世界如此复杂,但有用的信息却非常有限。

对于一个研究对象Y,其影响因子X数量种类成千上万,但其实只有为数不多的几个对结果Y起到了关键作用,大部分的影响作用是0。详细理解见文章:通俗理解稀疏性sparsity假设:历史、数学表示、物理意义

(4)Lasso作为一种回归模型的地位

线性回归和逻辑回归是人们学习预测模型的第一个算法,由于这二者的知名度很大,许多分析人员以为它们就是回归的唯一形式了。而了解更多的学者会知道它们是所有回归模型的主要两种形式。不同回归形式应对不同的适用场景。

常见的七种回归形式:

  • 线性回归(Linear Regression)
  • 逻辑回归(Logistic Regression)
  • 多项式回归(Polynomial Regression)
  • 逐步回归(Stepwise Regression)
  • 岭回归(Ridge Regression)
  • 套索回归(Lasso Regression)
  • 弹性回归(ElasticNet Regression)

Lasso物理意义

在高维变量和稀疏性假设的背景下,诞生出Lasso用以解决相关问题。

是一种同时进行特征选择和正则化(数学)的回归分析方法,旨在增强统计模型的预测准确性和可解释性。Lasso算法最初用于计算最小二乘法模型。

是一种压缩估计。它通过构造一个罚函数得到一个较为精炼的模型,使得它压缩一些系数,同时设定一些系数为零。因此保留了子集收缩的优点,是一种处理具有复共线性数据的有偏估计。 但是这份有偏估计带来两方面好处:

(1)特征选择

虽然最小二乘估计是无偏估计,但是在变量过多的情况下,往往带有较大的方差。我们再回味一下我们熟知的MSE(Mean Square Error)分解:LASSO系数路径图Python lasso python_Lasso_03 MSE由偏差和方差两部分组成;这两部分很难“鱼和熊掌兼得”。(参见文章:Bias-Variance Tradeoff(方差、偏差、误差)通俗理解)

Lasso虽然是有偏估计,但是在引入一定的偏差的同时,可能可以大量降低估计的方差,从而降低整体的MSE。

Lasso的优点不言而喻:如果我们拥有的样本信息是有限的,那么我们想要用有限的信息去估计过多的系数,此时信息很可能会出现不够用的情况,所以筛选变量提高估计效果十分必要。

(2)可解释性

对于最后得到的回归方程,我们需要在估计出每一个放入模型的自变量的系数后,能够更好地解释它。

对于一个具有大量自变量的问题,当得到稀疏估计之后,我们就能够明确得知到底哪几个变量是起作用的,哪些是作用不明显的。

Lasso数学实现

Lasso是一种采用了L1正则化(L1-regularization)的线性回归方法,采用了L1正则会使得部分学习到的特征权值为0,从而达到稀疏化和特征选择的目的。

Lasso回归损失函数表达式:LASSO系数路径图Python lasso python_LASSO系数路径图Python_04 其中LASSO系数路径图Python lasso python_Lasso_05为样本个数,LASSO系数路径图Python lasso python_套索回归_06为常数系数,需要进行调优。LASSO系数路径图Python lasso python_拟合_07为L1范数。

Lasso 的基本思想是在回归系数的绝对值之和小于一个常数的约束条件下,使残差平方和最小化,从而能够产生某些严格等于0 的回归系数,得到可以解释的模型。

LASSO 回归的特点是在拟合广义线性模型的同时进行变量筛选(variable selection)和复杂度调整(regularization)。 因此,不论目标因变量(dependent/response varaible)是连续的(continuous),还是二元或者多元离散的(discrete),都可以用 LASSO 回归建模然后预测。 这里的变量筛选是指不把所有的变量都放入模型中进行拟合,而是有选择的把变量放入模型从而得到更好的性能参数。 复杂度调整是指通过一系列参数控制模型的复杂度,从而避免过度拟合(overfitting)。 对于线性模型来说,复杂度与模型的变量数有直接关系,变量数越多,模型复杂度就越高。 更多的变量在拟合时往往可以给出一个看似更好的模型,但是同时也面临过度拟合的危险。此时如果用全新的数据去验证模型(validation),通常效果很差。 一般来说,变量数大于数据点数量很多,或者某一个离散变量有太多独特值时,都有可能过度拟合。

Python实现sklearn.linear_model.Lasso

详见文章:python机器学习库sklearn——Lasso回归(L1正则化)

Reference

  1. Lasso思想及算法
  2. 热门数据挖掘模型应用入门(一): LASSO 回归
  3. 维基百科 Lasso算法
  4. 你应该掌握的 7 种回归模型!
  5. 统计学习:变量选择之Lasso
  6. 从Lasso开始说起
  7. 1.1. 广义线性模型