r - 如何使用 glmnet 包提取最佳 lambda 的 CV 错误?

标签 r cross-validation glmnet mse

我在 R 中使用 glment 包进行回归。我使用 cv.fit<-cv.glmnet(x,y,...) 进行交叉验证,并使用 cvfit$lambda.min 获得最佳 lambda。但我还想获得该 lambda 对应的 MSE(均方误差)。
有人可以帮我拿吗?

最佳答案

来自 ?cv.glmnet :

# ...
# Value:
#
#     an object of class ‘"cv.glmnet"’ is returned, which is a list with
#     the ingredients of the cross-validation fit. 
#
# lambda: the values of ‘lambda’ used in the fits.
#
#   cvm: The mean cross-validated error - a vector of length
#       ‘length(lambda)’.
# ...

因此,在您的情况下,交叉验证的均方误差在 cv.fit$cvm 中,相应的 lambda 值在 cv.fit$lambda 中。

要找到最小 MSE,您可以使用 which 如下:
i <- which(cv.fit$lambda == cv.fit$lambda.min)
mse.min <- cv.fit$cvm[i]

或更短
mse.min <- cv.fit$cvm[cv.fit$lambda == cv.fit$lambda.min]

关于r - 如何使用 glmnet 包提取最佳 lambda 的 CV 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24018585/

相关文章:

r - 从 R 中的图像中提取前 2-3 个十六进制颜色

r - 如何让 R 停止接受列名的部分匹配?

r - 围绕绘图中的圆圈环绕/弯曲文本 (R)

python - 从 sklearn 中的 Pipeline 对象返回系数

Python-Classifier-Xgboost - 在 GridSearchCV 中显示带有参数、持续时间、分数的 cv

scikit-learn - sklearn 中使用 StratifiedShuffleSplit 进行嵌套交叉验证

可以处理 NA 的 R 包/模型

r - 岭回归的置信区间

r - R 中的 cv.glmnet 是否为二进制数据返回双 MSE?

r - data.table::fread 和不平衡"