Estou tentando entender o processo de treinamento de uma máquina de vetores de suporte linear . Percebo que as propriedades dos SMVs permitem que elas sejam otimizadas muito mais rapidamente do que usando um solucionador de programação quadrática, mas, para fins de aprendizado, gostaria de ver como isso funciona.
Dados de treinamento
set.seed(2015)
df <- data.frame(X1=c(rnorm(5), rnorm(5)+5), X2=c(rnorm(5), rnorm(5)+3), Y=c(rep(1,5), rep(-1, 5)))
df
X1 X2 Y
1 -1.5454484 0.50127 1
2 -0.5283932 -0.80316 1
3 -1.0867588 0.63644 1
4 -0.0001115 1.14290 1
5 0.3889538 0.06119 1
6 5.5326313 3.68034 -1
7 3.1624283 2.71982 -1
8 5.6505985 3.18633 -1
9 4.3757546 1.78240 -1
10 5.8915550 1.66511 -1
library(ggplot2)
ggplot(df, aes(x=X1, y=X2, color=as.factor(Y)))+geom_point()
Localizando o hiperplano de margem máxima
De acordo com este artigo da Wikipedia sobre SVMs , para encontrar o hiperplano de margem máxima que preciso resolver
Como conecto meus dados de amostra a um solucionador de QP no R (por exemplo, quadprog ) para determinar ?
R
? etc.