Lasso思想及算法

from:
http://www.360doc.com/content/13/0325/15/11824314_273815684.shtml

1、只有这么几个人在做LASSO,他们都是大牛,你可以直接GOOGLE他们的主页,看他们在这块发了什么文章。

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的提出者)

2、统计和算法不是一回事的。举个例子吧,下面这篇文章就是统计的人发的,其中讨论到如何在GLM上运用SCAD -- LASSO衍生出来的一种惩罚函数项 -- 他们就做的很理论,他们很关心这个“算法”的理论性质,比如估计量是否趋近正太,如果是,lambda该以何种rate收敛。他们也讨论算法,但是他们对算法的要求很简单,能算出来就行。http://www.stat.umn.edu/~hzou/Papers/onestep.pdf

3、而如下这篇,讨论的基本属于同一个问题,如果将LASSO运用在GLM中的logistic回归上。但是,他们关心的是,如何算得又快又好。你看,这个时候,统计学界所陌生的nestiov都出来了。这个算法非常快,1000多个变量,也就几十秒的事情。
http://www.public.asu.edu/~jye02/Publications/Papers/fp817-Liu-KDD09.pdf

4、variable selection 是一个热点专题啊,特别是在high dimensional data analysis,
有很多新的方法( lasso, group lasso, elastic net, SCAD...)

5、R的包lars 提供了LASSO

6、请教 lasso regression 和bridge logistic regression
你可以去看一下网址“http://www-stat.stanford.edu/~tibs/lasso.html”上下载文章“Penalized regressions: the bridge vs the lasso”看一下就知道了,如果想了了解这方面更详细的信息,可加qq:381823441,他的硕士论文做的就是这方面的内容。

7、LASSO有很多令人期待的问题没有解决,所以还是有很多坑可以去填的。要想好好学习这块的话,先读那几篇state-of-the-art的文章,如下:

最基本那篇
http://www-stat.stanford.edu/~tibs/lasso.html

yuan ming 然后提出的 group lasso
http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.79.2062

zou hui的elastic net,可以同时自动选取相关程度比较大的变量(LASSO不能)
http://www-stat.stanford.edu/~hastie/TALKS/enet_talk.pdf

zou hui 提出的adative lasso,试图避免lasso对参数的shrunkage
http://www.stat.umn.edu/~hzou/Papers/adaLasso.pdf

jianqing fan 2001 年提出的另外一种 nonconvex的惩罚项 -- SCAD
http://www.orfe.princeton.edu/~jqfan/papers/01/penlike.pdf

其学生08年时接着解决了SCAD的算法问题 -- 实际上就是一种adaptive lasso
http://www.stat.umn.edu/~hzou/Papers/onestep.pdf

这方面文献太多了,我给的这几篇是影响比较大的,你可以看看08年这篇的reference,在里面可以找到一些有意思的线索。另外,LASSO还被广泛应用在graphical model上,有兴趣可以看看这篇

http://www.stats.ox.ac.uk/~meinshau/consistent.pdf
http://arxiv.org/abs/0811.4463
http://www-stat.stanford.edu/~tibs/ftp/graph.pdf

这三篇是目前文献里公认的里程碑式的文章--关于gaussian graphical model的。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
LASSO(Least Absolute Shrinkage and Selection Operator)是一种广泛使用的线性回归模型正则化方法,可用于特征选择和模型简化。LASSO正则化通过惩罚大的权重,可以使得一些特征的权重为0,达到特征选择的效果。坐标下降算法是一种用于求解LASSO模型的优化算法,其基本思想是通过交替更新模型中的每个参数,直到达到收敛的目标。 下面是R语言的LASSO坐标下降算法代码实现: ```r lasso_cd <- function(X, y, lambda, alpha=1, tol=1e-6, max_iter=1000) { n <- nrow(X) p <- ncol(X) beta <- rep(0, p) beta_0 <- mean(y) y <- y - beta_0 X <- scale(X, center=TRUE, scale=FALSE) X <- sweep(X, 2, colMeans(X), "-") RSS <- sum(y^2) iter <- 0 converged <- FALSE while(!converged && iter < max_iter) { iter <- iter + 1 beta_old <- beta for(j in 1:p) { X_j <- X[,j] beta_j <- beta[j] r <- y - X %*% beta - beta_0 r <- r + X_j * beta_j corr <- cor(X_j, r) beta[j] <- soft_threshold(corr, lambda * alpha) if(beta[j] != 0) { r <- r + X_j * beta[j] } beta_0 <- mean(y - X %*% beta) } if(sum(abs(beta - beta_old)) < tol) { converged <- TRUE } } return(list(beta=beta, beta_0=beta_0)) } soft_threshold <- function(x, lambda) { if(x > lambda) { return(x - lambda) } else if(x < -lambda) { return(x + lambda) } else { return(0) } } ``` 其中,X为自变量的矩阵,y为因变量的向量,lambda为LASSO正则化的惩罚系数,alpha为L1正则化项的系数,tol为收敛的阈值,max_iter为最大迭代次数。函数返回的是beta和beta_0两个参数,分别代表模型的系数和截距。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值