楼主: Jalam
9396 19

急求:一个关于lars算法的问题 [推广有奖]

11
Jalam 发表于 2010-3-18 16:09:47
朋友,谢谢你的热心帮助,我看了glmnet的例子,像这样的程序能得到lasso最优解吗
x=matrix(rnorm(100*20),100,20)
y=rnorm(100)
fit1=glmnet(x,y)
coef(fit1)
我用R运行后得到一个65*21的矩阵,我想应该是每一列都对应一个相应惩罚项的lasso解吧,但是我想要optimal的路径,怎么选择要哪一列呢

12
pandahc 发表于 2010-3-19 00:19:21
用lars的话,可以用悬着min CP 的那个的那个lambda, 然后带入coef.lars

lambda对应的就是penalty 。

个人觉得glmnet用法不是很明确。但是使用的范围更广,如可用在logistic model。

13
casperyc 发表于 2010-3-19 05:47:22
some of my friend just did a project on it

thanks!!

14
casperyc 发表于 2010-3-19 05:47:58
epoh 发表于 2010-3-13 20:54
matlab也有lars function
其中的crossvalidate
可以算出 the optimal model position
然后给出the optimal parameters
could you do a simple example in matlab as well?

cheers

15
Jalam 发表于 2010-3-19 11:03:15
好的,我去试一下

16
飘洒 发表于 2010-3-19 22:35:07
如果你要选择一个最优的lasso解,那你可以用一些准则来做,如GCV,BIC,f-CV等.我做的是logistic regression,感觉还好.
      l1<-glmnet(Xs1,Ys,lambda=lam,standardize=FALSE)
      b1<-l1$beta
上面是我做的程序中的一步.lam是你选定的一个数,
12楼说的,我先去试试.
It is not entirely satisfying but the alternatives are worse!
统计人

17
Jalam 发表于 2010-3-20 00:29:55
各位真是太厉害了,我用了cv准则,最后得到的模型挺不错的,踢出了一部分不显著变量,显著变量的系数也很准,谢谢三位的帮忙,这个论坛真是让人受益非浅

18
yuanjunok 发表于 2010-9-6 21:24:01
12# pandahc
> summary(object)
LARS/LASSO
Call: lars(x = x, y = y)
   Df     Rss     Cp
0   1 2621009 453.73
1   2 2510465 418.03
2   3 1700369 143.80
3   4 1527165  86.74
4   5 1365734  33.70
5   6 1324118  21.51
6   7 1308932  18.33
7   8 1275355   8.88
8   9 1270233   9.13
9  10 1269390  10.84
10 11 1264977  11.34
11 10 1264765   9.27
12 11 1263983  11.00
> min(object$Cp)
[1] 8.88
> coef.lars(object)
         age    sex   bmi   map   tc   ldl  hdl tch ltg  glu
[1,]   0.00    0.0   0.0   0.0    0   0.0    0   0   0  0.0
[2,]   0.00    0.0  60.1   0.0    0   0.0    0   0   0  0.0
[3,]   0.00    0.0 361.9   0.0    0   0.0    0   0 302  0.0
[4,]   0.00    0.0 434.8  79.2    0   0.0    0   0 375  0.0
[5,]   0.00    0.0 505.7 191.3    0   0.0 -114   0 440  0.0
[6,]   0.00  -74.9 511.3 234.2    0   0.0 -170   0 451  0.0
[7,]   0.00 -112.0 512.0 252.5    0   0.0 -196   0 452 12.1
[8,]   0.00 -197.8 522.3 297.2 -104   0.0 -224   0 515 54.8
[9,]   0.00 -226.1 526.9 314.4 -195   0.0 -152 106 530 64.5
[10,]   0.00 -227.2 526.4 315.0 -237  33.6 -135 111 545 64.6
[11,]  -5.72 -234.4 522.6 320.3 -554 286.7    0 149 663 66.3
[12,]  -7.01 -237.1 521.1 321.5 -580 313.9    0 140 675 67.2
[13,] -10.01 -239.8 519.8 324.4 -792 476.7  101 177 751 67.6
最小的Cp对应的beta是第八组 0.00 -197.8 522.3 297.2 -104   0.0 -224   0 515 54.8,即为最优参数?

19
yuanjunok 发表于 2010-9-6 22:14:52
Jalam 发表于 2010-3-20 00:29
各位真是太厉害了,我用了cv准则,最后得到的模型挺不错的,踢出了一部分不显著变量,显著变量的系数也很准,谢谢三位的帮忙,这个论坛真是让人受益非浅
请问怎样利用cv准则?

20
momo00527 发表于 2012-9-19 19:42:36
飘洒 发表于 2010-3-14 12:31
你可以试试glmnet()这个函数,也是可以解lasso的!
我仔细看了看,还是不太明白其中的参数S 是怎么取的,楼主能给点指点么?

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-31 15:19