왜 XGBoost와 Random Forest가 필요합니까?


25

몇 가지 개념에 대해서는 명확하지 않았습니다.

  1. XGBoost는 약한 학습자를 강력한 학습자로 전환합니다. 이 작업의 장점은 무엇입니까? 단일 트리를 사용하는 대신 많은 약한 학습자를 결합?

  2. 랜덤 포레스트는 트리의 다양한 샘플을 사용하여 트리를 만듭니다. 단일 트리를 사용하는 대신이 방법의 장점은 무엇입니까?

답변:


35

두 번째 질문으로 시작한 다음 첫 번째 질문으로가는 것이 더 쉽습니다.

포장

랜덤 포레스트는 배깅 알고리즘입니다. 분산을 줄입니다.

의사 결정 트리와 같은 매우 신뢰할 수없는 모델이 있다고 가정하십시오. 데이터를 조금만 변경하면 생성 된 의사 결정 트리가 매우 다를 수 있습니다. 이러한 경우 배깅을 통해 강력한 모델을 만들 수 있습니다 (차이를 줄임) -배깅은 다른 모델을 만들 때입니다 결과 모델을 더욱 강력하게 만들기 위해 데이터를 리샘플링합니다.

랜덤 포레스트는 의사 결정 트리에 적용되는 배깅을 호출하지만 다른 배깅 알고리즘과 다르지 않습니다.

왜 이렇게 하시겠습니까? 문제에 따라 다릅니다. 그러나 일반적으로 모델이 안정적인 것이 매우 바람직합니다.

부스팅

증폭은 분산을 줄이고 바이어스를 줄입니다. 여러 모델 (포장)을 사용하므로 분산이 줄어 듭니다. 이전 모델에서 발생한 오류 (부스팅 부분)를 알려 후속 모델을 훈련시켜 편견을 줄입니다.

두 가지 주요 알고리즘이 있습니다.

  • Adaboost : 이것은 원래 알고리즘입니다. 후속 모델에 이전 모델에 의해 잘못 관찰 된 더 많은 관측치를 제공하도록 지시합니다.
  • 그라디언트 부스팅 : 잔차 (예측 값과 실제 값의 차이)를 사용하여 각 후속 모델을 학습합니다.

이 앙상블에서는 기본 학습자 가 약 해야 합니다. 데이터에 적합하면 후속 모델에 대한 잔차 또는 오류가 발생하지 않습니다. 왜 이런 좋은 모델입니까? Kaggle과 같은 웹 사이트의 대부분의 경쟁은 그라디언트 부스팅 트리를 사용하여 우승했습니다. 데이터 과학은 경험적인 과학이며, "작동하기 때문에"충분합니다. 어쨌든 승압 모델이 과적 합 될 수 있다는 점에 유의하십시오 (경험적으로 흔하지는 않지만).

그래디언트 부스팅 (gradient boosting)이 특히 멋진 또 다른 이유는 미분이 볼록하지 않은 경우에도 다른 손실 함수를 매우 쉽게 사용할 수 있기 때문입니다. 예를 들어, 확률 적 예측을 사용할 때 핀볼 함수 와 같은 것을 손실 함수로 사용할 수 있습니다. 신경망에서 훨씬 더 어려운 것 (파생은 항상 일정하기 때문에).

[흥미로운 역사적 주 : 부스팅은 원래 " 약한 모델을 사용하여 더 강한 모델을 만들 수 있을까요? "


주의 사항 : 사람들은 때때로 결정 트리를 사용하기 때문에 임의의 포리스트와 그라디언트 부스팅 트리를 혼동하지만 두 가지 매우 다른 앙상블 패밀리입니다.


1
부스팅 가중 평균을 취하여 잔차와 분산을 반복적으로 모델링하여 편향을 줄입니다 . cf. § 5.5 바이어스, 분산 및 안정성 , 118 페이지 부스팅 : 기초 및 알고리즘 , Robert E. Schapire, Yoav Freund.
Emre

@Emre, 당신은 물론 맞습니다. 누군가 내 게시물을 수정 하고 증가 하여 감소 를 변경 했습니다 . 나는 그것을 되 돌렸다.
Ricardo Cruz

8

트리를 빌드 할 때 노드 분할에 대한 몇 가지 기준을 정의해야합니다. 여기에는 Information Gain 및 Gini Index와 같은 메트릭이 포함됩니다. 그것들은 휴리스틱 접근법이며, 최상의 분할을 보장하지는 않습니다 .

실제로 일부 속성은 관련성이 적거나 소음이 적으며 실제 데이터에서 발생하는 다른 많은 문제가 있습니다. 요컨대, 적절한 계산 시간에 완벽한 트리구축 할 수는 없습니다 (물론 가능한 모든 트리를 빌드하고 최상의 테스트를 수행 할 수는 있지만 중간 규모의 데이터 세트에서도 훈련을 위해 몇 년을 기다려야합니다).

우리는 최고의 나무를 가질 수 없기 때문에 근사치가 있습니다. 하나의 근사치는 대부분의 나무가 다소 정확할 것으로 예상하고 투표 시스템에서 분류를 고려하기 때문에 많은 나무 (다른 데이터 파티션 또는 속성 파티션을 사용)를 만드는 것입니다. 이것은 대부분의 노이즈를 다루고, 수직 파티션은 관련없는 속성을 다룰 수 있으며, 휴리스틱은 덜 중요하며 다른 장점도 있습니다.


1

좋은 답변에 약간의 추가를하겠습니다. 주요 문제는 과적 합입니다. 둘 이상의 매개 변수가 있고 비선형 함수를 추가하자마자 모든 알고리즘이 과적 합되기 시작합니다. 그들은 존재하지 않는 데이터에서 무언가를 본다. 어둡거나 안개가 강할 때처럼 사람들은 존재하지 않는 어둠 / 안개를 보는 경향이 있습니다. 거의 모든 계산 알고리즘이 인간보다 더 많이 적합합니다. 변수가 서로 밀접하게 관련되어 있으면 선형 회귀 분석조차도 이상한 계수를 나타 내기 시작합니다. 과적 합이 없으면 알고리즘이 기반으로하는 일반적인 의사 결정 트리가 Random Forest 또는 XGBoost보다 낫습니다.

과적 합이 발생하는 이유와 일부 알고리즘이 다른 알고리즘보다 나은 이유는 정확한 과학이 없습니다. 이론적으로 ARIMA 모델은 매우 견고하지만, 실제로는 지수 평활 기법을 사용하는 것이 더 좋으며 ARIMA는 ARIMA에 따라 동작하지만 매개 변수가 다른 변수를 구분할 수도 없습니다.

일부 신경망, 특히 회선 신경망은 과적 합이 낮은 것으로 보입니다. 동시에 완전히 연결된 신경망의 원래 아이디어는 과적 합으로 인해 많은 수의 뉴런으로 실패합니다.

과적 합과 싸울 수있는 주요 가능성은 다음과 같습니다.

  1. 무작위 샘플링
  2. 여러 모델의 평균
  3. 모델 무작위 화 (신경망을 훈련하는 동안 뉴런의 임의 삭제)

알고리즘을 올바르게 이해하면 Random Forest와 XGBoost가 여러 모델에서 무작위 샘플링과 평균을 수행하므로 과적 합을 줄일 수 있습니다.

ImageNet 이미지 인식 경쟁에서 2016 년 최고의 모델 (Shao et al)은 정말 훌륭한 모델의 조합이었습니다. 그들 중 일부는 지난 몇 년 동안 경쟁에서 승리했습니다. 이 모델은 기본 모델보다 오류가 20 % 적습니다. 이것이 여러 모델에서 평균을 계산하는 것이 과적 합에 맞서 싸우는 방법입니다.

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