楼主: ltx5151
39286 36

[实际应用] 关于R合理使用内存 [推广有奖]

11
201010080 发表于 2013-5-3 16:25:29
谢谢你的回复,您对弹性网了解吗,最近在看弹性网,它的R程序用penalized包怎么写呢?这是我尝试写的弹性网程序,您给看看吧。我这样写对不对,没找到关于弹性网的包
#Cox:弹性网
# Finding an optimal cross-validated likelihood
opt1 <- optL1(surv, penalized = X, fold = 10,data=simcox)
fit2<-profL2(surv,penalized=X,minl=0.01,maxl=100000,fold=opt1$fold,steps=20)
lambda22<-fit2$lambda[fit2$cvl==max(fit2$cvl)]    ###返回最大cvl值对应的lambda2
fit1<-profL1(surv,penalized=X,lambda2=lambda22,fold=opt1$fold,steps=20)
lambda11<-fit1$lambda[fit1$cvl==max(fit1$cvl)]    ###返回最大cvl值对应的lambda1
pen<-penalized(surv,penalized=X,data=simcox,lambda1=lambda11,lambda2=lambda22)

12
201010080 发表于 2013-5-3 16:33:36
R里面有个弹性网的包,但是我做的是生存分析的弹性网,这个包不知道能不能用?

13
201010080 发表于 2013-5-3 17:10:36
R里面的glmnet包好像可以解决弹性网用于生存分析中的问题,我的问题是里面的α应该怎么设置呢?

14
201010080 发表于 2013-5-3 17:11:31
他的解释里说α等于0,为岭回归,α等于1为lasso,可是没说α怎么设定啊,还是根据自己的需要来设置?

15
ltx5151 发表于 2013-5-4 00:03:29
201010080 发表于 2013-5-3 17:11
他的解释里说α等于0,为岭回归,α等于1为lasso,可是没说α怎么设定啊,还是根据自己的需要来设置?
是的,alpha的值是你根据自己需要定的。alpha在0~1之间变动其实是从L2 penalty到L1 penalty的变动。在有些情况下,如果你愿意,你可以把alpha作为参数调节。但是一般如果你想使用Lasso(L1 penalty),直接设置为1就可以了。

16
201010080 发表于 2013-5-4 20:29:12
我是做弹性网,那α的参数调节应该怎么弄呢

17
201010080 发表于 2013-5-4 20:33:10
还有一个问题,我在做数据模拟的时候,碰到一种设置是自变量有多个,且他们之间不独立,但是其中有一个变量却是与反应变量边际独立但联合相关的,我实在不知道他这是表达什么意思?(the response is marginally independent but jointly dependent of X4)

18
mathstu 在职认证  发表于 2013-5-4 21:01:44
楼主对glmnet这个包很熟悉吗?我最近在做LASSO的东西,用LARS这个包,而glmnet这个包实现不了

19
ltx5151 发表于 2013-5-11 11:55:25
201010080 发表于 2013-5-4 20:29
我是做弹性网,那α的参数调节应该怎么弄呢
所谓elastic-net,其实不是α具体为某个值,而是所有这样随着α变化的模型。在elastic-net,你有两个参数需要调节,一个是α,一个是lambda (整体penalty的系数)。

至于怎么选取最优的α,这要看你的目标是什么。如果是变量选择,ridge regression对于估计,是通过l2 regularization,没有引入sparsity,在高维数据时有效果有可能没有lasso好。因为理论上,对于变量选择,最优应该是l0 regularization,所以lasso (l1 regularization)更接近些。

如果你的主要目标是预测,直接用cross-validation对于两个参数进行选择也可以。

20
ltx5151 发表于 2013-5-11 11:59:05
mathstu 发表于 2013-5-4 21:01
楼主对glmnet这个包很熟悉吗?我最近在做LASSO的东西,用LARS这个包,而glmnet这个包实现不了
glmnet与LARS用的算法不同。详细的内容lz可以参考Efron, Hastie, Tibshirani等人的论文。

大体来说,glmnet主要是基于新的算法,其对模型拟合的速度更快,处理大数据应该更适合。但是LARS是在理论上独立的方法,提供了更多的insight,其思想适用性也更广。

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

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