SVM并行优化

时间:2016-10-25 16:42:43

标签: r parallel-processing svm

我是R,SVM和并行处理的新手:S

我有以下代码来优化SVM:

library(e1071)    
# Perform a grid search of SVM predictions of the training data set using a range of gamma and cost values
    tuneResult <- tune(svm, ActualDepth ~ . , data=trainset, ranges=list(gamma=seq(0.6,0.8,0.1),cost=seq(180,190,5)))
    print(tuneResult)    # Print the results of the grid search to screen
    plot(tuneResult)     # Plot the results of the grid search to a contour plot

现在我想将此代码并行化以使用我的整个cpu。我已经尝试了以下代码的几个内涵,但它似乎不对,我不确定输出是最好的结果还是仅仅是最后的结果。我希望这是最后的结果,因为如果它是最好的结果那么它不是很好!请你帮我纠正下面的代码,这样我就可以获得最佳的伽马和成本,或者我可以获得类似上面调整函数的输出图

# Use all CPU
library(foreach)
library(doSNOW)

G = seq(0.6,0.8,0.01)

cl <- makeCluster(detectCores()-1)
registerDoSNOW(cl)

parResult <- foreach(i = 1:length(G), combine = "combine") %dopar% {
    library(e1071)
    svm(ActualDepth ~ ., data = trainset, gamma = G[i], cost = 1)
}
stopCluster(cl)
parPred <- predict(parResult[[1]],testset[,-1])
plot(testset[,1],parPred)
abline(0,1,col="red")
abline(-8,1,col="green")
abline(8,1,col="green")

我已经对这个问题进行了网络搜索,虽然我找到了一些资源,但它们并不是我可以直接使用的东西,而且我没有足够的R来修改它们,或者经常了解它们正在做什么。我真的很感激这个问题的一些帮助,我已经不停地工作了2天了。

非常感谢

0 个答案:

没有答案