我已经浏览了8个关于这个问题的stackoverflow问题。但没有提供适当的实际答案。
我使用glmnet包在R中执行套索回归:
fit.lasso <- glmnet(x,y)
plot(fit.lasso,xvar="lambda",label=TRUE)
然后使用交叉验证:
cv.lasso=cv.glmnet(x,y)
plot(cv.lasso)
One tutorial(上一张幻灯片)为R ^ 2建议以下内容:
R_Squared = 1 - cv.lasso$cvm/var(y)
但它没有用。
我想了解拟合数据时的模型效率/性能。因为我们在r中执行lm()函数时通常得到R ^ 2并调整R ^ 2。
答案 0 :(得分:0)
库(glmnet)
data(BinomialExample)
head(x)
head(y)
cvfit = cv.glmnet(x, y, family = "binomial", type.measure = "class")
rsq = 1 - cvfit$cvm/var(y)
plot(cvfit$lambda,rsq)
答案 1 :(得分:0)
如果您使用的是“高斯”族,则可以通过
访问R平方值。fit.lasso $ glmnet.fit $ dev.ratio
答案 2 :(得分:0)
...
lasso.model <- glmnet(x=X,y=Y, family = "binomial", alpha=1, lambda = cv.model$lambda.min )
`lasso.model$dev.ratio`
这个值给出了模型解释的偏差/空偏差