Support Vector Machine – Simplificado

Traduzido de: Support Vector Machine – Simplified

A primeira vez que ouvi o nome “Support Vector Machine”, pensei, se o próprio nome já soa tão complicado a formulação do conceito deve ser algo além da minha capacidade de entendimento.

Felizmente, assisti alguns vídeos de aulas de universidades e percebi o quão fácil e eficaz esta ferramenta é. Neste artigo, vamos falar sobre como máquina de vetores de suporte (SVMs) funcionam. Este artigo é adequado para os leitores que não sabem muito sobre esse algoritmo e têm uma curiosidade para aprender novas técnicas. Em artigos seguintes iremos explorar a técnica em detalhes e analisar casos em que tais técnicas são mais fortes do que outras.

O que é uma análise de classificação?

Vamos considerar um exemplo para entender esses conceitos. Nós temos uma população composta por 50% -50% de machos e fêmeas. Usando uma amostra desta população,  podemos criar um conjunto de regras que nos levará à classe de gênero para o restante da população. Usando esse algoritmo, queremos construir um robô que possa identificar se uma pessoa qualquer é homem ou mulher. Este é um problema de análise de amostra de classificação. Usando um conjunto de regras, vamos tentar classificar a população em dois segmentos possíveis. Para simplificar, vamos supor que os dois fatores de diferenciação identificados são: altura e comprimento do cabelo. A seguir temos  um gráfico de dispersão da amostra.

Os círculos azuis do gráfico representam as fêmeas e os quadrados verdes representam machos. Alguns ensejos já esperados a partir do gráfico são:

  1. Os machos em nossa população tem uma altura média superior.
  1. As fêmeas em nossa população tem cabelo mais comprido.

Se estivéssemos vendo um indivíduo com altura de 180 cm e comprimento do cabelo 4 cms, o nosso melhor palpite seria classificar este indivíduo como um macho. É assim que fazemos uma análise classificação.

O que é um Vetor de Apoio e o que é SVM?

Vetores de suporte são simplesmente as coordenadas de observação individual. Por exemplo, (45, 150) é um vector de apoio que corresponde a uma fêmea. Support Vector Machine é uma fronteira que melhor segrega machos das fêmeas. Neste caso, as duas classes estão bem separadas umas das outras, com o qual fica mais fácil encontrar um SVM.

Como encontrar um SVM para o caso em questão?

Há muitos fronteiras possíveis que podem classificar o problema em questão. A seguir estão as três fronteiras possíveis.

Como podemos decidir qual é a melhor fronteira para este problema em particular?

A maneira mais fácil de interpretar a função objetivo em uma SVM é encontrar a distância mínima da fronteira do vetor de suporte mais próximo (isto pode pertencer a qualquer classe). Por exemplo, a fronteira laranja é mais próxima aos círculos azuis. E o círculo azul mais próximo está a 2 unidades de distância da fronteira. Uma vez que temos essas distâncias para todas as fronteiras, nós simplesmente escolhemos a fronteira com a distância máxima (a partir do vetor de apoio mais próximo). Fora das três fronteiras mostradas, vemos a fronteira preta como a mais distante do vetor de suporte mais próximo (ou seja, 15 unidades).

E se não encontramos uma fronteira clara que separe as classes?

Nosso trabalho foi relativamente fácil de encontrar o SVM neste exemplo. E se a distribuição parecesse algo como o seguinte:

Em tais casos, não vemos uma linha de fronteira reta diretamente no plano atual, e que possa servir como o SVM. Nesses casos, precisamos mapear estes vetores a um plano dimensão mais elevada de modo que eles fiquem segregados uns dos outros. Tais casos serão cobertos quando começarmos com a formulação do SVM. Por enquanto, você pode visualizar que tal transformação resultará no seguinte tipo de SVM.

Cada quadrado verde da distribuição original é mapeado em uma escala transformada. E a escala transformada tem classes claramente segregadas. Muitos algoritmos têm sido propostos para fazer estas transformações, alguns dos quais serão discutidos em artigos subsequentes.

Notas finais

Support Vector Machines são algoritmos de classificação muito poderosos. Quando usados em conjunto com “Random forest” e outras ferramentas de aprendizagem automática, dão uma dimensão muito diferente para montagem de modelos. Assim, eles se tornam cruciais para os casos em que é necessária um poder de previsão muito elevado. Esses algoritmos são um pouco mais difíceis de visualizar devido à complexidade na formulação. Você verá que estes algoritmos são muito úteis para resolver alguns dos problemas colocados no Kaggle.

Você achou o artigo útil? Você já usou qualquer outra ferramenta de machine learning recentemente? Como você acha que SVM é diferente quando comparado com modelos CART/CHAID? Você planeja usar SVM em qualquer um dos seus problemas de negócios? Se sim, compartilhe conosco como pretende fazê-lo.


Veja também:


 

Deixe uma resposta