在maxit=1000次迭代后,未达到第n个lambda值的r-glmnet收敛性;针对较大Lambda的解决方案回归



我正在使用glmnet包中的LASSO来创建预测。此外,我正在使用cv.glmnet-函数进行5倍的交叉验证以创建Lasso.fit。然后在预测函数中使用这个glmnet对象,经验法则s=";λ1se";。

x <- scale(x)
x_test <- scale(x_test)
lasso.fit <- cv.glmnet(x,y, nfolds = 5, alpha=1, 
intercept =TRUE, standardize =TRUE, type.measure="mae")
lasso_pred <- predict(lasso.fit, x_test, s ="lambda.1se")          

然而,运行此模型时,我收到以下警告:

Warning: 
from glmnet Fortran code (error code -79); 
Convergence for 79th lambda value not reached after maxit=100000 iterations; 
solutions for larger lambdas returned

这个警告是什么意思?

此外,我是否应该认真对待这个警告,即更改cv.glmnet-函数?

或者这是我在用惩罚方法创建预测时不应该担心的事情吗?

默认情况下,glmnet尝试计算100个lambda值的解。错误是说,在第79个lambda值时,坐标下降的最大迭代(默认为10^5(被击中。因此,由于该解不满足收敛准则,因此仅给出前78个lambda值的解。你仍然可以使用cv.glmnet——它只是用这78个Lambda进行模型选择。如果要计算更多的lambda,只需传递另一个参数maxit=...,其中...是大于10^5的某个数字。

最新更新