¿Cómo obtener una importancia variable (atributo) usando SVM?
¿Cómo obtener una importancia variable (atributo) usando SVM?
Respuestas:
Si utiliza la penalización l-1 en el vector de peso, realiza una selección automática de características, ya que los pesos correspondientes a los atributos irrelevantes se establecen automáticamente en cero. Ver este artículo . La magnitud (absoluta) de cada peso distinto de cero puede dar una idea sobre la importancia del atributo correspondiente.
También mire este documento que utiliza criterios derivados de SVM para guiar la selección de atributos.
Isabelle Guyon, André Elisseeff, "Una introducción a la selección de variables y características", JMLR, 3 (marzo): 1157-1182, 2003. http://jmlr.csail.mit.edu/papers/v3/guyon03a.html
Vale la pena leerlo, dará una buena visión general de los enfoques y problemas. Lo único que agregaría es que la selección de características no necesariamente mejora el rendimiento predictivo, y puede empeorarlo fácilmente (porque es fácil sobrepasar el criterio de selección de características). Una de las ventajas de los SVM (especialmente lineales) es que funcionan bien con un gran número de características (siempre que ajuste el parámetro de regularización correctamente), por lo que a menudo no es necesario si solo está interesado en la predicción.
Si usa R, la importancia variable se puede calcular con el método Importancia en el paquete rminer. Este es mi código de muestra:
library(rminer)
M <- fit(y~., data=train, model="svm", kpar=list(sigma=0.10), C=2)
svm.imp <- Importance(M, data=train)
En detalle, consulte el siguiente enlace https://cran.r-project.org/web/packages/rminer/rminer.pdf