¿Cómo obtener la importancia de una variable (atributo) mediante la SVM?
Respuestas
¿Demasiados anuncios?Si se utiliza la penalización l-1 en el vector de pesos, se realiza una selección automática de características, ya que los pesos correspondientes a los atributos irrelevantes se ponen automáticamente a cero. Véase este documento . La magnitud (absoluta) de cada peso distinto de cero puede dar una idea de la importancia del atributo correspondiente.
También mira este documento que utiliza criterios derivados de las SVM para guiar la selección de atributos.
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
merece la pena leerlo, ya que ofrece una buena visión general de los enfoques y los problemas. Lo único que añadiría es que la selección de características no mejora necesariamente el rendimiento predictivo, y puede empeorarlo fácilmente (porque es fácil sobreajustar el criterio de selección de características). Una de las ventajas de las SVM (especialmente las lineales) es que funcionan bien con un gran número de características (siempre que se ajuste adecuadamente el parámetro de regularización), por lo que a menudo no es necesario si sólo se está interesado en la predicción.
Si utiliza R, la importancia de la variable se puede calcular con el método Importance del paquete rminer. Este es mi código de ejemplo:
library(rminer)
M <- fit(y~., data=train, model="svm", kpar=list(sigma=0.10), C=2)
svm.imp <- Importance(M, data=train)
Para más detalles, consulte el siguiente enlace https://cran.r-project.org/web/packages/rminer/rminer.pdf