Come ottenere un'importanza variabile (attributo) usando SVM?
Come ottenere un'importanza variabile (attributo) usando SVM?
Risposte:
Se si utilizza la penalità l-1 sul vettore di peso, esegue automaticamente la selezione della funzione poiché i pesi corrispondenti agli attributi irrilevanti vengono automaticamente impostati su zero. Vedi questo documento . La grandezza (assoluta) di ciascun peso diverso da zero può dare un'idea dell'importanza dell'attributo corrispondente.
Guarda anche questo documento che utilizza i criteri derivati dagli SVM per guidare la selezione degli attributi.
Isabelle Guyon, André Elisseeff, "An Introduction to Variable and Feature Selection", JMLR, 3 (Mar): 1157-1182, 2003. http://jmlr.csail.mit.edu/papers/v3/guyon03a.html
vale la pena leggere, fornirà una buona panoramica di approcci e problemi. L'unica cosa che aggiungerei è che la selezione delle funzionalità non migliora necessariamente le prestazioni predittive e può peggiorare facilmente (perché è facile adattarsi al criterio di selezione delle funzionalità). Uno dei vantaggi delle SVM (soprattutto lineari) è che funzionano bene con un gran numero di funzionalità (fornendo correttamente il parametro di regolarizzazione), quindi spesso non è necessario se si è interessati solo alla previsione.
Se usi R, l'importanza della variabile può essere calcolata con il metodo Importance nel pacchetto rminer. Questo è il mio codice di esempio:
library(rminer)
M <- fit(y~., data=train, model="svm", kpar=list(sigma=0.10), C=2)
svm.imp <- Importance(M, data=train)
In detail, refer to the following link https://cran.r-project.org/web/packages/rminer/rminer.pdf