Skip to content

Random Forest #
Find similar titles

Structured data

Category
Statistics

Random Forest (랜덤 포레스트) #

Random Forest 란? #

과대적합(overfitting) 을 방지하기 위해, 최적의 기준 변수를 랜덤하게 선택하는 breiman(2001)이 제안한 머신러닝 기법이다. Random Forest는 여러 개의 Decision tree (의사결정나무)를 만들고, 숲을 이룬다는 의미에서 Forest라 한다(조금씩 다른 여러 Decision tree의 묶음). 각 트리는 비교적 예측을 잘 할 수 있지만, 데이터 일부에 과대적합하는 경향을 가진다는 데 기초한다. 따라서 각 트리를 많이 만들어 그 결과를 평균내어 과대적합을 방지할 수 있다.

Image

그림1. Random Forest 그림 (출처)

Random Forest의 장점 #

Classification 및 Regression 문제에 모두 사용할 수 있다.

  • Missing value(결측치)를 다루기 용이
  • 대용량 데이터 처리에 효과적
  • 모델의 노이즈를 심화시키는 과대적합 문제 최소화, 모델 정확도 향상
  • Classification 모델에서 상대적으로 중요한 변수를 선정 및 순위 매기기 가능

랜덤포레스트 구축 #

1) 랜덤포레스트 모델을 만들기 위해 생성할 트리의 개수를 지정 (bootstrap sampling(부트스트랩 샘플링) - Original sample 집단에서 더 작지만, 무수히 많은 집단으로 랜덤하게 뽑는 방법)

Image

그림2. 부트스트랩 샘플링 (출처)

  • 각 트리는 고유하게 무작위적으로 선택해서 만들어 짐
  • n_samples 개의 데이터 포인트 중에서 n_samples 횟수만큼 반복 추출 (한 표본이 여러 번 중복으로 추출될 수 있음)
  • 추출한 데이터 세트는 원래 데이터 세트 크기와 같지만, 어떤 데이터 포인트는 누락 될 수 있고(대략 1/3), 어떤 데이터 포인트는 중복되어 들어 있을 수 있음
  • 뽑은 데이터 세트로 결정 트리를 만듦
  • 트리의 각 분기마다 feature을 사용 (몇 개의 feature를 고를지는 max_features로 조정); max feature 값 클수록 트리들은 비슷해지고, 낮출수록 트리들은 많이 달라지고 각 트리는 데이터에 맞추기 위해 깊이가 깊어짐

2) Bootstrap sample에 대해 Random Forest Tree 모형 제작

  • 전체 변수 중에서 m개 변수를 랜덤하게 선택
  • 최적의 classifier 선정
  • classifier 따라 두 개의 daughter node 생성

3) Tree 들의 앙상블 학습 결과 출력

  • 앙상블 학습(ensemble learning): 큰 데이터를 수많은 작은 set으로 나눠 학습시킨 후, 각 학습 모델을 연결하여 성능 좋은 머신러닝 구축

Reference #

  • Müller, Andreas C., and Sarah Guido. Introduction to machine learning with Python: a guide for data scientists. " O'Reilly Media, Inc.", 2016.
0.0.1_20210630_7_v33