Learn AI with Python · Lezione

SVM per la regressione (SVR)

Il tubo epsilon di SVR, nu-SVR, confronto tra SVR e regressione lineare su dati non lineari

Lezione 4 di 413 passaggi

SVM per la regressione (SVR) è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 4 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.

Le SVM possono eseguire anche la regressione

L'idea del margine si estende alla regressione. La Support Vector Regression (SVR) adatta una funzione mantenendo le predizioni all'interno di una banda di tolleranza e ignorando gli errori piccoli.

Il tubo insensibile a epsilon

SVR traccia un tubo epsilon attorno alla funzione predetta. I punti all'interno del tubo contribuiscono con una perdita pari a zero; vengono penalizzati solo i punti esterni. In questo modo il modello si concentra sugli errori significativi.

Perché un tubo è utile

Ignorando le piccole deviazioni, SVR resiste all'overfitting del rumore e produce un adattamento più uniforme e robusto. Le piccole oscillazioni entro la tolleranza non influiscono semplicemente sul modello.

Utilizzo di base di SVR

SVR è analogo a SVC e supporta gli stessi kernel. RBF è l'impostazione predefinita più comune per la regressione non lineare.

from sklearn.svm import SVR

model = SVR(kernel="rbf", C=100, epsilon=0.1, gamma="scale")
model.fit(Xtr, ytr)
print(model.score(Xte, yte))

Il parametro epsilon

epsilon imposta la larghezza del tubo. Un epsilon più grande comporta una banda più ampia, un numero inferiore di vettori di supporto e un modello più semplice. Un epsilon più piccolo adatta il modello più strettamente ai dati.

from sklearn.svm import SVR

wide = SVR(epsilon=1.0)   # tolerant, simpler
tight = SVR(epsilon=0.01) # fits closely

Il parametro C in SVR

Come nella classificazione, C controlla la penalità per i punti esterni al tubo. Un valore di C più grande penalizza maggiormente questi errori, producendo un adattamento più preciso; un valore di C più piccolo applica una regolarizzazione maggiore, per una curva più uniforme.

from sklearn.svm import SVR

flexible = SVR(C=1000)  # fits training closely
smooth = SVR(C=0.1)     # more regularized

epsilon e C: due parametri distinti

Ricordi la differenza: epsilon controlla la larghezza del tubo (quanto errore ignorare), mentre C controlla la penalità per gli errori che si trovano al di fuori del tubo. Ottimizzi entrambi.

Anche per SVR la scalatura è importante

Come tutte le SVM, SVR dipende dalle distanze ed è sensibile alla scala. Standardizzi sempre le feature e consideri anche la scalatura della variabile obiettivo per ottenere un addestramento stabile.

from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVR

pipe = make_pipeline(StandardScaler(), SVR(kernel="rbf"))
pipe.fit(Xtr, ytr)

Ottimizzazione di SVR

Esegua una ricerca su griglia di C, gamma ed epsilon per trovare l'adattamento migliore. Utilizzi una metrica di regressione, come l'errore quadratico medio negativo, per il calcolo del punteggio.

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVR

param = {
    "C": [1, 10, 100],
    "gamma": [0.01, 0.1, 1],
    "epsilon": [0.01, 0.1, 0.5],
}
gs = GridSearchCV(SVR(), param, cv=5, scoring="neg_mean_squared_error")
gs.fit(Xtr, ytr)

La variante nu-SVR

NuSVR sostituisce epsilon con nu (tra 0 e 1), che controlla direttamente la frazione di vettori di supporto e di errori di addestramento: si tratta di una parametrizzazione alternativa che alcuni trovano più intuitiva.

from sklearn.svm import NuSVR

model = NuSVR(nu=0.5, C=100, kernel="rbf")
model.fit(Xtr, ytr)

Quando utilizzare SVR

SVR funziona bene su dataset di dimensioni piccole o medie con pattern non lineari e quando è importante la robustezza al rumore. Per quantità di dati molto grandi, preferisca i modelli lineari o il gradient boosting, che si adattano meglio a questo scenario.

Verifica rapida

Verifichi le Sue conoscenze su SVR.

Riepilogo

Riepilogo: SVR adatta una funzione all'interno di un tubo insensibile a epsilon, nel quale i punti interni hanno costo nullo. epsilon imposta la larghezza del tubo (un valore maggiore produce un modello più semplice), mentre C penalizza i punti esterni. Ridimensioni sempre le feature, ottimizzi C/gamma/epsilon e consideri NuSVR come parametrizzazione alternativa.

Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
53
Lezioni
225

Domande Frequenti

La lezione «SVM per la regressione (SVR)» è gratuita?

Sì — il testo completo di «SVM per la regressione (SVR)» è 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 «SVM per la regressione (SVR)»?

Il tubo epsilon di SVR, nu-SVR, confronto tra SVR e regressione lineare su dati non lineari 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 4 di 4.

Quanto tempo richiede la lezione «SVM per la regressione (SVR)»?

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

  1. Teoria delle SVM: margini e vettori di supporto
  2. Kernel trick: RBF, polinomiale e sigmoide
  3. SVM per la classificazione con sklearn
  4. SVM per la regressione (SVR)
← Torna a Learn AI with Python