r - 如何在 R 中的 cv.glmnet 或 glmnet 函数中找到拟合值?
问题描述
假设我生成了以下数据集并cv.glmnet
使用R
.
library(glmnet)
means <- c(-1, 1.3, 0.6, 2, 1.5, -0.7, 2.5)
size <- c(50, 50, 100, 200, 350, 50, 200)
t = list()
for (i in 1:length(means)) {
t[[i]] <- c(rnorm(size[i],mean = means[i],sd = 0.5))
}
y <- c(unlist(t))
plot(y,type = 'l')
lower_tri <- function(i){
a <- matrix(1,i,i)
a[upper.tri(a)] <- 0
return(a)
}
x <- lower_tri(sum(size))[,2:sum(size)]
cv_fit <- cv.glmnet(x,y)
如何使用 找到拟合值cv_fit1
?我使用模型fitted()
的功能lm
。
非常感谢。
解决方案
从 pkg询问 -object 的fitted
值是错误的。交叉验证是在具有不同结构的相对广泛的模型上进行的,因此它实际上并没有做任何等效于具有单个模型和单个结果的事情。它的目标是为您提供结果,让您根据数据的性质选择过程的最佳复杂程度。这是选择glmnet模型的一步,即选择lambda。您可以使用它来获得预测:cv.glmnet
glmnet
glm
cv.glmnet
glmnet
predict( glmnet(x,y), s=cv_fit$lambda.min )
我不认为提供的示例对支持进一步讨论特别有用,因为它看起来相当“退化”,复杂程度最低。
推荐阅读
- angular - 错误:无法匹配任何路由。URL 段:'table/3'
- visual-studio - Visual Studio 中消息框的延迟
- c# - 使用 c# 超时发送电子邮件
- php - 来自 MySQL 的基于单行的 IF-ELSE
- webpack - Vue 包中出现意外的 Token 错误
- android - 当 EditText 有焦点时选择所有文本不起作用
- python - python记录__name__和包装
- javascript - 广告拦截器 - Catch net::ERR_BLOCKED_BY_CLIENT
- nlp - 您如何使用 word2vec 计算 k-means 的文本文档之间的距离?
- python - 如何在python3中解构异常?