library(e1071) source("data") pred <- rep(0, length(data$Class)) # added for use of class.weights #w1 <- sum(data$Class == 1) / length(data$Class) #w2 <- sum(data$Class == 2) / length(data$Class) # w1 <- 1 ; w2 <- 1 # if (sum(data$Class == 1) > sum(data$Class == 2)) # { # w1 <- 1 ; w2 <- round(sum(data$Class == 1) / sum(data$Class == 2)) # } # if (sum(data$Class == 1) < sum(data$Class == 2)) # { # w2 <- 1 ; w1 <- round(sum(data$Class == 2) / sum(data$Class == 1)) # } for(iter in 1:length(data$Class)) { set.seed(iter) mod <- svm(Class ~ ., data = data[-iter,], cache=512, kernel="sigmoid") #, #class.weights = c("1"=w1,"2"=w2)) # must have equal weights to have entropy near zero with random groups!!! pred[iter] <- predict(mod, data[iter,]) } cM <- table(true = data$Class, pred = pred) cMstats <- classAgreement(cM) # cat("\n SVM with Hyperbolic Tangent kernel function \n") # cat(" =============== ") # cat("\n Accuracy: ") ; print(cMstats$diag) # cat("\n Kappa: ") ; print(cMstats$kappa) # cat("\n Confusion matrix: \n") ; print(cM) # cat("\n") write(cM, 'confusionMatrix') write(cMstats$diag, 'accuracy') write(cMstats$kappa, 'kappa') write(pred, file="pred_svm", ncolumns = 1)