0
我有五個類,我想使用SVM(e1071包)進行分類。我可以看到使用SVM進行二元分類的一些很好的例子,但是,對於多類支持,一些成員建議使用One_Vs_Rest或One_vs_One二元分類器中的任一個,然後將它們組合起來以獲得最終預測。是否有多種類的直接實現(這兩種方法都適用於我)可用?是否有R中的多類SVM的直接實現(e1071)
我有五個類,我想使用SVM(e1071包)進行分類。我可以看到使用SVM進行二元分類的一些很好的例子,但是,對於多類支持,一些成員建議使用One_Vs_Rest或One_vs_One二元分類器中的任一個,然後將它們組合起來以獲得最終預測。是否有多種類的直接實現(這兩種方法都適用於我)可用?是否有R中的多類SVM的直接實現(e1071)
是的,現在,我得到了解決方案。我使用了R的基本幫助文件,並使用e1071實現了One_vs_One Multiclass,它非常簡短,並且有清晰的註釋。
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")