선택한 기능 수가 줄어들면 랜덤 포리스트 OOB 오류 추정치가 개선되는 이유는 무엇입니까?


14

1000 개의 기능을 가진 두 개의 알려진 그룹으로 분할 된 마이크로 어레이 데이터 세트에서 분류 자로 임의 포리스트 알고리즘을 적용하고 있습니다. 처음 실행 한 후에는 기능의 중요성을 살펴보고 5, 10 및 20 개의 가장 중요한 기능으로 트리 알고리즘을 다시 실행합니다. 모든 기능의 상위 10 및 20에서 오류율의 OOB 추정치는 1.19 %이며 상위 5 개의 기능은 0 %입니다. 이것은 나에게 반 직관적 인 것처럼 보이므로 내가 누락되었거나 잘못된 메트릭을 사용하고 있는지 설명 할 수 있는지 궁금합니다.

ntree = 1000, nodesize = 1 및 mtry = sqrt (n) 인 R의 randomForest 패키지를 사용하고 있습니다.


2
명확하게 : 전체 입력 공간에서 최상위 기능 (Gini 인덱스 또는 MSE 감소에 따라)을 선택하여 반복적 인 방식으로 RF를 적용하고 있습니까? 나는 나무 수를 늘려서 RF가 반드시 향상 될 수는 없지만, 당신이 묘사하는 것은 의미가있는 것 같습니다 (가장 좋은 기능은 OOB 샘플을 100 % 정확도로 예측할 수 있습니다). .
chl

예 그게 내가 뭐하는 거지입니다
danielsbrewer

2
@chl, 5 가지 기능 만 사용하여 과적 합의 위험이있는 이유를 설명해 주시겠습니까?
tashuhka

답변:


15

이것은 기능 선택 오버 피트이며 꽤 알려져 있습니다. Ambroise & McLachlan 2002를 참조하십시오 . 문제는 RF가 너무 똑똑하고 많은 물체가 너무 작다는 사실에 근거합니다. 후자의 경우, 일반적으로 결정과 좋은 상관 관계가있는 속성을 임의로 생성하는 것이 매우 쉽습니다. 그리고 속성의 수가 많을 때, 전혀 관련이없는 속성 중 일부는 매우 좋은 예측 변수가 될 것입니다. 특히 100 %의 결정을 다시 만들 수있는 클러스터를 형성하기에 충분할 것입니다. RF가 고려됩니다. 따라서 가능한 최상의 속성 하위 집합을 찾도록 지시 받았을 때 FS 프로 시저가이 클러스터를 찾습니다.
하나의 솔루션 (CV)이 A & McL에 제공되며 주제에 대한 접근 방식을 테스트 할 수도 있습니다.Boruta 알고리즘 은 기본적으로 디자인에 의해 무작위로 만들어진 "그림자 속성"으로 세트를 확장하고 RF 속성의 중요성을 실제 속성에 대해 얻은 것과 비교하여 어느 것이 실제로 무작위이고 제거 될 수 있는지를 판단합니다. 이것은 여러 번 복제되어 중요합니다. 보루 타는 약간 다른 작업을하려는 것이지만 테스트 결과에 따르면 결과 집합에는 FS 초과 적합 문제가 없습니다.


2

이 패턴에 대한 직관적 인 설명을 추가 할 것이라고 생각했습니다.

랜덤 포리스트를 포함하는 각각의 결정 트리에서, 데이터는 단일 차원을 따라 반복적으로 분할된다. 결정적으로이 절차에는

1) 모든 설명 변수 중 작고 무작위로 선택된 하위 집합 만 고려

2) 무작위로 선택된이 변수 하위 집합 내 에서 가장 강력하게 연관된 설명 변수를 선택 하여 데이터를 분할합니다.

따라서, 설명 변수의 수가 증가함에 따라 임의의 특정 노드에서 n 개의 가장 중요한 변수가 선택 될 확률이 감소한다. 따라서 설명력이 거의 없거나 전혀없는 많은 변수를 추가하면 자동으로 숲의 오류율이 증가합니다. 반대로 포함에 가장 중요한 변수 만 선택하면 오류율이 낮아질 수 있습니다.

랜덤 포레스트는 이것에 대해 매우 강력하며 일반적으로 성능을 의미있게 낮추기 위해 이러한 '노이즈'파라미터를 매우 많이 추가해야합니다.

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