glmnet中的参数lambda.min.ratio什么意思

  统计/机器学习 回归分析 模型验证 R    浏览次数: 971
3

在看一个师兄写的R的code,他用glmnet的时候,设置了模型参数lambda.min.ratio=0.001。这个参数是什么意思?

fit_model = cv.glmnet(sparse.model.matrix(eqn, data=X),  y, family='binomal', alpha=0, type.measure='auc', lambda.min.ratio=0.001)

 

Sophia   2017-03-05 00:12



   1个回答 
8

看你的这句代码,应该是用正则化的逻辑回归来做二元分类,并且用交叉验证来找到最好的lambda。这个lambda是目标函数中惩罚项前面的系数。目标函数是

$$\min_{\beta,\beta_0}\text{log-loss}(\text{y},\text{X}\beta+\beta_0)+\lambda\left((1-\alpha)\frac{\|\beta\|_2^2}{2}+\alpha\|\beta\|_1\right).$$

当lambda=0,就是正常的逻辑回归,没有任何惩罚项。

言归正传,cv.glmnet是利用交叉验证来找到一组备选的lambda中最好的lambda。lambda.min.ratio=0.001的意思就是我们给这组备选的lambda设定了起始值0.001。cv.glmnet会自动从0.001开始试,逐渐增大,直到程序满足一定的条件后终止。

为了防止错过最佳的lambda,lambda.min.ratio通常会设置为很接近0的数(正数)。你师兄写lambda.min.ratio=0.001就是这个目的。

雷猴   2017-03-09 10:55



  相关主题

怎么用R得到混淆矩阵?   1回答

R用lm做线性回归的时候,interaction term是冒号还是乘号?   1回答

在R里面怎么把一系列类似的data.frame放在一起   1回答

R里paste0函数是什么意思?   1回答

R里的merge函数是inner join还是outer join?   1回答

python pandas里有没有类似R的summary的函数?   3回答

R里线性回归结果中最后的F-statistic什么意思?有什么用?   1回答

R语言里求二分类的log-loss   2回答

R里面求方差的函数var求的是样本方差还是总体方差   1回答

R语言里怎么求一个样本的众数   1回答

R语言有没有深度学习或者神经网络的包?   3回答

xgboost的gblinear是什么意思?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!