Teoria delle SVM: margini e vettori di supporto
Classificatore a margine massimo, margine rigido e flessibile (parametro C), vettori di supporto
Teoria delle SVM: margini e vettori di supporto è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Learn AI with Python, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Learn AI with Python include 4 lezioni in totale.
Che cos'è un SVM
Una macchina a vettori di supporto è un classificatore che individua il confine che separa meglio due classi. Invece di cercare una qualsiasi retta di separazione, cerca quella con il margine più ampio tra le classi.
L'iperpiano di separazione
In 2D il confine è una retta; in dimensioni superiori è un iperpiano. L'SVM lo definisce come w . x + b = 0 e classifica i punti in base al lato del confine in cui si trovano.
Il margine
Il margine è la distanza tra l'iperpiano e i punti più vicini di ciascuna classe. Gli SVM massimizzano questo margine perché un intervallo più ampio in genere si generalizza meglio ai nuovi dati.
Iperpiano a margine massimo
Tra tutti i confini validi, l'SVM sceglie l'iperpiano a margine massimo: quello più lontano dai punti più vicini su entrambi i lati. Questo è il principio fondamentale che rende robusti gli SVM.
Vettori di supporto
I vettori di supporto sono i punti dati più vicini al confine, cioè quelli che toccano i bordi del margine. Solo questi determinano l'iperpiano; rimuovere gli altri punti non lo modifica.
from sklearn.svm import SVC
model = SVC(kernel="linear")
model.fit(X, y)
print("Support vectors:\n", model.support_vectors_)
print("Indices:", model.support_)Perché i vettori di supporto sono importanti
Poiché solo i vettori di supporto definiscono il modello, gli SVM utilizzano poca memoria in fase di predizione e si concentrano sugli esempi più difficili e informativi vicini al confine, anziché su quelli facili e lontani.
Margine rigido
Un SVM a margine rigido richiede una separazione perfetta: nessun punto può oltrepassare il margine. Funziona solo quando i dati sono perfettamente separabili linearmente ed è molto sensibile ai valori anomali.
Il problema dei margini rigidi
I dati reali sono rumorosi e raramente perfettamente separabili. Un singolo valore anomalo può rendere impossibile un margine rigido o costringere a utilizzare un margine assurdamente sottile. È quindi necessario consentire alcuni errori.
Margine morbido
Un margine morbido consente ad alcuni punti di violare il margine o di essere classificati erroneamente, scambiando alcuni errori con un confine più ampio e robusto. Questo comportamento è controllato dal parametro C.
Il parametro C
C stabilisce la penalità per le violazioni. Un C maggiore punisce severamente gli errori e produce un margine più piccolo, adattandosi strettamente ai dati di addestramento (con rischio di overfitting). Un C minore lascia più flessibilità e produce un margine più ampio (con maggiore regolarizzazione).
from sklearn.svm import SVC
strict = SVC(C=100, kernel="linear") # narrow margin, fits closely
relaxed = SVC(C=0.1, kernel="linear") # wide margin, more tolerantRegolare C nella pratica
Scelga C con la convalida incrociata. Un valore troppo grande causa overfitting, mentre uno troppo piccolo causa underfitting. Il valore migliore bilancia l'ampiezza del margine e l'accuratezza sui dati di addestramento in base ai vostri dati.
from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC
gs = GridSearchCV(SVC(kernel="linear"), {"C": [0.01, 0.1, 1, 10, 100]}, cv=5)
gs.fit(X, y)
print("Best C:", gs.best_params_)Verifica rapida
Verifichi la sua conoscenza della teoria degli SVM.
Riepilogo
Riepilogo: gli SVM individuano l'iperpiano a margine massimo che separa le classi. I vettori di supporto sono i punti più vicini e definiscono da soli il confine. Un margine rigido richiede una separazione perfetta; un margine morbido consente violazioni controllate da C (C maggiore = margine più piccolo, minore regolarizzazione).
Domande Frequenti
La lezione «Teoria delle SVM: margini e vettori di supporto» è gratuita?
Sì — il testo completo di «Teoria delle SVM: margini e vettori di supporto» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Learn AI with Python, passa a CoddyKit PRO. Il corso Learn AI with Python include 4 lezioni in totale.
Cosa imparerò in «Teoria delle SVM: margini e vettori di supporto»?
Classificatore a margine massimo, margine rigido e flessibile (parametro C), vettori di supporto Eserciti Learn AI with Python con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Learn AI with Python?
Non è richiesta alcuna esperienza precedente. Learn AI with Python su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Teoria delle SVM: margini e vettori di supporto»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Learn AI with Python?
Sì. Ogni lezione Learn AI with Python include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Teoria delle SVM: margini e vettori di supporto
- Kernel trick: RBF, polinomiale e sigmoide
- SVM per la classificazione con sklearn
- SVM per la regressione (SVR)