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.