Um SVM, sigla para support vector machine, é um classificador que escolhe uma fronteira entre classes com a maior margem possível. Se você está procurando o que é um SVM, essa é a ideia central: não basta separar os grupos, é preciso deixar o maior espaço confiável possível entre eles.

Os pontos mais próximos dessa fronteira são chamados de vetores de suporte. Eles são os mais importantes porque determinam onde o separador pode ficar.

Por que a margem importa

Imagine dois grupos de pontos, um da classe A e outro da classe B. Muitas retas podem separá-los. Um SVM prefere a reta que deixa a maior faixa de segurança dos dois lados.

Essa margem mais ampla costuma tornar o classificador menos sensível a pequenas mudanças nos dados de treino. Isso não garante melhor desempenho no mundo real, mas é a principal intuição por trás dos SVMs.

Como é a fronteira de decisão de um SVM

Em um SVM linear, a fronteira de decisão é um hiperplano:

wx+b=0w \cdot x + b = 0

O classificador prevê uma classe quando wx+b>0w \cdot x + b > 0 e a outra quando wx+b<0w \cdot x + b < 0.

Na escala padrão de margem máxima para dados separáveis, o SVM escolhe ww e bb de modo que

yi(wxi+b)1y_i(w \cdot x_i + b) \ge 1

para cada ponto de treino, enquanto torna a margem o maior possível. Nessa escala, a largura total da margem é

2w.\frac{2}{\|w\|}.

A ideia prática importante é mais simples do que a fórmula: um w\|w\| menor significa uma margem mais larga nessa configuração normalizada.

Exemplo resolvido: um SVM unidimensional

Um exemplo em uma dimensão facilita visualizar a ideia de margem.

Suponha que a classe negativa tenha pontos em x=0x=0 e x=1x=1, e a classe positiva tenha pontos em x=4x=4 e x=5x=5.

Qualquer limiar entre 11 e 44 separa as classes. Por exemplo, x=2x=2 funciona e x=3x=3 também funciona, mas essas escolhas não deixam a mesma folga em cada lado.

Nesse caso separável em uma dimensão, o SVM escolhe o ponto médio entre os pontos mais próximos de classes opostas, então o limiar de decisão é

x=2.5.x = 2.5.

O ponto negativo mais próximo é x=1x=1, e o ponto positivo mais próximo é x=4x=4. Esses são os vetores de suporte. Cada um está a 1.51.5 unidades da fronteira, então a margem fica equilibrada e tão larga quanto possível.

Você pode escrever o classificador aqui como "preveja positivo quando x>2.5x > 2.5 e negativo quando x<2.5x < 2.5". Esse caso simples captura a ideia real: a fronteira é determinada pelos casos difíceis que estão por perto, não pelos pontos distantes que já são fáceis de classificar.

SVM hard-margin vs soft-margin

Um SVM hard-margin só funciona quando os dados de treino são perfeitamente separáveis de forma linear. Se até um único ponto violar essa condição, a configuração hard-margin não se ajusta aos dados.

É por isso que muitos SVMs práticos usam margem suave. Um SVM soft-margin ainda prefere uma margem larga, mas permite que alguns pontos caiam dentro da margem ou até no lado errado da fronteira, com uma penalização.

O parâmetro CC controla esse equilíbrio. Um CC maior penaliza mais fortemente as violações. Um CC menor permite mais flexibilidade. Nenhuma das escolhas é automaticamente melhor; isso depende dos dados e deve ser verificado com desempenho de validação.

Quando SVMs com kernel ajudam

Às vezes, uma fronteira reta não é suficiente no espaço original de características. Um SVM com kernel lida com isso comparando pontos por meio de uma função kernel, o que pode tornar possível uma fronteira curva sem escrever explicitamente um enorme vetor de características transformadas.

A condição principal é que essa flexibilidade extra só ajuda se o padrão dos dados realmente precisar disso. Kernels podem melhorar um modelo, mas também podem tornar o ajuste mais difícil, então devem ser validados em vez de escolhidos por padrão.

Erros comuns com SVM

Achar que todos os pontos importam igualmente

Em um SVM, os pontos mais próximos são os que mais importam. Pontos distantes da fronteira muitas vezes têm pouco efeito no separador final.

Esquecer a condição por trás da hard margin

Separabilidade linear perfeita é uma condição real, não uma suposição padrão. Se as classes se sobrepõem, você precisa de uma soft margin ou de outro modelo.

Ignorar o escalonamento das características

SVMs dependem de distâncias e produtos escalares. Se uma característica for medida em uma escala muito maior que outra, ela pode dominar a fronteira, a menos que você escale as entradas primeiro.

Supor que um kernel é automaticamente melhor

Uma fronteira mais flexível pode se ajustar melhor aos dados de treino, mas isso não significa automaticamente que ela vai generalizar melhor.

Onde os SVMs são usados

SVMs são usados em problemas de classificação nos quais a fronteira entre classes pode ser relativamente nítida e em que o raciocínio baseado em margem é útil. Eles são especialmente comuns em problemas tabulares de pequeno a médio porte e em classificação de texto, onde espaços de características de alta dimensão são comuns.

Eles também são usados para regressão em um método relacionado chamado support vector regression, mas essa é uma configuração diferente do cenário de classificação binária explicado aqui.

Tente um problema parecido com SVM

Pegue os pontos unidimensionais do exemplo e adicione um novo ponto negativo em x=2.2x=2.2. Agora a faixa limpa e ampla desapareceu. Pergunte o que muda se você insistir em uma hard margin, e o que muda se permitir uma soft margin. Essa comparação costuma ser a forma mais rápida de fazer os SVMs fazerem sentido.

Precisa de ajuda com um problema?

Envie sua pergunta e receba uma solução verificada, passo a passo, em segundos.

Abrir GPAI Solver →