2014-03-18 1 views
3

R 패키지 FSelector를 제대로 사용하는 방법, 특히 해당 information.gain 함수를 이해하려고합니다. According to the documentation :FSelector 정보는 무엇을 측정합니까?

information gain = H(class) + H(attribute) - H(class,attribute) 

이러한 수량은 무엇을 의미합니까? 그리고 그것들은 Information Gain의 표준 정의와 어떻게 관련이 있습니다. 내가 아는 한, attribute = H(S) - sum p(S_i)H(S_i)에 의한 정보 이득 H(.)은 엔트로피입니다. S은 분할되지 않은 집합입니다. S_i은 속성에 의해 유도 된 S의 서브 세트입니다. 및 p(S_i) = |S_i|/|S|.

정보 이득이라는 개념을 사용하는 다른 패키지가 있는지 알고 싶습니다.

도움 주셔서 감사합니다.

+0

이 이력서에 대한이 답변은 관심 대상이 될 수 있습니다. http://stats.stackexchange.com/questions/161429/why-would-perfectly-similar-data-have-0 -mutual-information/161443 # 161443 – Tim

답변

9

FSelector 및 그 기능의 기본 개념은 데이터 집합에서 발견되는 최상의 속성 조합을 선택하는 것입니다. 어쩌면, 일부 속성은 다루지 않는 데이터 집합에 따라 불필요한 데이터 일 수 있습니다.

information.gain은 "정보 이득"에 따라 최상의 속성 조합을 선택하는 기능입니다. 이 기능은 엔트로피 (Entropy)를 기반으로합니다 (그것에 관한 많은 문서를 읽을 수 있습니다). 여기

유명한 IRIS 데이터 세트 ( http://rgm3.lab.nig.ac.jp/RGM/R_rdfile?f=FSelector/man/information.gain.Rd&d=R_CC에 전체 예를 참조)를 사용하는 예입니다 가장 중요한 속성이 Petal.Width 및 Petal.Length

있습니다 것을 의미

library(FSelector) 
data(iris) 

weights <- information.gain(Species~., iris) 
print(weights) 

subset <- cutoff.k(weights, 2) 

f <- as.simple.formula(subset, "Species") 
print(f) 

유사한 기능을 사용하는 많은 라이브러리! (RWeka, CORElearn, FSelector ...)

+0

고맙습니다. 낮은 정보 이득을 가진 좋은 속성을 가질 수 있습니까? – user3434580

+0

물론 모든 속성을 원할 수도 있지만 일부 프로세스의 경우 가장 대표적인 속성을 사용하기 만하면됩니다. 예를 들어, 얼굴 인식에서는 이미지 속성의 하위 집합 만 사용합니다. 데이터 압축 용. 어쩌면 당신은이 모든 것의 배후에있는 통계와 수학을 검사 할 수 있습니다. 좋은 출발점은 SVD (Singular Value Decomposition) 또는 Principal Component Analysis입니다. 요컨대, 정보 이득 비율이 가장 높은 속성을 사용하고 정보 이득이 낮은 속성을 남겨 두는 경향이 있습니다. – andresram1

+2

@ andresram1 PCA 및 SVD는 결과에 미치는 영향과는 별도로 변수에 따라 변수를 선택합니다. 반대로 정보 획득은 결과에서 "불순물"을 감소시키는 능력에 따라 변수의 순위를 매긴다. 그래서, PCA와 SVD는 (적어도 액면 그대로) 여기서는 무관합니다. –

관련 문제