SVM - Support Vector Machine
Proposto em 1995 pelo russo Vladimir Vapnik, o SVM é uma poderosa metodologia para resolver problemas de aprendizado de máquina, este algoritmo é considerado um classificador binário e não probabilístico, pois a partir do conjunto de dados, o algoritmo gera para cada entrada, qual de duas possíveis classes a entrada pertence. O algoritmo consiste em um método de aprendizado que tenta encontrar a maior margem para separar diferentes classes de dados, pertence à classe de algoritmos de aprendizado supervisionado. A essência do SVM é a construção de um hiperplano ótimo, de modo que ele possa separar diferentes classes de dados com a maior margem possível.
Analisaremos um algoritmo SVM Linear. Como separar essas duas classes?
Note que é possível traçar várias retas para separar os objetos, devemos verificar agora a melhor solução:
Verificamos agora o hiperplano ótimo:
Notamos na figura interior o uso dos vetores de suporte que servem para definir qual será o hiperplano ótimo, os vetores de suporte são o exemplo dos treinamentos realmente importantes, os demais treinamentos são irrelevantes, estes vetores são encontrados durante as fases de treinamentos. Observaremos agora como encontramos o hiperplano ótimo em outras dimensões, a partir dos vetores de suporte:
Espaço em 1D (ponto):
Espaço em 3D (plano):
Após analisarmos os SVM lineares, notamos que alguns problemas não podem ser solucionados linearmente, na verdade a maioria dos problemas não podem ser modelados linearmente, o que fazer? Para solucionarmos este tipo de problema, mapeamos as bases de dados para um espaço de dimensão maior:
Aumentamos a dimensão do espaço, para que assim possamos calcular o conjunto de treinamentos em espaços lineares menores separados um a um:
Utilizamos uma função que auxilia os cálculos, denominada função de Kernel. Apesar do