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:
O classificador prevê uma classe quando e a outra quando .
Na escala padrão de margem máxima para dados separáveis, o SVM escolhe e de modo que
para cada ponto de treino, enquanto torna a margem o maior possível. Nessa escala, a largura total da margem é
A ideia prática importante é mais simples do que a fórmula: um 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 e , e a classe positiva tenha pontos em e .
Qualquer limiar entre e separa as classes. Por exemplo, funciona e 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 é
O ponto negativo mais próximo é , e o ponto positivo mais próximo é . Esses são os vetores de suporte. Cada um está a 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 e negativo quando ". 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 controla esse equilíbrio. Um maior penaliza mais fortemente as violações. Um 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 . 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 →