Breiman의 임의 포리스트는 정보 획득 또는 Gini 인덱스를 사용합니까?


15

Breiman의 임의 포리스트 (R randomForest 패키지의 임의 포리스트)가 분할 기준 (속성 선택 기준) 정보 획득 또는 Gini 인덱스로 사용되는지 알고 싶습니다. http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm 및 R의 randomForest 패키지에 대한 설명서에서 찾아 보았습니다 . 그러나 찾은 유일한 것은 Gini 인덱스를 사용할 수 있다는 것입니다. 가변 중요도 컴퓨팅.


randomForest 패키지의 임의 포리스트 트리가 이진인지 궁금합니다.
누군가

답변:


16

A. Liaw의 R에있는 randomForest 패키지는 c 코드 (번역 된) 일부 포트란 코드와 R 래퍼 코드가 혼합 된 원본 코드의 포트입니다. 중단 점과 mtry 변수에서 전체적으로 최상의 분할을 결정하기 위해 코드는 gini-gain과 유사한 점수 함수를 사용합니다.

GiniGain(N,X)=Gini(N)|N1||N|Gini(N1)|N2||N|Gini(N2)

여기서 소정의 기능이고, N은 분할이 수행되는 한 노드이며, N (1)N 2 분할에 의해 생성 된 두 개의 자식 노드이다 N . | . | 노드의 요소 수입니다.XNN1N2N|.|

그리고 . 여기서 K 는 노드의 범주 수입니다.Gini(N)=1k=1Kpk2K

그러나 적용된 스코어링 기능은 정확히 동일하지는 않지만 계산적으로 효율적인 버전입니다. 및 | N | 비교 된 모든 분할에 대해 일정하므로 생략됩니다.Gini(N)

또한 node (1)의 제곱 유병률의 합이 |N2||N|Gini(N2)|N2|Gini(N2)=|N2|(1k=1Kpk2)=|N2|nclass2,k2|N2|2

여기서 보조 노드 1. 공지의 대상 클래스 k의 클래스 카운트 | N 2 | 노미 네이터와 분모 모두에 배치됩니다.nclass1,k|N2|

사소한 일정 제거 방정식에서 출발하는 가장 분할 결정은 노드가 제곱 클래스 유병률의 가중 합계의 크기를 최대화하기 위해되도록을 ...1

점수 = =Σ K의 K = 1 NCLS(S) (2) (2) , K|N1|k=1Kp1,k2+|N2|k=1Kp2,k2=|N1|k=1Knclass1,k2|N1|2+|N2|k=1Knclass2,k2|N2|2 =k=1Knclass2,k21|N1|1+k=1Knclass2,k21|N1|2 =nominator1/denominator1+nominator2/denominator2

The implementation also allows for classwise up/down weighting of samples. Also very important when the implementation update this modified gini-gain, moving a single sample from one node to the other is very efficient. The sample can be substracted from nominators/denominators of one node and added to the others. I wrote a prototype-RF some months ago, ignorantly recomputing from scratch gini-gain for every break-point and that was slower :)

If several splits scores are best, a random winner is picked.

This answer was based on inspecting source file "randomForest.x.x.tar.gz/src/classTree.c" line 209-250

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