Domanda:
Dove posso leggere il coefficiente gamma in SVM in scikit-learn?
Salvador Dali
2015-08-20 14:13:26 UTC
view on stackexchange narkive permalink

Scikit impara a supportare l'algoritmo della macchina vettoriale ha un paio di coefficienti che significa che non riesco a capire.

gamma: float, opzionale (default = 0.0)

Coefficiente del kernel per 'rbf', 'poly' e 'sigmoid'. Se gamma è 0.0, al posto di 1 / n_features verranno utilizzate.

e

coef0: float, opzionale (default = 0.0)

Termine indipendente nella funzione kernel. È significativo solo in "poly" e "sigmoid".

Ho provato a cercare gamma su google nelle macchine vettoriali di supporto, ma non ho trovato nulla di rilevante. Qualcuno può spiegarmi qual è il significato di questi parametri e un valore ragionevole per loro.

Tutto detto da Marc Claesen è vero, ma la domanda rimane sul tipo di kernel poli.Nella formula matematica sembra che 'poly' sia indipendente da 'gamma' mentre in pratica i risultati sono diversi cambiando 'gamma'!
Una risposta:
Marc Claesen
2015-08-20 14:30:49 UTC
view on stackexchange narkive permalink

La funzione del kernel RBF è la seguente, per due vettori $ \ mathbf {u} $ e $ \ mathbf {v} $: $$ \ kappa (\ mathbf {u}, \ mathbf {v}) = \ exp (- \ gamma \ | \ mathbf {u} - \ mathbf {v} \ | ^ 2). $$ L'iperparametro $ \ gamma $ è usato per configurare la sensibilità alle differenze nei vettori delle caratteristiche, che a sua volta dipende da varie cose come dimensionalità dello spazio di input e normalizzazione delle caratteristiche.

Se si imposta $ \ gamma $ troppo grande, si finirà per overfitting. Nel caso limite $ \ gamma \ rightarrow \ infty $, la matrice del kernel diventa la matrice unitaria che porta a un adattamento perfetto dei dati di addestramento, sebbene un modello del tutto inutile.

Il valore ottimale di $ \ gamma $ dipende interamente dai tuoi dati, qualsiasi regola pratica dovrebbe essere presa con una libbra di sale. Detto questo, puoi utilizzare librerie specializzate per ottimizzare gli iperparametri per te (ad esempio Optunity (*)), nel caso di SVM con kernel RBF che è $ \ gamma $ e $ C $. Puoi trovare un esempio di ottimizzazione automatica di questi parametri con Optunity e scikit-learn qui.

(*) disclaimer: sono lo sviluppatore principale di Optunity.

Ma nel caso di "poly" cosa significa, il kernel polinomiale dipende solo dal grado.Ho sbagliato?


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...