library(doSNOW) library(kernlab) perform.grid.search <- function(features, labels, kernel.type, C, sigma, criss=5, cross=10, deg = NA, nsvm, ab=NA, sample.size=0, cores=8) { if(!is.matrix(ab)) { classes <- unique(labels) ab <- expand.grid(classes,classes) ab <- ab[ab[,1] 0) { mA <- mA.all[sample(nrow(mA.all),sample.size),] mB <- mB.all[sample(nrow(mB.all),sample.size),] } else { mA <- mA.all mB <- mB.all } mAB <- rbind(mA,mB) mAB_target <- as.factor(c(rep("a",nrow(mA)),rep("b",nrow(mB)))) t <- system.time({ modAB <- ksvm(mAB, mAB_target,type="C-svc",C=g[k,1], kpar = kpar, kernel=kernel.type, cross=cross, cache = 1000, scaled=FALSE) }) performance <- performance + c(modAB@error,modAB@cross,modAB@nSV,modAB@obj,t["user.self"],t["sys.self"],t["elapsed"]) } c(g[k,1],g[k,2], performance / criss) } colnames(result[[paste(ab[i,1],ab[i,2],sep=".")]][["result"]]) <- c("C",second.param.name,"error","cross","SVs","obj.fun","t.user","t.sys","t.elapsed") } stopCluster(cl) return(result) }