SVM을 사용하여 변수 (속성) 중요도를 얻는 방법은 무엇입니까?
SVM을 사용하여 변수 (속성) 중요도를 얻는 방법은 무엇입니까?
답변:
가중치 벡터에 l-1 페널티를 사용하면 관련없는 속성에 해당하는 가중치가 자동으로 0으로 설정되므로 자동 피쳐 선택이 수행됩니다. 이 백서를 참조하십시오 . 0이 아닌 각 가중치의 (절대) 크기는 해당 속성의 중요성에 대한 아이디어를 제공 할 수 있습니다.
또한 SVM에서 파생 된 기준을 사용하여 속성 선택을 안내하는 이 백서 를 보십시오 .
Isabelle Guyon, André Elisseeff, "변수 및 기능 선택 소개", JMLR, 3 (3) : 1157-1182, 2003. http://jmlr.csail.mit.edu/papers/v3/guyon03a.html
읽을 가치가 있으며 접근 방식과 문제에 대한 좋은 개요를 제공합니다. 내가 추가 할 한 가지 기능은 기능 선택이 예측 성능을 반드시 향상시킬 필요는 없으며 기능 선택 기준을 과도하게 맞추기 쉽기 때문에 쉽게 악화시킬 수 있다는 것입니다. (특히 선형) SVM의 장점 중 하나는 많은 수의 기능 (정규화 매개 변수를 올바르게 조정)을 제공하므로 제대로 작동하기 때문에 예측에만 관심이있는 경우가 필요하지 않다는 것입니다.
R을 사용하는 경우 rminer 패키지의 중요도 방법으로 변수 중요도를 계산할 수 있습니다. 이것은 내 샘플 코드입니다.
library(rminer)
M <- fit(y~., data=train, model="svm", kpar=list(sigma=0.10), C=2)
svm.imp <- Importance(M, data=train)
자세한 내용은 다음 링크를 참조하십시오 https://cran.r-project.org/web/packages/rminer/rminer.pdf