머신러닝 기법 중에 고전적이지만 가장 널리 쓰이는 방법 중에 하나인
Random Forest에 대해 내용을 정리해보았다.

01. 앙상블(Ensemble)이란?

  • 단일 결정 트리는 학습 데이터에 과적합(overfitting) 되기 쉬움
    • tree의 depth가 깊어지고, tree의 수가 많아질수록, 학습 데이터에만
      지나치게 잘 맞고, 검증(test) 데이터에서는 잘 맞지 않는 ovefitting이 발생할 수 있음
  • 이 문제를 극복하기 위해서 앙상블(Ensemble)이라는 개념이 등장함.
    • 여러 개의 모델을 결합해 하나의 더 강력한 모델을 만드는 기법
    • 나중에 나오는 약한 모델을 '순차적'으로 학습시켜 성능을 높이는
      Boosting과는 구별됨

02. 배깅(Bagging)과 부스팅(Boosting)

  • 배깅(Bagging)은 Bootstrap Aggregarting의 약자로서, 여러 모델을
    병렬적으로 학습 한 후에 결과를 평균 내거나(회귀 문제) 투표(분류 문제)
    함.
  • Bagging은 과적합 감소에 효과적
  • Bagging은 중복 허용하는 bootstrap 샘플링 사용
  • Boosting은 여러 약한 모델을 순차적으로 학습하여 오류 보정
    • 이전 모델의 오류를 반영하여 가중치 변경
구분 Bagging (Bootstrap Aggregating) Boosting
핵심 아이디어 여러 약한 모델을 병렬로 학습 후 결과를 평균/투표 여러 약한 모델을 순차적으로 학습하며 오류 보정
학습 방식 각 모델이 독립적으로 학습 이전 모델의 오류를 반영하여 가중치 조정
과적합에 대한 성능 과적합 감소에 효과적 과적합 위험 존재 (적절한 조정 필요)
대표 알고리즘 Random Forest AdaBoost, Gradient Boosting, XGBoost, LightGBM
병렬 처리 가능 여부 가능 (각 트리가 독립적) 불가능 (순차적으로 학습)
샘플링 중복 허용한 bootstrap 샘플링 사용 전체 데이터를 기반으로 가중치 재조정
모델 다양성 데이터 및 feature randomness로 다양성 확보 모델은 동일하지만 학습 흐름에서 차별화
  • Bagging에 대해 자세히 정리한다면 아래와 같이 할 수 있음.

1) 데이터 샘플링 (Bootstrap)

  • Bagging에서는 원본 데이터셋에서 데이터를 중복을 허용하여
    N개를 무작위 추출함으로써 여러 개의 다른 데이터셋을 생성

2) 모델 훈련

  • 각 모델은 독립적으로 훈련되고, 서로 간섭하지 않아 병렬적으로 훈련

3) 예측 결과 집계

  • Bagging에서 최종 예측은 다음과 같이 이루어짐
  • 분류 문제에에서 각 모델이 예측한 클래스 중 가장 많이 등장한 클래스를 최종 예측값으로 선정

  • 회귀 문제 (Regression)의 경우: 평균값(average) 사용

  • Boosting기반 모델에서 최종 예측은 아래와 같이 이뤄짐.

1) Boosting은 단계적으로 모델을 학습하는 방식으로, 가장 먼저 전체 데이터셋을 활용하여 첫 번째 모델을 학습

  • 초기 모델 F1(x)=h1xF_{1}(x) = h_{1}x 원본 데이터를 활용해 학습한 간단한 모델

2) 다음 단계부터는 이전 단계에서의 잔차(예측 오차)를 바탕으로 새로운 모델을 순차적으로 학습

03. RandomForest 정리

  • RamdomForest 정의

  • 구성 요소

  • 학습 단계

  • 예측 방식

  • Random Forest의 차별점

  • 하이퍼파라미터 요약

profile
2025화이팅!

0개의 댓글