10.15 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.32 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
## 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