SVM의 변수 중요성


32

SVM을 사용하여 변수 (속성) 중요도를 얻는 방법은 무엇입니까?

답변:


19

가중치 벡터에 l-1 페널티를 사용하면 관련없는 속성에 해당하는 가중치가 자동으로 0으로 설정되므로 자동 피쳐 선택이 수행됩니다. 이 백서를 참조하십시오 . 0이 아닌 각 가중치의 (절대) 크기는 해당 속성의 중요성에 대한 아이디어를 제공 할 수 있습니다.

또한 SVM에서 파생 된 기준을 사용하여 속성 선택을 안내하는 이 백서 를 보십시오 .


1
이 알고리즘 중 하나가 R 또는 다른 소프트웨어로 구현 되었습니까?
George Dontas

5
예, R penalizedSVM 패키지를 살펴보십시오. 관심있는 다른 패키지는 다음과 같습니다 : 처벌, 엘라스틱 넷, ppls, lars 또는 더 일반적으로 : cran.r-project.org/web/views/MachineLearning.html
chl

7

Isabelle Guyon, André Elisseeff, "변수 및 기능 선택 소개", JMLR, 3 (3) : 1157-1182, 2003. http://jmlr.csail.mit.edu/papers/v3/guyon03a.html

읽을 가치가 있으며 접근 방식과 문제에 대한 좋은 개요를 제공합니다. 내가 추가 할 한 가지 기능은 기능 선택이 예측 성능을 반드시 향상시킬 필요는 없으며 기능 선택 기준을 과도하게 맞추기 쉽기 때문에 쉽게 악화시킬 수 있다는 것입니다. (특히 선형) SVM의 장점 중 하나는 많은 수의 기능 (정규화 매개 변수를 올바르게 조정)을 제공하므로 제대로 작동하기 때문에 예측에만 관심이있는 경우가 필요하지 않다는 것입니다.


2
나는 I. Guyon과 동료 j.mp/anblwx 의 전체 책을 추천하기를 원합니다 . Hastie et al. ( j.mp/bW3Hr4) 의 ESL 서적 도이 '핫'주제에 대한 흥미로운 토론을 제공합니다.
chl

귀하의 주장에 동의하지 않습니다. FS는 자체적으로 제공하는 설명 정보에 대해 흥미 롭습니다 (마커 / SNP 선택은 분석의 주요 목표 일 때의 예입니다). 피처 선택 오버 피트는 물론 문제이지만 생략 할 수있는 방법이 있습니다.

나는 FS가 예측의 중요성을 반드시 향상시킬 필요는 없으며 그것을 악화시킬 수 있다고 지적했다. 유익한 기능을 찾는 것이 본질적으로 중요하다면 물론 FS를 사용해야하지만 기능 선택 기준이 지나치게 적합하면 (쉽게 발생하는) 예측 성능이 저하 될 수 있습니다. 마이크로 어레이 분석과 같은 작업의 경우 예측에 리지 회귀 회귀 분석을 사용하고 (생물학에 대한 이해를 얻기 위해) 주요 기능을 결정하기 위해 LASSO와 같은 것을 사용합니다. 동일한 모델에서 두 가지를 모두 수행 할 필요는 없습니다.
Dikran Marsupial

1

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


2
이 답변은 불완전합니다. 해당 패키지의 변수 중요도가 통신하려는 내용은 설명하지 않습니다.
Matthew Drury

샘플 코드를 추가했습니다
Kaneda Takashi
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.