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 potente e versatile utilizzato sia per compiti di classificazione che di regressione. Al suo interno, una SVM trova un iperpiano ottimale o un confine decisionale che separa al meglio i punti dati in classi diverse. Ciò che rende SVM particolarmente efficace è il suo obiettivo di massimizzare il margine, ovvero la distanza tra l'iperpiano di separazione e i punti dati più vicini di qualsiasi classe. Questo principio, dettagliato nel documento fondamentale di Cortes e Vapnik, aiuta a migliorare la capacità di generalizzazione del modello, rendendolo meno incline all'overfitting.
L'algoritmo funziona tracciando ogni elemento di dati come un punto in uno spazio n-dimensionale (dove n è il numero di caratteristiche). La classificazione viene quindi eseguita trovando l'iperpiano che crea la migliore separazione tra le classi.
Le SVM sono efficaci in molti ambiti, specialmente per problemi con dati ad alta dimensionalità.
Rispetto ad algoritmi più semplici come la Regressione Logistica, le SVM mirano a massimizzare il margine piuttosto che trovare semplicemente un confine di separazione, il che può portare a una migliore generalizzazione. A differenza dei metodi basati su alberi come gli Alberi Decisionali o le Foreste Aleatorie, le SVM costruiscono un singolo iperpiano ottimale (possibilmente in uno spazio ad alta dimensione). Mentre i moderni modelli di deep learning come Ultralytics YOLO eccellono nell'estrazione automatica delle feature da dati grezzi (come i pixel nella computer vision (CV)), le SVM spesso richiedono un'attenta ingegnerizzazione delle feature, ma possono ottenere prestazioni eccezionali su dataset più piccoli o su tipi specifici di dati strutturati in cui le feature sono ben definite. Puoi trovare molti di questi dataset nel UCI Machine Learning Repository.
Le implementazioni più comuni includono LibSVM e il modulo SVM in scikit-learn. Sebbene SVM non sia tipicamente il nucleo dei moderni framework di CV come PyTorch o TensorFlow, può essere integrato in flussi di lavoro più ampi. Il training e la gestione di tali modelli, insieme a molti altri, possono essere semplificati utilizzando piattaforme come Ultralytics HUB, che semplifica il ciclo di vita MLOps dall'etichettatura dei dati all'ottimizzazione degli iperparametri e al deployment finale del modello.