랜덤 포레스트 및 의사 결정 트리 알고리즘


14

임의의 포리스트는 배깅 개념을 따르는 의사 결정 트리 모음입니다. 한 의사 결정 트리에서 다음 의사 결정 트리로 이동할 때 마지막 의사 결정 트리에서 학습 한 정보는 다음 의사 결정으로 어떻게 넘어 갑니까?

내 이해에 따라 모든 의사 결정 트리에 대해 생성 된 다음 다음 의사 결정 트리가 잘못 분류 된 오류로부터 학습을 시작하기 전에로드되는 훈련 된 모델과 같은 것은 없기 때문입니다.

어떻게 작동합니까?


"한 의사 결정 트리에서 다음 의사 결정 트리로 이동할 때" 이것은 선형 프로세스를 제안합니다. 우리는 CPU 코어 당 하나의 트리에서 작업하는 병렬 구현을 구축했습니다. 이것은 훈련에서 CPU 코어마다 별도의 난수 생성기를 사용 하지 않는 한 완벽하게 작동합니다 . 모두 동일한 시드를 공유합니다. 이 경우 동일한 트리가 많이 생길 수 있습니다.
MSalters

답변:


23

트리간에 정보가 전달되지 않습니다. 임의의 포리스트에서는 모든 트리에 대해 동일한 임의 추출 전략을 사용하여 트리가 재배되므로 모든 트리가 동일하게 분산됩니다. 먼저 데이터의 부트 스트랩 샘플을 가져온 다음 임의로 선택된 기능의 하위 집합에서 분할을 사용하여 트리를 확장하십시오. 이것은 앙상블의 다른 나무에주의를 기울이지 않고 각 나무마다 개별적으로 발생합니다. 그러나 나무는 훈련 데이터의 공통 풀에서 샘플에 대해 훈련 된 각 나무에 의해 순전히 상관됩니다. 동일한 데이터 세트의 여러 샘플이 유사한 경향이 있으므로 트리는 해당 유사성의 일부를 인코딩합니다.

고품질 텍스트에서 임의 포리스트에 대한 소개를 읽는 것이 도움이 될 수 있습니다. 하나는 Leo Breiman의 "Random Forests"입니다. Hastie et al. 의 통계 학습 요소에 장도 있습니다.

임의의 포리스트를 AdaBoost 또는 그라디언트 부스팅 트리와 같은 부스팅 방법으로 혼동했을 수 있습니다. 부스팅 방법은 이전 부스팅 라운드의 부적합에 대한 정보를 사용하여 다음 부스팅 라운드에 알리기 때문에 동일하지 않습니다. 참조 : 임의 포리스트는 증폭 알고리즘입니까?


11

임의 숲은 여러 의사 결정 트리의 모음입니다 서로 독립적으로 교육을받습니다 . 따라서 순차적으로 의존하는 훈련이라는 개념은 없습니다 ( 부스팅 알고리즘 의 경우 ). 결과적으로 다른 답변에서 언급했듯이 나무에 대한 병렬 훈련을 수행하는 것이 가능합니다.

임의의 숲에서 "무작위"가 어디에서 왔는지 알고 싶을 수도 있습니다. 나무를 배우는 과정에 무작위성이 주입되는 두 가지 방법이 있습니다. 첫 번째는 각 트리를 학습하는 데 사용되는 임의의 데이터 포인트 선택이고, 두 번째는 각 트리를 빌드하는 데 사용되는 기능의 임의 선택입니다. 단일 의사 결정 트리는 일반적으로 데이터에 과적 합하는 경향이 있기 때문에 이러한 방식으로 임의성을 주입하면 사용 가능한 교육 데이터의 다른 하위 집합에 대해 각 트리마다 정확도가 높고 (과도하게 적합 할 수있는) 많은 트리가 생깁니다. . 따라서 모든 나무에서 예측 한 평균을 취하면 초과 이용률이 감소 합니다 (사용 가능한 모든 데이터에 대해 하나의 단일 결정 트리를 훈련시키는 경우와 비교 ).

MN

  1. i=0
  2. MMSi
  3. iTiSi
    • 트레이닝 프로세스는 트리의 각 노드에서 임의의 기능 선택 만 해당 노드의 분할에 사용된다는 점을 제외하면 의사 결정 트리를 트레이닝하는 것과 동일합니다.
  1. i=i+1
  2. i<N

T1T2TN

  • 회귀 작업에 사용되는 경우 평균 예측을 임의 포리스트의 최종 예측으로 사용하십시오.

  • 분류 작업에 사용되는 경우 소프트 투표 전략을 사용하십시오. 각 클래스의 트리에서 예측 한 확률의 평균을 취한 다음 평균 확률이 가장 높은 클래스를 임의 포리스트의 최종 예측으로 선언하십시오.

또한, 순차적으로 의존하는 방식으로 나무를 훈련시키는 것이 가능하며, 그래디언트 부스트 트리 알고리즘이하는 것, 즉 랜덤 포레스트와는 완전히 다른 방법입니다.


8

랜덤 포레스트는 부스팅 알고리즘이 아닌 배깅 알고리즘입니다.

랜덤 포레스트는 랜덤 데이터 샘플을 사용하여 독립적으로 트리를 구성합니다. 병렬 구현이 가능합니다.

새 트리가 이전에 실수를 수정하려고 시도하는 트리가 순차적으로 구축되는 그라디언트 부스팅을 확인하고 싶을 수도 있습니다.


6

어떻게 작동합니까?

랜덤 포레스트는 의사 결정 트리의 모음입니다. 나무는 독립적으로 구성됩니다. 각 트리는 대체 기능으로 선택한 샘플의 기능 및 하위 집합에 대해 교육을받습니다.

예측할 때 분류에 대해 입력 매개 변수는 포리스트의 각 트리에 제공되고 각 트리는 분류에서 "투표"되며 대부분의 투표에서 승리합니다.

간단한 의사 결정 트리에서 임의 포리스트를 사용해야하는 이유는 무엇입니까? 바이어스 / 차이가 절충됩니다. 랜덤 포레스트는 단일 의사 결정 트리와 비교할 때 훨씬 간단한 트리로 구성됩니다. 일반적으로 임의 포리스트는 편차로 인해 오류가 크게 줄어들고 바이어스로 인해 오류가 약간 증가합니다.


우리가 모든 의사 결정 트리에 대해 다른 기능을 선택하는 경우 이전 의사 결정 트리의 기능 세트에 의한 학습이 개선되는 반면 다음 의사 결정 트리에 대해 미스 분류 된 값을 미리 보내면 완전히 새로운 기능 세트가 있습니까?
Abhay Raj Singh

3
@AbhayRajSingh-Random Forest에서 "미분류 된 값을 미리 보내지 마십시오". Akavall이 말했듯이, "나무는 독립적으로 건설되었습니다"
Henry

1

위의 저자들이 말했듯이 랜덤 포레스트 알고리즘은 부스팅 알고리즘이 아니라 배깅입니다.

배깅은 다른 샘플에 맞춰진 기본 알고리즘과 그 오류가 투표에서 상호 보완되므로 분류기의 분산을 줄일 수 있습니다. 배깅은 예측 능력을 향상시키기위한 수단으로 동일한 모델의 약간 다른 버전의 평균을 의미합니다. 배깅을 적용하기 위해 B 부트 스트랩 훈련 세트를 사용하여 B 회귀 트리를 구성하고 결과 예측의 평균을 구합니다.

일반적이고 매우 성공적인 포장 적용은 랜덤 포레스트입니다

그러나 이러한 의사 결정 트리를 임의의 포리스트에 구축 할 때는 트리의 분할이 고려 될 때마다 mp 예측 변수의 전체 집합에서 분할 후보로 임의의 예측 변수 샘플 이 선택됩니다. 스플릿은 해당 m예측 변수 중 하나만 사용할 수 있습니다 .

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