SVMのカーネル比較

モデルによって最適なカーネルが異なる

> kernel.vec <- c('linear','poly','radial','sigmoid')
> scores <- data.frame()
> for(word in kernel.vec){
+   iris.svm <- svm(Species~.,iris,kernel=word,cross=5)
+   prediction <- predict(iris.svm,iris[,1:4])
+   result <- table(prediction,iris$Species)
+   score <- sum(diag(result))/sum(result)
+   score.df <- data.frame(Kernel=word,Score=score)
+   scores <- rbind(scores,score.df)
+ }
> scores
   Kernel     Score
1  linear 0.9666667
2    poly 0.9533333
3  radial 0.9733333
4 sigmoid 0.8866667