SVM Flashcards
Cos’è un SVM
Una SVM è un modello di ML per task di classificazione, regressione e identificare valori anomali in maniera lineare e/o non. Usato solo per dataset piccoli/medi. Un classificatore SVM cerca li separare le classi all’interno dei dati in modo da creare una strada larga più possibile. Esistono 2 tipi di classificazioni:
1. Hard margin: si impone alla SVM che tutte le istanze delle classi debbano essere fuori dalla strada, questo presuppone che i dati siano linearmente separabili ma non è sempre possibile. E se lo fosse potremmo avere la strada molto ristretta il che significa che il modello non generalizzerà in maniera corretta
2. Soft margin: consiste nel mantenere un buon bilanciamento tra il mantenere la strada più larga possibile e limitare le violazioni dei margini
Non linear classification SVM
Per gestire dati non lineari è possibile aggiungere più features, come le polinomiali, per renderli linearmente separabili. Ovviamente un grado basso del polinomio non può gestire dataset molto complessi, mentre un grado alto può rallentare il modello. Per ovviare a questo si usa un metodo matematico chiamato kernel trick. È possibile ottenere lo stesso risultato dell’utilizzare un polinomio molto alto senza il bisogno di aggiungerlo al modello.
SVM regression
Si cerca un compromesso tra larghezza della strada e violazioni di questa. Un classificatore SVM predice le classi elaborando la funzione di decisione.
Effettuare il training di un SVM significa trovare “w” tale che il margine sia il più largo possibile per evitare violazioni. W vettore dei pesi. L’obiettivo è minimizzare w.