我有一个相对大的数据:
超过 370,000 个观测值,250 个级别的分类因变量,10 个自变量,包括数值变量和分类变量。
我想为模型比较执行10倍交叉验证(包括'rpart'中的分类树模型,'e1071'包中的svm,'kknn'包中的kknn,'adabag'包中的boosting和bagging)
看了这些模型的手册后,我尝试编写模型执行的代码,但我真的不知道如何执行 10 倍 CV。
实际上我已经尝试过了,但我是 R 的新手。我真的需要 10 倍 CV 的代码或功能的帮助。
这是我的代码:
w <- read.csv('D:/R code/animal2.csv',header = T)
names(w)
[1] "cluster_ward" "AAT0" "ARIDITY" "TOPO" "TMAX"
[6] "PREMAX" "PREMIN" "AMT" "SU_CODE90" "T_OC"
[11] "ELEMAX"
nrow(w)
[1] 370827
w$TOPO <- as.factor(w$TOPO)
w$SU_CODE90 <- as.factor(w$SU_CODE90)
library(rpart.plot)
fit1 <- rpart(cluster_ward ~., w)
pred1 <- predict(fit1, w, type="class")
library(e1071)
fit2 <-svm(cluster_ward~., data=w, kernal="sigmoid")
pred2 <- predict(a, w)
library(kknn)
set.seed(1000)
fit3 <- kknn(cluster_ward~., train=w, test=w)
pred3 <- fit3$fit
library(adabag)
set.seed(1000)
fit4 <- boosting(cluster_ward~., w)
pred4 <- predict(fit4,w)$class
library(adabag)
set.seed(1000)
fit5 <- bagging(cluster_ward~., w)
pred5 <- predict(fit5,w)$class
有人告诉我包'cvTools'或'caret'可以执行k-folds CV,但我仍然无法使用这些包或功能成功执行。