Como obter uma importância variável (atributo) usando o SVM?
Como obter uma importância variável (atributo) usando o SVM?
Respostas:
Se você usar a penalidade de l-1 no vetor de ponderação, ele fará a seleção automática de recursos, pois os pesos correspondentes a atributos irrelevantes são automaticamente definidos como zero. Veja este documento . A magnitude (absoluta) de cada peso diferente de zero pode dar uma idéia sobre a importância do atributo correspondente.
Veja também este documento que usa critérios derivados de SVMs para orientar a seleção de atributos.
Isabelle Guyon, André Elisseeff, "Uma introdução à seleção de variáveis e recursos", JMLR, 3 (mar): 1157-1182, 2003. http://jmlr.csail.mit.edu/papers/v3/guyon03a.html
vale a pena ler, fornecerá uma boa visão geral de abordagens e questões. A única coisa que gostaria de acrescentar é que a seleção de recursos não melhora necessariamente o desempenho preditivo e pode facilmente piorar (porque é fácil ajustar o critério de seleção de recursos). Uma das vantagens dos SVMs (especialmente lineares) é que eles funcionam bem com um grande número de recursos (desde que você ajuste o parâmetro de regularização corretamente); portanto, muitas vezes não há necessidade se você estiver interessado apenas em previsão.
Se você usar R, a importância da variável poderá ser calculada com o método Importance no pacote rminer. Este é o meu código de exemplo:
library(rminer)
M <- fit(y~., data=train, model="svm", kpar=list(sigma=0.10), C=2)
svm.imp <- Importance(M, data=train)
Em detalhes, consulte o seguinte link https://cran.r-project.org/web/packages/rminer/rminer.pdf