랜덤 포레스트에서 왜 트리 레벨이 아닌 노드 레벨에서 기능의 랜덤 서브 세트가 선택됩니까?


13

내 질문 : 왜 임의 포리스트 는 트리 수준이 아닌 각 트리 내의 노드 수준 에서 분할하기 위해 기능의 임의 하위 집합을 고려 합니까?

배경 : 이것은 역사 문제입니다. 주석 캄 호 출판 이 논문을 무작위로 성장하기 위해서 사용하는 기능의 일부를 선택하여 "결정 숲을"건설에 나무를 2001 년 이후 1998 년 몇 년 동안, 레오 브레이 만은 자신의 정액 랜덤 포레스트 출판 종이 기능 집합 무작위 인 것을 특징을, 각 트리가 아닌 각 트리 내의 각 노드 에서 선택됩니다 . Breiman은 Ho를 인용했지만 트리 수준에서 노드 수준의 임의 기능 선택으로의 이동에 대해서는 구체적으로 설명하지 않았습니다.

이 개발의 동기가 무엇인지 궁금합니다. 트리 수준에서 기능 하위 집합을 선택하면 원하는 트리의 상관 관계를 여전히 달성 할 수 있습니다.

내 이론 : 나는 이것이 다른 곳에서 분명히 말한 것을 보지 못했지만 무작위 하위 공간 방법이 기능의 중요성을 평가하는 측면에서 덜 효율적 인 것처럼 보입니다. 변수의 중요도 추정치를 얻기 위해 각 트리에 대해 피처가 하나씩 무작위로 순열되고, 가방 외부 관찰에 대한 오 분류 증가 또는 오류 증가가 기록됩니다. 이 랜덤 순열로 인한 오 분류 또는 오류 증가가 큰 변수는 가장 중요한 변수입니다.

랜덤 서브 스페이스 방법을 사용하면 각 트리에 대해 개의 p 피처 만 고려 합니다. 모든 p 예측 변수를 한 번이라도 고려하려면 여러 트리가 필요할 수 있습니다 . 우리가 다른 부분 집합 고려한다면 다른 한편으로는, m Ip가 특징 각 노드를 , 우리는 우리에게 기능의 중요성에 대한보다 강력한 견적을주고, 적은 나무 후 각 기능에 더 많은 시간을 고려할 것입니다.mppmip

지금까지 살펴본 내용 : 지금까지 Breiman의 논문과 Ho의 논문을 읽었으며 결정적인 답변을 찾지 않고 방법을 비교하기위한 광범위한 온라인 검색을 수행했습니다. • 그래도 참고 비슷한 질문을 하기 전에 질문을 받았다. 이 질문은 가능한 해결책에 대한 나의 추측 / 작업을 포함시켜 조금 더 나아갑니다. 두 접근법을 비교하는 답변, 관련 인용 또는 시뮬레이션 연구에 관심이 있습니다. 앞으로 나올 것이 없다면 두 방법을 비교하여 자체 시뮬레이션을 실행할 계획입니다.


2
나는 어떤 인용도 인용하지 않을 것이므로 이것을 단지 주석이라고 부르 자. 어떤 변수가 유용한 지 이해하려는 경우 특정 변수가 중요하지만 작은 데이터에만 영향을 줄 수 있습니다. 노드 레벨에서 변수를 넣는 것으로 이것을 찾을 수 있습니다. 당신은 트리 수준에서 가방으로 이것을 발견하지 못할 것입니다.
meh

2
Breiman은 자신의 (imho) 정기 논문 '통계-두 문화'에 이와 관련된 의견을 가지고 있다고 확신합니다. 그의 주장은 때로는 변수의 중요성이 다른 변수에 의해 가려져 있다는 것입니다. 노드 수준에서 배깅하면 변수의 대상과시기를 볼 수 있습니다.
meh

1
의견 주셔서 감사합니다. 효율성에 대한 내 생각으로 돌아 가기 : 한 쌍의 변수가 관련되어 있고 한 말의 중요성이 다른 사람의 중요성을 "마스크"했다고 가정합니다. 트리가 충분한 RF 예측기를 구축하고 트리 레벨 기능 하위 설정을 사용한 경우, 결국 "마스크"기능이 있고 "마스킹"기능이없는 트리가 충분하지 않아 전자의 영향을받지 않을 수 있습니다. 후자의? 나는 우리가 적어도 거의 같은 생각에 대해 이야기하고 있다고 생각합니다. 감사!
djlid

4
당신은 할 수 있지만 얼마나 많은 나무를 만들어야 할지를 고려하십시오! 또한 명확하지 않습니다. 변수 A는 스플릿을 유발하여 변수 B가 빛나지 않도록 할 수 있습니다. 노드 수준에서 샘플링하는 것이 본질적으로 더 강력합니다. 저에게는 기본적으로 부트 스트랩이 무엇인지와 관련이 있습니다.
meh

답변:


1

10 개의 기능 f1, f2, ..., f9, f10을 가지고 있다고 가정하고, 트리 레벨 자체에서 기능의 f1, f3, f4, f8을 가정하여 부분 집합을 취하면이 4 가지 기능을 사용하여 전체 트리를 구성합니다. 생각 해 보겠다.

우리는 엔트로피를 계산하고 모든 노드에서이 4 가지 특징 만 비교하고 최대 엔트로피를 산출하는 특징을 취합니다. 트리 학습을 4 가지 기능으로 만 제한하므로 많이 사용되지 않습니다. 이와 반대로, 우리가 첫 번째 노드에서 f1, f8, f9라고하는 기능의 일부를 가져 가면 엔트로피를 계산하고이 3 가지 기능을 비교하여 최대 가치를 제공하는 기능을 선택했습니다. 동일한 기능으로 트리를 확장하는 대신 f4, f7, f2라고하는 기능의 다른 하위 집합을 선택하고 이러한 기능을 기반으로 분할했습니다. 첫 번째 노드에서 f8이 선택되고 두 번째 노드에서 f2가 선택되었다고 가정하십시오. 모델은 둘 사이의 관계를 배울 수 있습니다

이러한 방식으로 모델은 다양한 기능 간의 관계를보다 다양하게 학습 할 수 있습니다. 이 접근 방식은 단일 트리에서 여러 기능을 탐색하므로 이들 간의 관계가 유지됩니다. 당신이 지금 그것을 얻었기를 바랍니다 :)

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