Macchina a vettori di supporto (SVM)
Scopri la potenza delle Support Vector Machines (SVM) per la classificazione, la regressione e il rilevamento di outlier, con applicazioni e approfondimenti reali.
La Support Vector Machine (SVM) è un algoritmo di apprendimento supervisionato robusto e versatile, usato principalmente
algoritmo di apprendimento supervisionato utilizzato principalmente
per la classificazione e la regressione delle immagini.
A differenza di alcuni algoritmi che si limitano ad adattare una linea ai dati, una SVM cerca l'iperpiano ottimale - un confine decisionale - che separa al meglio i punti dei dati in classi diverse.
che separa al meglio i punti di dati in classi diverse. La caratteristica distintiva di un SVM è la sua attenzione alla
massimizzare il margine, che è la distanza tra il confine decisionale e i punti dati più vicini di ciascuna classe.
classe. Privilegiando questa ampia separazione, il modello ottiene una migliore generalizzazione su dati non visti, riducendo di fatto il rischio di overfitting rispetto alla classe di appartenenza.
ridurre il rischio di overfitting rispetto ai classificatori lineari più semplici.
classificatori lineari più semplici.
Meccanismi fondamentali di SVM
Per comprendere il funzionamento di una SVM, è utile visualizzare i punti di dati tracciati in uno spazio multidimensionale, dove ogni dimensione rappresenta un attributo o una caratteristica specifica.
ogni dimensione rappresenta un attributo o una caratteristica specifica.
-
Iperpiano ottimale: L'algoritmo identifica un piano che divide lo spazio delle variabili in ingresso. In due dimensioni, si tratta di una linea; in tre dimensioni, di un piano
dimensioni, si tratta di una linea; in tre dimensioni, di un piano piatto; in dimensioni superiori, di un iperpiano. L'obiettivo è
trovare l'iperpiano specifico che mantiene la massima distanza dai punti dati più vicini di qualsiasi classe.
-
Vettori di supporto: Sono i punti di dati specifici che si trovano più vicini al confine decisionale. Sono chiamati "vettori di supporto" perché
vettori di supporto" perché essenzialmente supportano o definiscono l'orientamento e la posizione dell'iperpiano.
dell'iperpiano. Se si rimuovono altri punti di dati, il confine rimane invariato, ma lo spostamento di un vettore di supporto modifica il modello.
il modello. Per saperne di più su questi vettori, consultare la documentazione di
Scikit-learn SVM.
-
Il trucco del kernel: I dati del mondo reale raramente sono linearmente separabili. Le SVM risolvono questo problema utilizzando una tecnica
tecnica chiamata trucco del kernel, che proietta i dati in uno spazio di dimensioni superiori dove un separatore lineare divide efficacemente le classi.
divide efficacemente le classi. I kernel più comuni includono la funzione di base radiale (RBF) e i kernel polinomiali, che permettono al modello di gestire
di gestire relazioni complesse e non lineari, spesso riscontrabili nell'elaborazione del linguaggio naturale (NLP).
elaborazione del linguaggio naturale (NLP)
compiti.
Applicazioni nel mondo reale
Prima dell'avvento delle moderne
architetture di deep learning, le SVM rappresentavano il gold
standard per molti problemi di computer vision e di
riconoscimento dei modelli.
-
Bioinformatica e sanità: Le SVM svolgono un ruolo fondamentale
IA nella sanità, in particolare in
problemi di classificazione come l'individuazione dell'omologia remota delle proteine e la classificazione dei tumori basata su dati di espressione genica
dati di espressione genica. La loro capacità di gestire dati ad alta dimensionalità con pochi campioni le rende ideali per l'analisi di insiemi di dati biologici complessi.
complessi insiemi di dati biologici.
-
Categorizzazione del testo: Nel campo dell'analisi dei
di analisi dei dati, le SVM sono ampiamente utilizzate per la categorizzazione di testi e
e ipertesti. Riducono in modo significativo la necessità di istanze di addestramento etichettate nelle impostazioni standard di classificazione
classificazione induttiva del testo, rendendole efficienti per applicazioni come il rilevamento dello spam e l'analisi del sentiment.
analisi del sentiment.
-
Riconoscimento della scrittura a mano: Le SVM hanno storicamente ottenuto risultati straordinari nei compiti di riconoscimento delle cifre
come quelli presenti nel dataset MNIST.
MNIST . Mentre
reti neurali convoluzionali (CNN)
hanno preso il sopravvento, le SVM rimangono importanti per il benchmarking e per i casi in cui i dati di addestramento sono limitati.
dati di addestramento limitati.
Implementazione di un classificatore SVM
Sebbene le attività moderne utilizzino spesso il
Ultralytics YOLO11 per il rilevamento di oggetti end-to-end,
Le SVM rimangono uno strumento potente per i dati strutturati o come strato di classificazione finale in cima alle caratteristiche estratte. Di seguito
è un esempio conciso che utilizza il popolare scikit-learn per addestrare un semplice classificatore.
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 e altri algoritmi simili
Distinguere SVM da altre tecniche di apprendimento automatico aiuta a selezionare lo strumento giusto per un progetto di modellazione predittiva.
progetto di modellazione predittiva.
-
Regressione logistica: Entrambi sono classificatori lineari, ma i loro obiettivi di ottimizzazione differiscono. La Regressione Logistica massimizza la probabilità dei dati osservati (probabilistica), mentre SVM massimizza il margine geometrico tra le classi.
dei dati osservati (probabilistica), mentre SVM massimizza il margine geometrico tra le classi. Le SVM sono generalmente più
efficaci quando le classi sono ben separate, mentre la Regressione Logistica fornisce probabilità calibrate.
-
K-Nearest Neighbors (KNN): KNN è un learner non parametrico, basato sull'istanza, che classifica un punto in base alla classe maggioritaria dei suoi
vicini. Al contrario, SVM è un modello parametrico che apprende un confine globale. Gli SVM offrono in genere una latenza di inferenza più
latenza di inferenza una volta addestrati, in quanto non devono
non hanno bisogno di memorizzare l'intero set di dati, a differenza di KNN.
-
Alberi decisionali: Un albero decisionale divide lo spazio dei dati in regioni rettangolari utilizzando regole gerarchiche. Le SVM possono creare confini decisionali complessi
confini decisionali complessi e curvilinei (tramite kernel) che gli alberi decisionali potrebbero faticare ad approssimare senza diventare eccessivamente
senza diventare troppo profondi e inclini all'overfitting.
-
Apprendimento profondo (ad esempio, YOLO11): Le SVM si basano molto sull'ingegnerizzazione
manuale delle caratteristiche, in cui gli esperti del dominio
selezionano gli input rilevanti. Modelli moderni come YOLO11 eccellono nell'estrazione
estrazione automatica delle caratteristiche direttamente dai pixel grezzi, rendendoli
pixel grezzi, rendendoli superiori per attività complesse come il
rilevamento di oggetti e
segmentazione delle istanze.
Per coloro che sono interessati alla teoria fondamentale, l'articolo originale di
Cortes e Vapnik (1995) fornisce le basi matematiche delle
matematico delle SVM a margine morbido utilizzate oggi.