![](/img/trans.png)
[英]How to find the fitted value in cv.glmnet or glmnet function in R?
[英]How to get the value of the objective function from glmnet in R?
我可以得到套索或岭回归拟合
cvfit <- cv.glmnet(X, y)
我知道如何获得lambda的最佳价值
lambda.min <- cvfit$lambda.min
以及如何获得最佳均方误差
mse <- cvfit$cvm[cvfit$lambda == lambda.min]
如何获得目标函数的值?
我不确定glmnet
是否glmnet
访问目标函数的值,但是很容易计算自己。 这是LASSO的一个小例子。
library(glmnet)
x <- as.matrix(mtcars[c("hp", "cyl", "wt", "gear")])
y <- mtcars$mpg
cvfit = cv.glmnet(x, y, alpha = 1) # alpha = 1 for LASSO
我们可以使用coef
来获取模型的系数,然后根据其定义计算目标函数值。
coefs <- coef(cvfit, s = "lambda.min")
objective <- sum((y - coefs[1] - (x %*% coefs[-1]))^2) +
cvfit$lambda.min * sum(abs(coefs[-1]))
objective
Ridge回归类似:使用alpha = 0
代替,将sum(abs(coefs[-1]))
替换为sum(coefs[-1]^2)
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.