Tenho algumas dúvidas em entender os SVMs intuitivamente. Suponha que treinamos um modelo SVM para classificação usando alguma ferramenta padrão como SVMLight ou LibSVM.
Quando usamos esse modelo para prever dados de teste, o modelo gera um arquivo com valores "alfa" para cada ponto de teste. Se o valor alfa for positivo, o ponto de teste pertence à Classe 1, caso contrário, ele pertence à Classe 2. Agora, podemos dizer que um ponto de teste com maior valor "alfa" pertence à classe correspondente com probabilidade "maior"?
Semelhante à primeira pergunta, quando temos um SVM treinado. Os SV estão muito perto do hiperplano. Então, isso significa que os SVs pertencem a essa classe com alta probabilidade? Podemos relacionar a probabilidade de um ponto pertencente a uma classe com sua distância do "hiperplano"? O valor "alfa" representa a distância do "hiperplano"?
Obrigado pela sua contribuição.
Respostas:
‖ w ‖ 2 2 w p ( w | ( y 1 , x 1 ) , . . . , ( Y m , x m ) ) α 1 / Z exp ( - ‖ w ‖ 2 2 ) Π∑i∥yi−⟨w,xi⟩−b∥22 ∥w∥22 w w Zp(w|(y1,x1),...,(ym,xm))∝1/Zexp(−∥w∥22)∏iexp(∥yi−⟨w,xi⟩−b∥22) w Z certifica-se de que normaliza). Você obtém a probabilidade gaussiana da função de perda, lançando seu sinal e exponenciando-o. No entanto, se você fizer isso com a função de perda do SVM, a probabilidade de log não é um modelo probabilístico normalizável.
Existem tentativas de transformar o SVM em um. O mais notável, que eu acho que também foi implementado no libsvm, é:
John Platt: Resultados probabilísticos para máquinas de vetores de suporte e comparação com métodos de verossimilhança regularizados (NIPS 1999): http://www.cs.colorado.edu/~mozer/Teaching/syllabi/6622/papers/Platt1999.pdf
Para responder sua pergunta de maneira mais específica: a idéia nos SVMs é que, quanto mais um vetor de teste está no hiperplano, mais ele pertence a uma determinada classe (exceto quando está do lado errado, é claro). Nesse sentido, os vetores de suporte não pertencem à classe com alta probabilidade porque eles são os mais próximos ou estão do lado errado do hiperplano. O valor que você obtém da libsvm não tem nada a ver com na função de decisão. É antes a saída da função de decisão (e, portanto, deve ser chamada adequadamente ). Como ondeα α ∑i∈SVαik(x,xi)+b y y=∑i∈SVαik(x,xi)+b=⟨w,ϕ(x)⟩H+b w mora no espaço Hilbert do kernel em reprodução, é proporcional à distância sinalizada ao hiperplano. Seria se você dividisse pela norma , que em termos de kernel é .y w ∥w∥H=∑i,j∈SVαiαjk(xi,xj)−−−−−−−−−−−−−−−−−√
fonte