Support vector machines e metodi kernel
In questa pagina 10
Questa nota riprende il problema della classificazione binaria già visto con il Halfspace e PerceptronUn halfspace (semispazio) classifica con un iperpiano: $h(x)=\operatorname{sign}(w^Tx+b)$, con $w$ normale al piano e $|w^Tx+b|/|w|$ distanza dal piano; aggiungendo una componente costante $1$ a $x$ si scrive $\operatorname{sign}(\tilde w^T\tilde x)$. Il Perceptron (Rosenblatt, 1958) è il neurone con attivazione a gradino e impara con una regola semplice: per ogni errore $y_i,w^Tx_i\le0$ si aggiorna $w\leftarrow w+y_ix_i$. Teorema di convergenza (Novikoff): se i dati sono linearmente separabili con margine $\gamma$ ($y_iw^{T}x_i\ge\gamma$, $|w^|=1$) e $|x_i|\le R$, il Perceptron fa al più $(R/\gamma)^2$ errori e si ferma. Non risolve problemi non separabili (XOR), non ha un criterio di margine ottimale (le SVM sì) e il suo analogo morbido è la regressione logistica. Programma di Telecomunicazioni: halfspace model, Perceptron.Halfspace e Perceptron → e con la Regressione logistica e softmaxLa regressione lineare non è adatta alla classificazione (valori fuori da [0,1], retta tirata dai punti lontani). La regressione logistica passa il predittore lineare dalla sigmoide $\sigma(z)=1/(1+e^{-z})$ e interpreta $\hat y=\sigma(x^T\beta)$ come $P(y=1\mid x)$: si predice la classe 1 se $\hat y\ge0{,}5$, cioè $x^T\beta\ge0$ (bordo lineare). L'errore quadratico dà una funzione non convessa; si usa la log-verosimiglianza negativa $-\sum[y\log\hat y+(1-y)\log(1-\hat y)]$, convessa, con gradiente $X^T(\hat y-y)$ e nessuna formula chiusa (discesa del gradiente). Per più classi: one-vs-one ($C(C-1)/2$ classificatori, voto), one-vs-all ($C$ classificatori, massima probabilità), o la softmax $p_c=e^{z_c}/\sum_ke^{z_k}$ con cross-entropia. Si può regolarizzare (ridge, LASSO, Elastic Net) e la cross-validation si fa stratificata. Approfondimento: non nel programma di Telecomunicazioni.Regressione logistica e softmax →: si vuole un classificatore lineare, cioè un iperpiano che divide lo spazio in due semispazi, uno per classe. La domanda è: tra gli infiniti iperpiani che separano i dati di addestramento, quale scegliere? La risposta delle SVM è «quello più lontano da tutti i punti», e da questa idea geometrica escono il modello, il problema di ottimizzazione, la tolleranza agli errori e, con il kernel trick, anche i bordi curvi.
Le etichette sono (non ): serve per scrivere in una sola disuguaglianza la condizione «il punto sta dal lato giusto».
1. Perché il margine
Con due classi e un bordo di decisione (decision boundaryla soglia che separa le due classi), ogni nuova osservazione viene classificata dal lato in cui cade. Se i dati sono separabili esistono molti bordi con zero errori di addestramento: sono tutti uguali per il training set, ma non per i dati futuri. Il bordo che passa a metà tra le due classi è quello che «sbaglia meno» quando arriva un punto nuovo, perché lascia lo stesso spazio di errore da entrambe le parti.
Definizione (margine). Il margine è la distanza tra il bordo di decisione e le osservazioni di ciascuna classe più vicine ad esso. Il classificatore a margine massimo (maximal margin classifier) è il classificatore lineare che sceglie l'iperpiano per cui questa distanza è la più grande possibile.
I punti che toccano il margine si chiamano vettori di supporto (support vectors): sono gli unici che «sostengono» la soluzione. Se si sposta un punto lontano dal margine, o lo si toglie, l'iperpiano non cambia; se si sposta un vettore di supporto, cambia.
2. Geometria: iperpiano, distanza, margine
Servono il prodotto scalare e la norma (Prodotto scalare, norma e angoliIl prodotto scalare aggiunge a uno spazio vettoriale lunghezze e angoli: norma, disuguaglianza di Cauchy-Schwarz, angolo tra vettori in R^n, ortogonalità, proiezione su una retta, aree e volumi con il determinante della matrice dei prodotti scalari.Prodotto scalare, norma e angoli →, Norma, distanza e prodotto scalare in RnIn Rⁿ la norma è |x| = √(x₁² + … + xₙ²) e la distanza tra x e y è |x − y|. Valgono la disuguaglianza triangolare |x + y| ≤ |x| + |y| e quella di Cauchy-Schwarz |x·y| ≤ |x||y|, con uguaglianza solo per vettori paralleli. Palle B(p,r] e cubi Q(p,r] si contengono a vicenda: B(p,r] ⊆ Q(p,r] ⊆ B(p,r√n]. Rette, piani, ellissi e cilindri si riconoscono dall'equazione (completando i quadrati).Norma, distanza e prodotto scalare in Rn →). Un iperpiano in è l'insieme , con vettore dei pesi (normale all'iperpiano: ogni vettore tra due punti del piano soddisfa , cioè è ortogonale a ) e il bias (intercetta). La regola di classificazione è
Formula (distanza di un punto dall'iperpiano).
Perché. Sia la proiezione ortogonale di sull'iperpiano: allora con la distanza con segno (il vettore è unitario e ortogonale al piano). Si calcola , perché sta sul piano. Da qui .
Esempio. Piano , quindi , , . Il punto dista .
Normalizzazione
La stessa retta si descrive con infinite coppie : e sono lo stesso piano (l'equazione non cambia moltiplicando tutto per ). Si sfrutta questa libertà per fissare la scala. Se il punto più vicino al piano ha , si dividono e per : il piano è lo stesso, ma ora quel punto ha e tutti gli altri hanno valore . Con le etichette la condizione che tutti i punti stiano dal lato giusto e almeno a quella distanza diventa una sola riga:
Il segno di fa sì che per la classe si richieda e per la classe si richieda . I vettori di supporto sono i punti con l'uguaglianza. Il piano centrale è e i due piani paralleli che toccano i vettori di supporto sono e .
Formula (larghezza del margine). Con la normalizzazione precedente, la distanza dal piano centrale a ciascun piano parallelo è e il margine totale è
Esempio. Con si ha , quindi un margine di per lato e in totale.
Perché . Un vettore di supporto ha ; per la formula della distanza la sua distanza dal piano centrale è . I due lati (classe e classe ) contribuiscono ciascuno , da cui .
Conseguenza: massimizzare il margine equivale a minimizzare la norma di . Una piccola vuol dire un piano poco «ripido», quindi i piani sono lontani tra loro.
3. Il problema di ottimizzazione (margine rigido)
Passaggi di equivalenza: massimizzare è come massimizzare (la costante non sposta il massimo), e questo è come minimizzare (il reciproco è decrescente per valori positivi). Poiché è crescente per , minimizzare è come minimizzare , e moltiplicare per la costante positiva non cambia dove sta il minimo. Si ottiene , una funzione quadratica derivabile ovunque; il si sceglie perché il suo gradiente è semplicemente (Gradiente e direzione di massima crescitaIl gradiente è il vettore delle derivate parziali ∇f(p) = (∂₁f(p), …, ∂ₙf(p)). Se f è C¹ (derivate parziali continue) vale la formula del gradiente D_u f(p) = ∇f(p)·u: tutte le derivate direzionali si ottengono dalle parziali e u ↦ D_u f(p) è lineare. Tra i versori, la crescita è massima lungo ∇f/|∇f| (pendenza |∇f|), minima lungo −∇f/|∇f| (pendenza −|∇f|), nulla lungo le direzioni ortogonali al gradiente. Utili: ∇|x| = x/|x|, ∇φ(|x|) = φ'(|x|) x/|x|.Gradiente e direzione di massima crescita →).
Formula (SVM a margine rigido, hard margin).
È un problema di programmazione quadratica convessa: funzione obiettivo convessa (una somma di quadrati, Funzioni convesse in più variabiliUn insieme C è convesso se contiene il segmento tra due suoi punti; f: C → R è convessa se f(tx + (1−t)y) ≤ t f(x) + (1−t) f(y) per t in [0,1], cioè il grafico sta sotto le corde. Se f è differenziabile, è convessa se e solo se f(y) ≥ f(x) + ∇f(x)·(y − x) (il grafico sta sopra ogni piano tangente). Se f è C² su un aperto convesso, è convessa se e solo se l'hessiana è semidefinita positiva in ogni punto; se è definita positiva ovunque f è strettamente convessa (non vale il viceversa: x⁴). Per una funzione convessa ogni punto critico è un minimo globale.Funzioni convesse in più variabili →) e vincoli lineari. Ha quindi un unico minimo globale (nessun minimo locale, a differenza delle reti neurali) e si risolve con algoritmi dedicati; il più usato per le SVM è la Sequential Minimal Optimization (SMO), che ottimizza due moltiplicatori alla volta. Una discesa del gradiente sul vincolo non è la scelta naturale; ha senso solo per la versione con hinge loss del paragrafo 5.
Esempio numerico completo
Dati in : classe : ; classe : .
Grafico interattivo: Margine massimo: bordo x1+x2=4 (continuo), margini x1+x2=2 e x1+x2=6 (tratteggiati). I vettori di supporto sono (1,1) e (3,3).
I due punti più vicini tra classi diverse sono e , distanti . Il piano che li separa col massimo margine è l'asse del segmento che li unisce: passa per il punto medio ed è perpendicolare a , quindi . Per portare i due punti su si cerca con e : sottraendo, , cioè , e . Risultato:
Verifica sui sei punti (): ; ; ; ; ; . Tutti , e solo e valgono esattamente : sono i vettori di supporto. Il margine totale è , uguale alla distanza tra i due vettori di supporto, come deve essere. (Il risultato si controlla anche cercando, tra tutte le ammissibili, quella con minima.)
4. Forma duale: perché la SVM dipende dai prodotti scalari
Questo passaggio non cambia la soluzione, ma spiega i vettori di supporto e rende possibile il kernel. Si usa il metodo dei moltiplicatori di Lagrange (Massimi e minimi vincolati e moltiplicatori di LagrangeGli estremi di f sul vincolo g = c si cercano per sostituzione, per parametrizzazione o con i moltiplicatori di Lagrange: se f, g sono C¹, P0 è un estremo vincolato e ∇g(P0) ≠ 0, esiste λ con ∇f(P0) = λ∇g(P0) (curva di livello di f tangente al vincolo). Si risolve il sistema ∇f = λ∇g, g = c, si aggiungono i punti del vincolo con ∇g = 0 e si confrontano i valori; se il vincolo è compatto, Weierstrass garantisce massimo e minimo.Massimi e minimi vincolati e moltiplicatori di Lagrange →), qui con vincoli di disuguaglianza. Il problema è: minimizzare con i vincoli . A ogni vincolo si associa un moltiplicatore e si forma la lagrangiana (si sottrae perché violare il vincolo, , deve aumentare e quindi essere penalizzato):
Passo 1: annullare il gradiente rispetto alle variabili primali ( e ), perché nel minimo la lagrangiana è stazionaria. Si ricordano e :
- ;
- (il termine è l'unico che contiene ).
Passo 2: sostituire in . Si espande e si calcolano i quattro pezzi con . Sia .
- ;
- ;
- per il passo 1;
- resta.
Quindi : sono scomparsi e . Massimizzando questa espressione rispetto agli (con il vincolo ricavato prima) si ottiene il problema duale:
Formula (forma duale). Il classificatore è , perché .
Nel duale si massimizza perché il duale è il minimo della lagrangiana sulle variabili primali: per ogni ammissibile dà un limite inferiore al valore del primale, e il miglior limite si trova massimizzando.
Tre fatti importanti:
- Le condizioni KKT (le condizioni di ottimo per i problemi con vincoli di disuguaglianza) includono la complementarità : il prodotto di due termini non negativi è zero, quindi o o il vincolo è attivo (vale l'uguaglianza). Se un punto è strettamente oltre il margine () allora . Solo i vettori di supporto hanno , quindi è una combinazione di pochi punti.
- I dati compaiono solo come prodotti scalari : è la porta d'ingresso del kernel (paragrafo 7).
- Il duale è concavo: si risolve con SMO.
Esempio. Nell'esempio i vettori di supporto sono due, con per . Da si ricava ; gli altri quattro punti hanno . Si controlla che il valore del duale coincide con il valore del primale .
5. Dati non separabili: margine morbido (soft margin)
Il margine rigido ha due difetti: (i) se le classi si sovrappongono il problema non ha soluzione; (ii) anche se esiste, basta un solo outlier a spostare il piano. Nell'esempio 1D delle slide, un punto di una classe che cade tra l'altra classe obbliga un margine rigido a un'unica soglia stretta, cioè overfitting e alta varianza.
Si accetta allora di sbagliare qualcosa sul training: si sceglie una soglia che consente qualche punto dentro il margine o dal lato sbagliato, per ridurre la varianza al prezzo di un po' di bias. Il margine ottenuto così si chiama margine morbido (soft margin) e il classificatore Support Vector Classifier (SVC).
Per ogni punto si introduce una variabile di scarto (slack) che misura di quanto viola il vincolo:
Formula (SVM a margine morbido).
Interpretazione di per un punto con :
- : il punto è fuori dal margine, dal lato giusto ();
- : è dentro il margine ma ancora dal lato giusto;
- : è dal lato sbagliato del piano, cioè mal classificato ().
Il valore minimo di che soddisfa il vincolo è .
Perché . Il vincolo dice e ; la funzione obiettivo cresce con (c'è con ), quindi il valore migliore è il più piccolo ammesso, cioè il maggiore tra i due limiti inferiori e . Se il primo è negativo e vince ; se vince .
Il parametro nel duale. Si procede come nel paragrafo 4, con un moltiplicatore per il vincolo del margine e per : . La derivata rispetto a è , quindi (perché ). Il resto è identico: il duale è lo stesso, con un vincolo in più, . I punti con sono quelli dentro il margine o mal classificati; quelli esattamente sul margine; quelli fuori. Tutti con sono vettori di supporto.
Grafico interattivo: Margine morbido: lo stesso piano con due punti di classe +1 che violano il margine. (2,5; 2) è dentro il margine (ξ = 0,75), (3; 0,5) è dal lato sbagliato (ξ = 1,25)
Esempio. Con , e un punto di classe in : , quindi (dentro il margine, ma dal lato corretto). Un punto di classe in ha e : mal classificato.
Il parametro
regola quanto costa uno scarto rispetto alla larghezza del margine.
| piccolo | grande | |
|---|---|---|
| peso degli errori | basso | alto |
| margine | largo, tollera molti errori | stretto, quasi rigido |
| rischio | underfitting (bias alto) | overfitting (varianza alta) |
| equivale a | regolarizzazione forte | regolarizzazione debole |
Il compromesso bias-varianza (Overfitting, ridge regression e cross-validationUna buona prestazione sul training non basta: serve stimare quella su dati nuovi. La cross-validation (K-fold: $k$ parti, ciascuna a turno come test, errore medio; Monte Carlo: $k$ divisioni casuali con quota di test $q$; leave-one-out se $k=n$) evita di dipendere da una sola divisione casuale. L'errore atteso si scompone in $\text{bias}^2+\text{varianza}+\sigma^2$: i modelli semplici fanno underfitting (bias alto), quelli complessi overfitting (varianza alta). La regolarizzazione aggiunge alla perdita una penalità: la ridge regression minimizza $|y-X\beta|^2+\lambda\sum_{j\ge1}\beta_j^2$ e ha soluzione $\beta=(X^TX+\lambda\tilde I)^{-1}X^Ty$ (l'intercetta non si penalizza, le feature si standardizzano): riduce i coefficienti, rende l'inversa stabile con feature collineari, e $\lambda$ è un iperparametro scelto con la validazione (cross-validation annidata per non contaminare il test).Overfitting, ridge regression e cross-validation →) si regola scegliendo per cross-validation. Sull'Iris con due classi (Virginica contro Versicolour) e due soli attributi del petalo, le slide riportano l'accuratezza in cross-validation al crescere di : per , per e , per , per . Il margine passa da larghissimo (molti errori ammessi) a quasi invisibile (si cerca di classificare tutto il training), ma qui le differenze sono piccole perché le due classi sono quasi separabili: l'effetto di si vede soprattutto sulla posizione dei vettori di supporto e sulla stabilità del piano.
Hinge loss: lo stesso problema come funzione di perdita
Sostituendo in il valore minimo trovato sopra, il soft margin diventa un problema senza vincoli nelle sole :
La funzione è la hinge loss: zero se , cresce linearmente se . È una versione convessa dell'errore di classificazione. Il termine è una regolarizzazione come nella ridge regression (Overfitting, ridge regression e cross-validationUna buona prestazione sul training non basta: serve stimare quella su dati nuovi. La cross-validation (K-fold: $k$ parti, ciascuna a turno come test, errore medio; Monte Carlo: $k$ divisioni casuali con quota di test $q$; leave-one-out se $k=n$) evita di dipendere da una sola divisione casuale. L'errore atteso si scompone in $\text{bias}^2+\text{varianza}+\sigma^2$: i modelli semplici fanno underfitting (bias alto), quelli complessi overfitting (varianza alta). La regolarizzazione aggiunge alla perdita una penalità: la ridge regression minimizza $|y-X\beta|^2+\lambda\sum_{j\ge1}\beta_j^2$ e ha soluzione $\beta=(X^TX+\lambda\tilde I)^{-1}X^Ty$ (l'intercetta non si penalizza, le feature si standardizzano): riduce i coefficienti, rende l'inversa stabile con feature collineari, e $\lambda$ è un iperparametro scelto con la validazione (cross-validation annidata per non contaminare il test).Overfitting, ridge regression e cross-validation →); è l'inverso della forza di regolarizzazione: dividendo l'obiettivo per (stesso minimo) si ottiene , cioè una loss più una penalità con .
Grafico interattivo: Perdite in funzione del margine m = y(w·x+b): hinge e logistica penalizzano linearmente gli errori, la 0-1 è un gradino non derivabile
Un confronto utile con la regressione logistica (Regressione logistica e softmaxLa regressione lineare non è adatta alla classificazione (valori fuori da [0,1], retta tirata dai punti lontani). La regressione logistica passa il predittore lineare dalla sigmoide $\sigma(z)=1/(1+e^{-z})$ e interpreta $\hat y=\sigma(x^T\beta)$ come $P(y=1\mid x)$: si predice la classe 1 se $\hat y\ge0{,}5$, cioè $x^T\beta\ge0$ (bordo lineare). L'errore quadratico dà una funzione non convessa; si usa la log-verosimiglianza negativa $-\sum[y\log\hat y+(1-y)\log(1-\hat y)]$, convessa, con gradiente $X^T(\hat y-y)$ e nessuna formula chiusa (discesa del gradiente). Per più classi: one-vs-one ($C(C-1)/2$ classificatori, voto), one-vs-all ($C$ classificatori, massima probabilità), o la softmax $p_c=e^{z_c}/\sum_ke^{z_k}$ con cross-entropia. Si può regolarizzare (ridge, LASSO, Elastic Net) e la cross-validation si fa stratificata. Approfondimento: non nel programma di Telecomunicazioni.Regressione logistica e softmax →): entrambe penalizzano gli errori in modo approssimativamente lineare, ma la hinge è esattamente zero oltre il margine, quindi i punti già ben classificati non contribuiscono (è per questo che solo i vettori di supporto contano). La logistica ha una coda sempre positiva e dà anche probabilità; la SVM dà soltanto una distanza dal piano.
6. Bordi non lineari: espansione di base
Se i dati non sono separabili da un iperpiano nello spazio originale, si può comunque separarli in uno spazio più grande. Esempio 1D: punti di una classe in e dell'altra in : nessuna soglia sulla retta li divide. Si aggiunge la coordinata e si lavora nel piano : ora la retta li separa (è una soglia sul quadrato).
In generale si sceglie una mappa di feature con e si costruisce l'SVM sui vettori : il bordo è lineare in e curvo in . Per un punto la mappa polinomiale di grado 2 è
Il costo. Con attributi e grado le nuove dimensioni crescono come : con e sono oltre . Calcolare e memorizzare diventa impossibile. Il kernel trick evita questo calcolo.
7. Il kernel trick
Nel duale i dati entrano solo attraverso . Dopo l'espansione di base compare . Se esiste una funzione che calcola direttamente quel numero senza costruire , non serve mai lavorare nello spazio grande.
Definizione (kernel). Una funzione è un kernel se vale per una certa mappa . Misura la «somiglianza» di e : grande per punti simili, piccola per punti dissimili. Una SVM (Support Vector Machine) è un SVC in cui è sostituito dal kernel:
Esempio (kernel polinomiale di grado 2). Con del paragrafo precedente si dimostra : si espande il quadrato, , e si osserva che i sei addendi sono i prodotti delle sei componenti corrispondenti di e (per esempio ); da qui il fattore nella mappa. Numericamente, per , : , e . Con il kernel: e . Stesso risultato con un solo prodotto scalare in invece di uno in .
Kernel principali
| kernel | formula | note |
|---|---|---|
| lineare | è la SVM lineare | |
| polinomiale | grado; ha tutti i monomi fino al grado | |
| RBF (gaussiano) | ha dimensione infinita; è il più usato | |
| sigmoide | richiama il neurone di una rete |
Perché la mappa dell'RBF ha dimensione infinita. Si sviluppa il quadrato della norma, , quindi . L'ultimo fattore si scrive con la serie dell'esponenziale (Serie di potenze e serie di TaylorLe serie di potenze sono serie di funzioni della forma $\sum a_n(x-x_0)^n$. Esse convergono assolutamente all'interno del raggio di convergenza $\rho$ e uniformemente nei compatti interni, permettendo l'integrazione e la derivazione termine a termine.Serie di potenze e serie di Taylor →): , una somma di kernel polinomiali di ogni grado, ognuno con la sua mappa di feature: in tutto servono infinite componenti. Il kernel però si calcola con un solo esponenziale.
Il kernel RBF. Dipende solo dalla distanza: vale per e tende a se i punti sono lontani. regola la «finestra di influenza» di ogni vettore di supporto: grande vuol dire influenza locale e bordi molto frastagliati (rischio di overfitting), piccolo influenza larga e bordi lisci (rischio di underfitting). Come per , i due parametri si scelgono per cross-validation, tipicamente con una griglia.
Grafico interattivo: Kernel RBF K(x,0)=exp(-γ x²): più γ è grande, più l'influenza di un punto è locale
Esempio. , : . Con si ottiene ; con , .
Cosa mostrano le slide sui dataset Moons e Circles
Su due dataset non lineari (due lune intrecciate, due cerchi concentrici) le slide confrontano vari modelli, con l'accuratezza in cross-validation:
| modello | cerchi | lune |
|---|---|---|
| regressione logistica | ||
| logistica con feature RBF | ||
| SVM con kernel RBF | ||
| kNN () | ||
| albero di decisione | ||
| random forest |
Sui cerchi il bordo lineare della logistica è inutile (accuratezza sotto il caso); basta un kernel (o delle feature) non lineare. Sulle lune l'AUC (vedi Metriche di classificazioneIn classificazione binaria ogni previsione è vero positivo (TP), vero negativo (TN), falso positivo (FP, errore di tipo I) o falso negativo (FN, errore di tipo II). Da queste quattro quantità: accuracy $=\frac{TP+TN}{TP+TN+FP+FN}$, specificità $=\frac{TN}{TN+FP}$, precision $=\frac{TP}{TP+FP}$, recall $=\frac{TP}{TP+FN}$, e la loro media armonica $F_1=\frac{2PR}{P+R}$. Con dati sbilanciati l'accuracy inganna (un modello che predice sempre la classe maggioritaria ha 99%): si usano precision, recall, F1, ROC-AUC, la cross-validation stratificata e il riequilibrio con undersampling o oversampling (non SMOTE). Cambiando la soglia sulla probabilità si ottiene la curva ROC (TPR contro FPR) e l'area AUC. Approfondimento: non nel programma di Telecomunicazioni.Metriche di classificazione →) della SVM RBF è contro della SVM lineare.
Regole pratiche
- Scalare sempre gli attributi (standardizzazione): la SVM dipende dalle distanze, un attributo con scala grande domina il margine e il kernel RBF.
- Provare prima il kernel lineare (veloce, interpretabile via ), poi RBF.
- Più di due classi: scikit-learn combina molti classificatori binari (uno contro uno).
- Costo: l'addestramento ha complessità tra e nel numero di campioni, quindi le SVM con kernel sono lente su dataset molto grandi.
from sklearn.svm import SVC
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.model_selection import GridSearchCV
pipe = make_pipeline(StandardScaler(), SVC(kernel="rbf"))
griglia = {"svc__C": [0.1, 1, 10, 100], "svc__gamma": [0.01, 0.1, 1]}
cerca = GridSearchCV(pipe, griglia, cv=5).fit(X_train, y_train) # C e gamma per cross-validation
print(cerca.best_params_, cerca.score(X_test, y_test))La standardizzazione sta dentro la pipeline, così viene calcolata sul solo training di ogni fold (nessuna fuga di informazione dal test, Overfitting, ridge regression e cross-validationUna buona prestazione sul training non basta: serve stimare quella su dati nuovi. La cross-validation (K-fold: $k$ parti, ciascuna a turno come test, errore medio; Monte Carlo: $k$ divisioni casuali con quota di test $q$; leave-one-out se $k=n$) evita di dipendere da una sola divisione casuale. L'errore atteso si scompone in $\text{bias}^2+\text{varianza}+\sigma^2$: i modelli semplici fanno underfitting (bias alto), quelli complessi overfitting (varianza alta). La regolarizzazione aggiunge alla perdita una penalità: la ridge regression minimizza $|y-X\beta|^2+\lambda\sum_{j\ge1}\beta_j^2$ e ha soluzione $\beta=(X^TX+\lambda\tilde I)^{-1}X^Ty$ (l'intercetta non si penalizza, le feature si standardizzano): riduce i coefficienti, rende l'inversa stabile con feature collineari, e $\lambda$ è un iperparametro scelto con la validazione (cross-validation annidata per non contaminare il test).Overfitting, ridge regression e cross-validation →).
8. Regressione a vettori di supporto (SVR)
Lo stesso schema vale per la regressione. Si cerca un modello lineare (o curvo, via kernel) il più piatto possibile (cioè con piccola) che stia entro una distanza dai dati: lo scarto sotto non costa nulla, formando un «tubo» di larghezza intorno alla funzione.
Formula (SVR).
misura le violazioni sopra il tubo e quelle sotto. Solo i punti fuori dal tubo (o sul bordo) sono vettori di supporto. La perdita è la -insensibile , che per diventa l'errore assoluto. regola il numero di vettori di supporto e la liscezza; la penalità sugli scarti; il kernel (lineare, polinomiale, RBF) dà curve più o meno flessibili. Sulle slide con dati non lineari il kernel lineare fa una regressione troppo rigida, il polinomiale è instabile ai bordi, l'RBF segue bene l'onda.
9. Un cenno alla curva ROC
Le SVM producono una distanza dal piano, , che si può confrontare con una soglia diversa da : variando la soglia si ottengono diverse coppie (tasso di falsi positivi, tasso di veri positivi) e quindi la curva ROC. La curva e l'area sotto di essa (AUC) sono trattate in Metriche di classificazioneIn classificazione binaria ogni previsione è vero positivo (TP), vero negativo (TN), falso positivo (FP, errore di tipo I) o falso negativo (FN, errore di tipo II). Da queste quattro quantità: accuracy $=\frac{TP+TN}{TP+TN+FP+FN}$, specificità $=\frac{TN}{TN+FP}$, precision $=\frac{TP}{TP+FP}$, recall $=\frac{TP}{TP+FN}$, e la loro media armonica $F_1=\frac{2PR}{P+R}$. Con dati sbilanciati l'accuracy inganna (un modello che predice sempre la classe maggioritaria ha 99%): si usano precision, recall, F1, ROC-AUC, la cross-validation stratificata e il riequilibrio con undersampling o oversampling (non SMOTE). Cambiando la soglia sulla probabilità si ottiene la curva ROC (TPR contro FPR) e l'area AUC. Approfondimento: non nel programma di Telecomunicazioni.Metriche di classificazione →. Esempio dalle slide: in un filtro anti-spam un falso positivo (messaggio utile perso) costa più di un falso negativo (spam letto a mano), quindi si sceglie una soglia che tiene basso il FPR.
10. Errori tipici
- Dimenticare di scalare gli attributi, soprattutto con RBF.
- Usare etichette nei calcoli a mano: le formule richiedono .
- Credere che un enorme dia «più accuratezza»: sul training sì, sul test spesso no (overfitting).
- Confondere (kernel) con (penalità sugli scarti): i due parametri agiscono in modo diverso.
- Dimenticare che il margine è e non quando si chiede la larghezza totale.
Esercizi: Esercizio - SVM a margine rigido e morbido a mano, Esercizio - Kernel e confronto tra SVM.
Versione ripasso
Classificatore lineare per due classi con etichette ; tra tutti gli iperpiani che separano i dati si sceglie quello più lontano da tutti i punti (Prodotto scalare, norma e angoliIl prodotto scalare aggiunge a uno spazio vettoriale lunghezze e angoli: norma, disuguaglianza di Cauchy-Schwarz, angolo tra vettori in R^n, ortogonalità, proiezione su una retta, aree e volumi con il determinante della matrice dei prodotti scalari.Prodotto scalare, norma e angoli →).
- Distanza di un punto dal piano: (si scrive con sul piano: ).
- Normalizzazione: si riscalano in modo che il punto più vicino abbia ; allora tutti i punti soddisfano . I piani toccano i vettori di supporto; margine per lato , margine totale .
- Margine rigido (hard margin): massimizzare equivale a (il quadrato è crescente, il fattore rende il gradiente uguale a ) con . Problema quadratico convesso: un solo minimo globale, risolto da SMO (non dalla discesa del gradiente).
- Esempio: classe : ; classe : . I punti più vicini tra classi sono e : , , , cioè , , margine , vettori di supporto e .
- Forma duale (Massimi e minimi vincolati e moltiplicatori di LagrangeGli estremi di f sul vincolo g = c si cercano per sostituzione, per parametrizzazione o con i moltiplicatori di Lagrange: se f, g sono C¹, P0 è un estremo vincolato e ∇g(P0) ≠ 0, esiste λ con ∇f(P0) = λ∇g(P0) (curva di livello di f tangente al vincolo). Si risolve il sistema ∇f = λ∇g, g = c, si aggiungono i punti del vincolo con ∇g = 0 e si confrontano i valori; se il vincolo è compatto, Weierstrass garantisce massimo e minimo.Massimi e minimi vincolati e moltiplicatori di Lagrange →): , . Annullando le derivate: e ; sostituendo, , da massimizzare. Complementarità KKT: solo sui vettori di supporto. I dati compaiono solo come prodotti scalari : da qui il kernel. Nell'esempio e il duale vale .
- Margine morbido (soft margin, SVC): con , . Scarto con : fuori dal margine, dentro ma dal lato giusto, mal classificato. Nel duale compare il vincolo (da ). Equivale alla hinge loss più la penalità ; .
- Esempio: con , , il punto di classe ha e ; il punto ha e .
- Parametro : piccolo = margine largo, tollera errori (più bias, regolarizzazione forte); grande = margine stretto (più varianza, rischio di overfitting). Si sceglie per cross-validation (Overfitting, ridge regression e cross-validationUna buona prestazione sul training non basta: serve stimare quella su dati nuovi. La cross-validation (K-fold: $k$ parti, ciascuna a turno come test, errore medio; Monte Carlo: $k$ divisioni casuali con quota di test $q$; leave-one-out se $k=n$) evita di dipendere da una sola divisione casuale. L'errore atteso si scompone in $\text{bias}^2+\text{varianza}+\sigma^2$: i modelli semplici fanno underfitting (bias alto), quelli complessi overfitting (varianza alta). La regolarizzazione aggiunge alla perdita una penalità: la ridge regression minimizza $|y-X\beta|^2+\lambda\sum_{j\ge1}\beta_j^2$ e ha soluzione $\beta=(X^TX+\lambda\tilde I)^{-1}X^Ty$ (l'intercetta non si penalizza, le feature si standardizzano): riduce i coefficienti, rende l'inversa stabile con feature collineari, e $\lambda$ è un iperparametro scelto con la validazione (cross-validation annidata per non contaminare il test).Overfitting, ridge regression e cross-validation →). Sull'Iris le accuratezze in CV vanno da () a - ().
- Espansione di base: si separa in uno spazio più grande con (grado 2: ); le dimensioni crescono come (, : ).
- Kernel trick: calcolato senza ; la SVM usa . Lineare ; polinomiale ; RBF (mappa di dimensione infinita: , Serie di potenze e serie di TaylorLe serie di potenze sono serie di funzioni della forma $\sum a_n(x-x_0)^n$. Esse convergono assolutamente all'interno del raggio di convergenza $\rho$ e uniformemente nei compatti interni, permettendo l'integrazione e la derivazione termine a termine.Serie di potenze e serie di Taylor →); sigmoide . grande = influenza locale, bordi frastagliati (overfitting); piccolo = bordi lisci.
- Esempio: , : (si espande e si ritrovano i sei prodotti); RBF con : .
- Dataset non lineari (accuratezza in CV): cerchi: logistica , SVM RBF ; lune: logistica , SVM RBF ; AUC lune: lineare , RBF .
- SVR: tubo ; con e ; perdita -insensibile.
- Pratica: standardizzare, griglia su con
GridSearchCVdentro unaPipeline; costo -; per più classi uno-contro-uno. La curva ROC si ottiene variando la soglia su (Metriche di classificazioneIn classificazione binaria ogni previsione è vero positivo (TP), vero negativo (TN), falso positivo (FP, errore di tipo I) o falso negativo (FN, errore di tipo II). Da queste quattro quantità: accuracy $=\frac{TP+TN}{TP+TN+FP+FN}$, specificità $=\frac{TN}{TN+FP}$, precision $=\frac{TP}{TP+FP}$, recall $=\frac{TP}{TP+FN}$, e la loro media armonica $F_1=\frac{2PR}{P+R}$. Con dati sbilanciati l'accuracy inganna (un modello che predice sempre la classe maggioritaria ha 99%): si usano precision, recall, F1, ROC-AUC, la cross-validation stratificata e il riequilibrio con undersampling o oversampling (non SMOTE). Cambiando la soglia sulla probabilità si ottiene la curva ROC (TPR contro FPR) e l'area AUC. Approfondimento: non nel programma di Telecomunicazioni.Metriche di classificazione →). - Errori tipici: non scalare gli attributi; etichette nelle formule; margine , non ; non migliora il test; confondere e .