2016-05-24 9 views
0

Ich habe fünf Klassen und ich möchte SVM (e1071-Paket) für die Klassifizierung verwenden. Ich kann einige gute Beispiele für die binäre Klassifizierung mit SVM sehen, aber für die Unterstützung von Multiclass haben einige Mitglieder vorgeschlagen, entweder den binären Klassifikator One_Vs_Rest oder One_vs_One zu verwenden und sie dann zu kombinieren, um die endgültige Vorhersage zu erhalten. Gibt es eine direkte Implementierung von Multiclass (beide Ansätze sind für mich in Ordnung) verfügbar?Gibt es eine direkte Implementierung von SVM mit mehreren Klassen in R (e1071)

Antwort

0

Ja, jetzt habe ich die Lösung. Ich habe die grundlegende Hilfedatei aus dem R verwendet und die One_vs_One Multiclass mit e1071 implementiert, die sehr kurz und auf den Punkt mit klaren Kommentaren ist.

library(xlsx) 
library(gdata) 
data(iris) 
library(e1071) 
library(caTools) 

##---------- Split the overall dataset into two parts:70% for training and 30% for testing----------- 
index_iris<-sample.split(iris$Species,SplitRatio=.7) 
trainset_iris<-iris[index_iris==TRUE,] 
testset_iris<-iris[index_iris==FALSE,] 
y <- testset_iris$Species 

##---------- Now Create an SVM Model with the training dataset-------------------- 
model <- svm(Species ~ ., data = trainset_iris) 
# print(model) 
# summary (model) 

##-------------Use the model to predict the test dataset so that we can find the accuracy of the model----- 
pred <- predict(model,testset_iris) 
table(pred, y) 

##-------------- Compute decision values and probabilities-------------- 
pred <- predict(model, testset_iris, decision.values = TRUE) 
attr(pred, "decision.values") 
Verwandte Themen