10.14 Máquinas de Vetor de Suporte (SVM)

Between 1960 and 1980 a revolution in statistics occurred: Fisher’s paradigm, introduced in the 1920s and 1930s was replaced by a new one. This paradigm reflects a new answer to the fundamental question: What must one know a priori about an unknown functional dependency in order to estimate it on the basis of observations? In Fisher’s paradigm the answer was very restrictive – one must know almost everything. (…) The new paradigm overcame the restriction of the old one. (Vapnik 1995 vii)

(Cortes and Vapnik 1995) e (Vapnik 1995) apresentam as máquinas de vetores de suporte, um algoritmo para problemas de classificação binária. Na segunda edição do livro, (Vapnik 2000) inclui a generalização do método SVM para estimar funções de valor real, métodos diretos de aprendizagem baseados na resolução de equações integrais multidimensionais usando SVM e extensão do princípio empírico de minimização de risco e sua aplicação às SVM. O Capítulo 4 é dedicado a uma teoria de pequenos tamanhos de amostra. Aqui, introduzimos princípios indutivos para tamanhos de amostra pequenos que podem controlar a capacidade de generalização.

O princípio é que os vetores de entrada são mapeados de forma não linear para um espaço de dimensão muito alta. Neste espaço uma superfície de decisão linear é construída. Propriedades especiais da superfície de decisão garantem alta capacidade de generalização da máquina de aprendizagem.

Exemplo 10.34 Classificando espécies de lírio via SVM.

# amostra de treino: 60%
set.seed(1); itrain <- sort(sample(1:nrow(iris), floor(.6*nrow(iris))))
train <- iris[itrain,]
test <- iris[-itrain,]
# modelo
fit <- e1071::svm(Species ~ ., data = train)
fit
## 
## Call:
## svm(formula = Species ~ ., data = train)
## 
## 
## Parameters:
##    SVM-Type:  C-classification 
##  SVM-Kernel:  radial 
##        cost:  1 
## 
## Number of Support Vectors:  40
# predição
pred <- predict(fit, newdata = test[-5])
# matriz de confusão
(cm <- table(pred, test[,5]))
##             
## pred         setosa versicolor virginica
##   setosa         18          0         0
##   versicolor      0         23         1
##   virginica       0          1        17
# relatório via caret::confusionMatrix
caret::confusionMatrix(cm)
## Confusion Matrix and Statistics
## 
##             
## pred         setosa versicolor virginica
##   setosa         18          0         0
##   versicolor      0         23         1
##   virginica       0          1        17
## 
## Overall Statistics
##                                           
##                Accuracy : 0.9667          
##                  95% CI : (0.8847, 0.9959)
##     No Information Rate : 0.4             
##     P-Value [Acc > NIR] : < 2.2e-16       
##                                           
##                   Kappa : 0.9495          
##                                           
##  Mcnemar's Test P-Value : NA              
## 
## Statistics by Class:
## 
##                      Class: setosa Class: versicolor Class: virginica
## Sensitivity                    1.0            0.9583           0.9444
## Specificity                    1.0            0.9722           0.9762
## Pos Pred Value                 1.0            0.9583           0.9444
## Neg Pred Value                 1.0            0.9722           0.9762
## Prevalence                     0.3            0.4000           0.3000
## Detection Rate                 0.3            0.3833           0.2833
## Detection Prevalence           0.3            0.4000           0.3000
## Balanced Accuracy              1.0            0.9653           0.9603

Referências

Cortes, Corinna, and Vladimir Vapnik. 1995. “Support-Vector Networks.” Machine Learning 20 (3): 273–97. https://link.springer.com/article/10.1007/BF00994018.
Vapnik, Vladimir. 1995. The Nature of Statistical Learning Theory. 1st ed. Springer Science & Business Media.
———. 2000. The Nature of Statistical Learning Theory. 2nd ed. Springer Science & Business Media.