昨天试了一下caret包的naive bayes分类模型的10-fold交叉验证。
然后发现了如下的错误
{ でエラー:
task 1 failed - "Not all variable names used in object found in newdata"
追加情報: 20 件の警告がありました (警告を見るには warnings() を使って下さい)
用e1071
的时候完全没问题可以建模,用caret
就不行了。但是又想偷懒不想自己手写 k-fold的代码。还是自己写吧。
- 首先要把数据打乱
- 然后均等的把数据分成10份
- 最后重复10次建模和验证。
这样就不用受限于caret
,用什么包什么机器学习方法都可以。
#Randomly shuffle the data
yourData<-yourData[sample(nrow(yourData)),]
#Create 10 equally size folds
folds <- cut(seq(1,nrow(yourData)),breaks=10,labels=FALSE)
#Perform 10 fold cross validation
for(i in 1:10){
#Segement your data by fold using the which() function
testIndexes <- which(folds==i,arr.ind=TRUE)
testData <- yourData[testIndexes, ]
trainData <- yourData[-testIndexes, ]
#Use the test and train data partitions however you desire...
}
网友评论