提问人:SH Ryu 提问时间:9/29/2023 更新时间:9/29/2023 访问量:25
R 中的蒙特卡洛交叉验证编码问题 - Auto MPG 数据集
Monte Carlo Cross Validation coding problem in R - Auto MPG dataset
问:
我只是在使用 Auto MPG 数据集在 R 中练习蒙特卡洛交叉验证编码问题。
在练习分类工具后,我只想应用交叉验证,设置 B = 100。 但是,我只是被 R 代码中的一些编码错误阻止了,如下所示;
均值误差(predict(mod1.简历,Auto_test。CV) != Auto_test。CV$mpg01) : 不能强制“list”对象键入“integer”
警告:较长的物体长度不是较短物体长度的倍数警告:较长的物体长度不是较短物体长度的倍数[1]
请让我知道在哪里可以正确更改代码。谢谢!
full = rbind(Auto_train, Auto_test)
n1 = 274
set.seed(123)
n = dim(full[1])
B = 100
TEALL = NULL
for (b in 1:B){
flag <- sort(sample(1:n,n1))
Auto_train.CV <- full[flag,]
Auto_test.CV <- full[-flag,]
CV.test.err <- NULL
mod1.CV <- lda(mpg01 ~ cylinders + displacement + horsepower + weight, data = Auto_train.CV)
pred1.CV <- predict(mod1.CV, Auto_train.CV)$class
CV.test.err <- cbind(CV.test.err, mean(predict(mod1.CV, Auto_test.CV) != Auto_test.CV$mpg01))
mod2.CV <- qda(mpg01 ~ cylinders + displacement + horsepower + weight, data = Auto_train.CV)
pred2.CV <- predict(mod2.CV, Auto_train.CV)$class
CV.test.err <- cbind(CV.test.err, mean(predict(mod2.CV, Auto_test.CV) != Auto_test.CV$mpg01))
mod3.CV <- naiveBayes(mpg01 ~ cylinders + displacement + horsepower + weight, data = Auto_train.CV)
pred3.CV <- predict(mod3.CV, Auto_train.CV)
CV.test.err <- cbind(CV.test.err, mean(predict(mod3.CV, Auto_test.CV) != Auto_test.CV$mpg01))
mod4.CV <- multinom(mpg01 ~ cylinders + displacement + horsepower + weight, data = Auto_train.CV)
pred4.CV <- predict(mod4.CV, Auto_train.CV)
CV.test.err <- cbind(CV.test.err, mean(predict(mod4.CV, Auto_test.CV) != Auto_test.CV$mpg01))
train.X.CV <- cbind(Auto_train.CV$cylinders, Auto_train.CV$displacement, Auto_train.CV$horsepower, Auto_train.CV$weight)
test.X.CV <- cbind(Auto_test.CV$cylinders, Auto_test.CV$displacement, Auto_test.CV$horsepower, Auto_test.CV$weight)
mod5.CV <- knn(train.X.CV, test.X.CV, Auto_train.CV$mpg01, k = 4)
CV.test.err <- cbind(CV.test.err, mean(mod5.CV != Auto_test.CV$mpg01))
}
TEALL = rbind(TEALL, CV.test.err))
答: 暂无答案
评论
predict()
Auto_train.CV
newdata
predict()