我非常感謝一些建議
我目前正在做一個彈性網路回歸,我正在使用一個 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...)
uj5u.com熱心網友回復:
您results的 for 回圈只會產生i = 10, tryfor (i in 1:10)而不是for (i in 10).
此外,在您的results回圈中,您fit.name的固定為 1/10。
解決這些問題應該可以解決您的問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/480385.html
