如何在 R 中找到 K 折验证的平均训练和交叉验证错误?

问题描述

我正在运行一个决策树模型,我使用 K 折交叉验证将训练集随机分成 K 个不同的子集 (K = 10)

如何计算平均训练误差和平均交叉验证误差?

这是我目前的代码,我是机器学习的新手。


data_tree_copy <- data_tree[sample(nrow(data_tree)),]

## Create 10 equally size folds

k_folds <- cut(seq(1,nrow(data_tree_copy)),breaks = 10,labels = FALSE)

MSE_tree <- 0

for(i in 1:10){
  testIndexes <- which(k_folds == i,arr.ind=TRUE)
  testData <- data_tree_copy[testIndexes,]
  trainData <- data_tree_copy[-testIndexes,]
  
## median_value is my predictor.

  tree_model <- rpart(median_value~.,data = trainData,method = "anova",control = rpart.control(minsplit = 10,cp = 0.001))

  predict2 <- predict(tree_model,testData)
  
  MSE_tree <- MSE_tree + sum(k_folds == i)/nrow(data_tree_copy) * mean((predict2 - testData$median_value)^2)

    }

RSME_pred  <- sqrt(MSE_tree)

print(paste("root mean-squared error of the prediction is",RSME_pred))


train_error <-  mean((predict2)^2)

train_error  

printcp(tree_model) # cross-validation check



在这里做错了什么!我得到了结果,但无法掌握。

提前致谢!!!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)