0Pricing
Learn AI with Python · Lezione

Kernel trick: RBF, polinomiale e sigmoide

Perché i kernel funzionano, parametro gamma del kernel RBF, scelta dei kernel in base alla forma dei dati

Kernel trick: RBF, polinomiale e sigmoide è una lezione Learn AI with Python gratuita su CoddyKit. Questa è la lezione 2 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.

Quando le rette non bastano

Un SVM lineare traccia solo confini rettilinei. Molti dataset non sono separabili linearmente: ad esempio, una classe disposta in un cerchio e circondata da un'altra non può essere separata da una retta. Il kernel trick risolve questo problema.

Proiettare in dimensioni superiori

Se i dati non sono separabili nello spazio originale, proiettarli in uno spazio a dimensionalità superiore può renderli separabili. Una curva in 2D può diventare un piano piatto in 3D.

Il kernel trick

Il kernel trick calcola la similarità K(x, z) tra i punti come se fossero proiettati in dimensioni superiori, senza eseguire mai la costosa proiezione. Questo rende efficienti gli SVM non lineari.

Che cos'è una funzione kernel

Un kernel K(x, z) è una funzione che restituisce il prodotto scalare tra x e z in uno spazio delle feature a elevata dimensionalità. Kernel diversi implicano mappature delle feature e forme dei confini differenti.

Il kernel RBF

Il kernel RBF (gaussiano) è il valore predefinito più utilizzato: K(x, z) = exp(-gamma * ||x - z||^2). Misura una similarità che diminuisce con la distanza, consentendo di ottenere confini curvi e flessibili.

from sklearn.svm import SVC

model = SVC(kernel="rbf", gamma="scale", C=1.0)
model.fit(X, y)

Il parametro gamma

gamma controlla l'ampiezza del kernel RBF. Un gamma elevato significa che ogni punto ha un'influenza limitata, producendo un confine irregolare che può causare overfitting. Un gamma ridotto significa un'influenza più ampia e un confine più uniforme.

from sklearn.svm import SVC

wiggly = SVC(kernel="rbf", gamma=10)    # tight, can overfit
smooth = SVC(kernel="rbf", gamma=0.01)  # broad, may underfit

gamma e C insieme

Gli SVM RBF dipendono sia da gamma (flessibilità del confine) sia da C (tolleranza agli errori). I due parametri interagiscono, quindi in genere è necessario regolarli insieme con una ricerca a griglia.

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC

param = {"C": [0.1, 1, 10], "gamma": [0.01, 0.1, 1]}
gs = GridSearchCV(SVC(kernel="rbf"), param, cv=5)
gs.fit(X, y)

Il kernel polinomiale

Il kernel polinomiale K(x, z) = (gamma * x . z + r)^degree modella le interazioni fino a un grado scelto. Lo utilizzi quando prevede interazioni tra feature di un ordine noto.

from sklearn.svm import SVC

model = SVC(kernel="poly", degree=3, coef0=1, gamma="scale")
model.fit(X, y)

Il kernel sigmoide

Il kernel sigmoide K(x, z) = tanh(gamma * x . z + r) si comporta come una funzione di attivazione di una rete neurale. È meno comune e non è sempre un kernel valido, quindi raramente è la prima scelta.

from sklearn.svm import SVC

model = SVC(kernel="sigmoid", gamma="scale", coef0=0)

Scegliere un kernel

Indicazioni:

  • Linear per dati ad alta dimensionalità o dati testuali
  • RBF come valida scelta predefinita generale per dati non lineari
  • Polynomial quando sono importanti interazioni di un grado noto
  • Sigmoid solo raramente, in casi specifici

Ridimensionare sempre le feature

I kernel come RBF si basano sulle distanze, quindi la scala delle feature è estremamente importante. Standardizzi sempre le feature prima di utilizzare un SVM con kernel, altrimenti le feature su scala maggiore domineranno la similarità.

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

pipe = make_pipeline(StandardScaler(), SVC(kernel="rbf"))
pipe.fit(X, y)

Verifica rapida

Verifichi la sua conoscenza dei kernel.

Riepilogo

Riepilogo: il kernel trick calcola K(x, z) come un prodotto scalare in uno spazio ad alta dimensionalità, senza il costo della mappatura, consentendo di ottenere confini non lineari. RBF utilizza exp(-gamma * ||x-z||^2), dove un gamma elevato causa overfitting. Polynomial cattura le interazioni di grado d. Standardizzi sempre le feature prima di utilizzare SVM con kernel.

Domande Frequenti

La lezione «Kernel trick: RBF, polinomiale e sigmoide» è gratuita?

Sì — il testo completo di «Kernel trick: RBF, polinomiale e sigmoide» è 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 «Kernel trick: RBF, polinomiale e sigmoide»?

Perché i kernel funzionano, parametro gamma del kernel RBF, scelta dei kernel in base alla forma dei dati 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 2 di 4.

Quanto tempo richiede la lezione «Kernel trick: RBF, polinomiale e sigmoide»?

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