상세 컨텐츠

본문 제목

랜덤 포레스트 ( Random Forest )

경험 리뷰/한국경제 with Tossbank

by shok11 2024. 8. 29. 16:51

본문

728x90
반응형

 

 

랜덤 포레스트 (Random Forest)는 여러 개의 의사결정나무(Decision Tree)를 결합하여 예측을 수행하는 방법이다.

이 결합 과정에서 다양한 기법들이 사용되어 모델의 성능을 향상시키고, 새로운 데이터에 대한 예측 능력을 높인다.

 

랜덤 포레스트 (Random Forest)란?

의사결정나무(Decision Tree) 여러 개를 모아 앙상블(Ensemble) 기법을 사용 하여 예측을 수행하는 알고리즘 이다.

개별 나무들은 각기 독립적으로 학습 되고, 최종적으로 이들의 예측을 모아서 다수결에 따라 결과를 도출한다.

 

 

랜덤 포레스트의 핵심 아이디어

다양성(Diversity), 무작위성(Randomness)을 활용하여 개별 나무들 간의 상관관계를 줄이고, 모델의 예측 성능을 높인다.

 

 

주요 기법

1. Bagging

   - 데이터 무작위 샘플링 : 각 의사결정나무가 동일한 원본 데이터셋에서 생성된 다른 부트스트랩 샘플을 사용하여 학습된다. 이로 인해, 각각의 부트스트랩 샘플(훈련 세트)은 원본 데이터셋과 크기는 같지만, 구성이 다른 데이터를 학습하게 되어, 나무들 간의 독립성을 확보하고 다양성을 증가 시킨다.

 

2. Random Subspace

   - 특성 무작위 샘플링 : 의사결정나무를 학습시킬 때, 전체 특성 중 일부만 무작위로 선택하여 사용한다. 이는 각 나무가 서로 다른 특성에 대해 학습하게 하여, 모델이 특정 특성에 과도하게 의존하지 않도록 하고, 과적합을 방지 한다.

 

3. Random Patch

   - 데이터와 특성의 동시 샘플링 : Bagging과 Random Subspace를 결합하여, 데이터와 특성 모두를 무작위로 샘플링합니다. 이를 통해 나무들 간의 차이를 극대화 한다.

 

 

랜덤 포레스트의 장점

   - 과적합 방지 : 앙상블 특성

   - 이상치 및 결측치에 상함 : 앙상블 특성

   - 스케일링이 필요 없음 : 의사결정 나무 알고리즘 특성

   - 비선형 데이터에 강함 : 의사결정 나무 알고리즘 특성

   - 새로운 데이터에 안정적 : 앙상블 특성

   - 다양한 데이터 유형에 적용 가능 : 앙상블 특성

   - 차원의 저주에 덜 민감 : 

 

 

랜덤 포레스트의 단점

   - 학습 시간과 연산 비용이 큼 : 많은 의사결정나무를 만들어야 하기 때문에 시간이 오래 걸리고, 많은 연산 자원이 필요.

   - 해석의 어려움 : 단일 의사결정나무와 달리, 랜덤 포레스트의 예측 과정은 직관적으로 해석하기 어렵다.

   - 메모리 사용량 증가 : 많은 나무를 생성하므로 메모리 사용량이 증가

 

 

OOB (Out Of Bag) 평가

   - OOB 오류 추정: 훈련 중 사용되지 않은 데이터를 활용해 모델의 성능을 평가하는 방법

 

 

하이퍼파라미터 튜닝

   - n_estimators : 생성할 나무의 수. 많을수록 안정적인 모델이 될 가능성이 있지만, 시간이 많이 걸린다.

   - max_features : 각 나무에서 사용할 특성의 수. 크게 설정하면 성능이 향상될 수 있지만, 과적합 위험이 있다.

   - n_jobs : 사용할 CPU 코어 수를 지정하여 학습 속도를 조절.

   - max_depth : 각 나무의 최대 깊이. 이 파라미터는 모델의 복잡성을 조절.

   - min_samples_split 및 min_samples_leaf : 노드를 분할하기 위한 최소 샘플 수 및 리프 노드에 있어야 하는 최소 샘플 수로, 과적합을 방지하기 위한 파라미터입니다.

 

 


 

 

 

 

 

   - Node : 사각형은 하나의 노드

   - Gini index : 불순도 / 0에 가까울수록 해당 노드의 데이터가 한 클래스에 몰려 있음을 의미

   - samples : 각 노드에서 몇 개의 샘플이 해당 조건을 만족하는가.

   - value : 각 클래스에 속하는 샘플의 수 / [18, 39, 48]은 세 가지 클래스에 속하는 샘플의 수

   - class : 해당 노드에서 다수의 샘플이 속하는 클래스 / 예측된 클래스

728x90
반응형

관련글 더보기