[R] cross validation using e1071:SVM
Neeti
nikkihathi at gmail.com
Tue Nov 23 13:37:51 CET 2010
Hi everyone
I am trying to do cross validation (10 fold CV) by using e1071:svm method. I
know that there is an option (“cross”) for cross validation but still I
wanted to make a function to Generate cross-validation indices using pls:
cvsegments method.
#####################################################################
Code (at the end) Is working fine but sometime caret:confusionMatrix gives
following error:
stat_result<- confusionMatrix(pred_true1,species_test)
Error in confusionMatrix.default(pred_true1, species_test) :
The data and reference factors must have the same number of levels
My data: total number=260
Class = 6
#####################################
Sorry if I missed some previous discussion about this problem.
It would be nice if anyone explain or point out the mistake I am doing in
this following code.
Is there another way to do this? As I wanted to check my result based on
Accuracy and Kappa value generated by caret:confusionMatrix.
##########################################
Code
#########################################
x<-NULL
index<-cvsegments(nrow(data),10)
for(i in 1:length(index))
{
x<-matrix(index[i])
testset<-data[x[[1]],]
trainset<-data[-x[[1]],]
species<-as.factor(trainset[,ncol(trainset)])
train1<-trainset[,-ncol(trainset)]
train1<-train1[,-(1)]
test_t<-testset[,-ncol(testset)]
species_test<-as.factor(testset[,ncol(testset)])
test_t<-test_t[,-(1)]
model_true1 <- svm(train1,species)
pred_true1<-predict(model_true1,test_t)
stat_result<- confusionMatrix(pred_true1,species_test)
stat_true[[i]]<-as.matrix(stat_result,what="overall")
kappa_true[i]<-stat_true[[i]][2,1]
accuracy_true[i]<-stat_true[[i]][1,1]
}
--
View this message in context: http://r.789695.n4.nabble.com/cross-validation-using-e1071-SVM-tp3055335p3055335.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list