머신러닝 - 11. 랜덤 포레스트(Random Forest)

2024. 1. 17. 12:06인공지능/머신러닝 이론

728x90
반응형

랜덤 포레스트

 랜덤 포레스트(Random Forest)는 분류/회귀 분석에 사용되는 결정 트리앙상블(Ensemble)이다. 결정 트리의 과대적합과 같은 문제점을 해결하기 위한 전략으로써, 랜덤 포레스트 모델은 여러 개의 의사 결정 트리를 조합한 모델이다.

 

 좀 더 정확히는 다수의 결정 트리를 만들어, 이들로부터 평균을 내는 방식으로 동작한다. 개개의 트리는 분산이 높은 위험이 있으나, 앙상블을 통해 성능을 높이고 과대적합의 위험을 줄일 수 있다. 랜덤 포레스트는 앙상블 방법 중 배깅(Bootstrap Aggregation, Bagging)을 적용한다.

 

 배깅에 간단히 설명하자면, 기존의 학습 데이터로부터 랜덤 하게 '복원추출'하여 동일한 사이즈의 데이터셋을 여러 개 만들어 앙상블을 구성하는 여러 모델을 학습시키는 방법을 말한다(출처: 티스토리 블로그).


랜덤 포레스트의 알고리즘(동작 과정)

 랜덤 포레스트의 동작 과정은 크게 4가지 단계로 이루어져 있다.

 

1. n개의 랜덤한 부트스트랩(Bootstrap) 샘플 추출(중복을 허용하면서, 랜덤 하게 n 개씩 추출)

2. 부트스트랩 샘플에서 결정 트리를 학습

   2.a. 중복을 허용하지 않고 랜덤하게 d개의 특성을 선택

   2.b. 정보 이득과 같은 목적 함수를 기준으로 최선의 분할을 만드는 특성을 사용해서 노드를 분할

3. 1 ~ 2 단계를 k번 반복

4. 위 과정에서 생성된 트리들의 예측을 모아 다수결 투표(Majority Voting)로 클래스 레이블을 할당


결정 트리와의 비교

 랜덤 포레스트는 여러 개의 트리를 만들어 다수결 투표를 하는 방식이기 때문에, 결정 트리에 비해 해석하기 까다롭다. 대신에 하이퍼 파라미터 튜닝에 덜 신경 써도 되며, 앙상블 모델이 개별 결정 트리의 예측 평균을 구하기 때문에 잡음으로부터 매우 안정되어 가지치기할 필요가 없다.

 

 하이퍼 파라미터 중에 신경써야 하는 것은 생성해 낼 트리의 개수이다. 일반적으로 트리가 늘어날수록 성능은 증가하고, 계산 비용은 늘어난다. 그밖에 부트스트랩 샘플의 크기나 특성 개수등을 조절하는 것으로 성능을 조정할 수 있다.

728x90
반응형