带循环的弹性净回归模型没有给我基于 alpha R 的结果列表

Elastic net regression model with loops is not giving me list of results based on alpha R

非常感谢您的建议

我目前正在做一个弹性净回归,我正在使用一个 for 循环来应用从 0 到 1 的 10 个不同的 alpha 值,问题是当我询问模型的结果时,它只给我结果alpha=1,这是我的代码

set.seed(1212)
sample_size <- floor(0.75 * nrow(data_scaled))
training_index <- sample(seq_len(nrow(data_scaled)), size = sample_size)

train <- data_scaled[training_index, ]
test <- data_scaled[-training_index, ]

x.train <- train[,-3]
y.train<- train[,3]

x.test <- test[,-3]
y.test<- test[,3]

  list.of.fits<- list()
  for (i in 0:10) {
    fit.name<- paste0('alpha', i/10)
    
    list.of.fits[[fit.name]]<- cv.glmnet(x.train, y.train, type.measure = "mse", alpha= i/10,
                                         family="gaussian")
  }

results<- data.frame()

for (i in 10) {
  fit.name<- paste0('alpha', 1/10)
  
  predicted<- predict(list.of.fits[[fit.name]], s=list.of.fits[[fit.name]]$lambda.1se, newx=x.test)

  mse<- mean((y.test-predicted)^2)  

temp<- data.frame(alpha=i/10, mse=mse, fit.name= fit.name)
  results<- rbind(results, temp)
}
results```

In results it gives me only alpha 1 result, instead of alpha from 0 to 1 (aplha0.1,alpha0.2, alpha0.3...)

您的 results for 循环只会产生 i = 10,请尝试 for (i in 1:10) 而不是 for (i in 10)

此外,在您的 results 循环中,您的 fit.name 固定为 1/10。

解决这些问题应该可以解决您的问题。