Máquina de Vetores de Suporte (SVM)
Descubra o poder das Máquinas de Vetores de Suporte (SVMs) para classificação, regressão e detecção de outliers, com aplicações e insights do mundo real.
A Máquina de Vectores de Suporte (SVM) é um algoritmo de aprendizagem supervisionada robusto e versátil
algoritmo de aprendizagem supervisionada robusto e versátil, utilizado principalmente
para tarefas de classificação e regressão de imagens.
Ao contrário de alguns algoritmos que se limitam a ajustar uma linha aos dados, um SVM procura o hiperplano ótimo - um limite de decisão
decisão - que melhor separa os pontos de dados em diferentes classes. A caraterística definidora de uma SVM é o seu foco em
maximizar a margem, que é a distância entre o limite de decisão e os pontos de dados mais próximos de cada
classe. Ao dar prioridade a esta separação ampla, o modelo consegue uma melhor generalização em dados não vistos, reduzindo efetivamente
reduzindo efetivamente o risco de sobreajuste em comparação com
classificadores lineares mais simples.
Mecanismos principais da SVM
Para compreender o funcionamento de uma SVM, é útil visualizar os pontos de dados representados num espaço multidimensional em que
cada dimensão representa um atributo ou caraterística específica.
-
Hiperplano ótimo: O algoritmo identifica um plano que divide o espaço da variável de entrada. Em duas
dimensões, trata-se de uma reta; em três dimensões, de um plano plano; e em dimensões superiores, de um hiperplano. O objetivo é
encontrar o hiperplano específico que mantém a distância máxima dos pontos de dados mais próximos de qualquer classe.
-
Vectores de apoio: São os pontos de dados específicos que se encontram mais próximos do limite de decisão. São
São chamados "vectores de apoio" porque essencialmente apoiam ou definem a orientação e a posição do
do hiperplano. Se remover outros pontos de dados, o limite permanece o mesmo, mas mover um vetor de apoio altera o modelo.
o modelo. Pode ler mais sobre estes vectores na documentação
documentação do Scikit-learn SVM.
-
O truque do kernel: Os dados do mundo real raramente são linearmente separáveis. As SVMs resolvem isso usando uma técnica
chamada truque do kernel, que projecta os dados num espaço de dimensão superior onde um separador linear
divide efetivamente as classes. Os kernels comuns incluem a Função de Base Radial (RBF) e kernels polinomiais, permitindo que o modelo
que permitem ao modelo lidar com relações complexas e não lineares frequentemente encontradas no
processamento de linguagem natural (PNL)
tarefas.
Aplicações no Mundo Real
Antes do advento das modernas
arquitecturas de aprendizagem profunda, as SVMs eram o
padrão para muitos problemas de visão computacional e
e reconhecimento de padrões.
-
Bioinformática e cuidados de saúde: As SVM desempenham um papel fundamental na
IA nos cuidados de saúde, nomeadamente em
problemas de classificação como a deteção de homologia remota de proteínas e a classificação do cancro com base em dados de expressão
de expressão génica. A sua capacidade de tratar dados de elevada dimensão com poucas amostras torna-as ideais para analisar conjuntos de dados biológicos complexos.
conjuntos de dados biológicos complexos.
-
Categorização de textos: No domínio da análise de dados
análise de dados, os SVMs são amplamente utilizados para
categorização de texto e hipertexto. Reduzem significativamente a necessidade de instâncias de treino rotuladas em
de instâncias de treino rotuladas em configurações de classificação de texto indutivo padrão, tornando-as eficientes para aplicações como a deteção de spam e a análise de sentimentos.
e análise de sentimentos.
-
Reconhecimento de escrita à mão: Historicamente, as SVM têm tido um desempenho excecional em tarefas de reconhecimento de dígitos manuscritos
dígitos manuscritos, tais como os encontrados no
conjunto de dadosMNIST . Enquanto as
redes neurais convolucionais (CNNs)
(CNN), as SVMs continuam a ser relevantes para a avaliação comparativa e para casos com
dados de treino limitados.
Implementação de um classificador SVM
Embora as tarefas modernas utilizem frequentemente o
Ultralytics YOLO11 para a deteção de objectos de ponta a ponta,
As SVM continuam a ser uma ferramenta poderosa para dados estruturados ou como uma camada de classificação final sobre as caraterísticas extraídas. Abaixo
é apresentado um exemplo conciso utilizando o popular scikit-learn para treinar um classificador simples.
from sklearn import svm
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
# Generate synthetic classification data
X, y = make_classification(n_features=4, random_state=0)
X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=0)
# Initialize and train the Support Vector Classifier
clf = svm.SVC(kernel="linear", C=1.0)
clf.fit(X_train, y_train)
# Display the accuracy on the test set
print(f"Accuracy: {clf.score(X_test, y_test):.2f}")
SVM vs. Algoritmos Relacionados
Distinguir a SVM de outras técnicas de aprendizagem automática ajuda a selecionar a ferramenta certa para um
projeto de modelação preditiva.
-
Regressão logística: Ambos são classificadores lineares, mas os seus objectivos de otimização são diferentes. A Regressão Logística maximiza a probabilidade dos dados
dos dados observados (probabilística), enquanto a SVM maximiza a margem geométrica entre classes. Os SVMs são geralmente mais
eficazes quando as classes estão bem separadas, enquanto a Regressão Logística fornece probabilidades calibradas.
-
K-Nearest Neighbors (KNN): O KNN é um aprendiz não paramétrico, baseado em instâncias, que classifica um ponto com base na classe maioritária dos seus
vizinhos. Em contrapartida, o SVM é um modelo paramétrico que aprende um limite global. Os SVMs geralmente oferecem uma latência de
latência de inferência mais rápida depois de treinadas, uma vez que não
precisam de armazenar todo o conjunto de dados, ao contrário do KNN.
-
Árvores de decisão: Uma árvore de decisão divide o espaço de dados em regiões rectangulares utilizando regras hierárquicas. As SVMs podem criar limites de decisão complexos,
complexos e curvos (através de kernels) que as árvores de decisão podem ter dificuldade em aproximar sem se tornarem demasiado
profundas e propensas a sobreajuste.
-
Aprendizagem profunda (por exemplo, YOLO11): As SVMs dependem muito da engenharia manual
manual, em que os peritos do domínio
selecionam entradas relevantes. Modelos modernos como o YOLO11 são excelentes na
extração automática de caraterísticas diretamente a partir de
píxeis em bruto, o que os torna superiores para tarefas complexas como a
deteção de objectos e
segmentação de instâncias.
Para os interessados na teoria fundamental, o artigo original de
Cortes e Vapnik (1995) fornece a base matemática
matemático das SVMs de margem suave utilizadas atualmente.