7-3. 랜덤 포레스트(Random Forest)

2021. 5. 12. 04:23Machine Learning

랜덤 포레스트는 기존 결정 트리에서 배깅이나 페이스팅을 적용한 앙상블 학습 방법이다. 

랜덤 포레스트

출처 : www.kaggle.com/getting-started/176257

랜덤 포레스트는 먼저 특성의 서브셋을 무작위로 구성한 뒤에 노드 분할 시 최선의 특성을 찾음으로써 무작위성을 더한다.

 

    from sklearn.ensemble import RandomForestClassifier
    
    rnd_clf = RandomForestClassifier(n_estimators=500, max_leaf_nodes=16, n_jobs=-1)
    rnd_clf.fit(X_train, y_train)

    y_pred = rnd_clf.predict(X_valid)

BaggingClassifier를 사용할 수도 있지만, 사이킷런에서는 RandomForestClassifier를 제공한다. 

 

엑스트라 트리 


엑스트라 트리(Extremely Randomized Tree)는 가장 극단적인 형태의 랜덤 포레스트이다. 

 

엑스트라 트리의 기본적인 특징은 다음과 같다. 

 

1. 샘플링 시 기본적으로 전체 입력 샘플을 사용 한다. 

2. 노드 분할 시 특성의 서브셋을 무작위로 추출 한 뒤에 그 서브셋에 한해서 최적 임계값을 계산한다. 

3. 분산(Variance)이 줄어들고, 편향(Bias)가 늘어난다. 

4. 계산 속도가 랜덤 포레스트에 비해서 매우 빠르다.

 

출처 : quantdare.com/what-is-the-difference-between-extra-trees-and-random-forest/

 

What is the difference between Extra Trees and Random Forest? ⋆ Quantdare

Extra Trees and Random Forest are two very similar ensemble methods and often a doubt arises as to whether to use one or the other.

quantdare.com

출처 : wyatt37.tistory.com/6

 

[머신러닝 톺아보기] 엑스트라 트리(Extra Trees) vs 랜덤 포레스트(Random Forest)

끙정입니다. 일전에 데이콘에서 주최하는 '시스템 품질 변화로 인한 사용자 불편 예지' 경진대회를 참가했을 때, 팀원이 pycaret을 사용해 모델의 성능들을 비교한 적이 있습니다. 생전 처음 보는

wyatt37.tistory.com

 

 

특성 중요도 


랜덤 포레스트는 특성의 중요도를 측정하기 쉽다는 장점이 있다. 

 

트리마다 그리고 노드마다 사용한 특성이 다르기때문에 어떤 특성을 사용한 노드 불순도를 얼마나 감소하는지 

 

측정하여 특성의 중요도를 측정한다. 훈련 뒤에 모델의 feather_importances 변수에 이 값을 저장한다.