2016-05-24 2 views
0

У меня есть пять классов, и я хочу использовать SVM (пакет e1071) для классификации. Однако я вижу некоторые хорошие примеры для двоичной классификации с использованием SVM, однако для поддержки многоклассов некоторые члены предложили использовать один из бинарных классификаторов One_Vs_Rest или One_vs_One, а затем объединить их, чтобы получить окончательное предсказание. Есть ли прямая реализация Multiclass (любой подход подходит для меня)?Есть ли прямая реализация многоклассового SVM в R (e1071)

ответ

0

Да, теперь я получил решение. Я использовал базовый файл справки из R и реализовал One_vs_One Multiclass, используя e1071, который очень короткий и точнее с четкими комментариями в нем.

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") 
Смежные вопросы