R里glmnet的lambda.min.ratio参数是什么意思?

  统计/机器学习 回归分析 监督式学习 模型验证 R    浏览次数:2541        分享
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个回答 
9

看你的这句代码,应该是用正则化的逻辑回归来做二元分类,并且用交叉验证来找到最好的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就是这个目的。

SofaSofa数据科学社区DS面试题库 DS面经

雷猴   2017-03-09 10:55



  相关讨论

R里什么library有ElasticNet模型?

LOWESS回归

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

R错误 predictor not in model

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

怎么对R的data.frame新增加一列?

R里怎么对程序运行计时?

R里面dir函数是什么意思?

R里paste0函数是什么意思?

R里怎么计算log loss?

  随便看看

神经网络里为什么隐藏层越多越好?

tsne被忽视?tsne有什么缺点?

关于方差膨胀因子(VIF)的问题

opencv里waitkey和destroyAllWindows有什么用?

样本权重大小不同时,用什么分类算法比较合适?