티스토리 뷰

Machine Learning

랜덤 포레스트, Random Forest

ccc124213131 2020. 12. 17. 20:57
728x90

1. 아이디어

랜덤 포레스트의 아이디어는 앙상블 방법에서 나왔다. 배깅이나 페이스팅 방법을 적용한 결정 트리의 앙상블이 랜덤 포레스트이다. 

아래와 같이 분류 문제는 사이킷런의 RandomForestClassifier 메서드로 사용한다. (BaggingClassifier와 DecisionTreeClassifier를 결합한 것과 같다.)

2. 엑스트라 트리

결정 트리에서는 CART 비용 함수를 최소화하는 특성 k와 그 임계값 t_k를 선택해 샘플을 분할하는 반면 랜덤 포레스트 알고리즘은 전체 특성 중에서 무작위로 선택한 특성 후보 중에서 최적의 특성을 찾는 방식으로 무작위성을 더 주입한다. 엑스트라 트리는 여기서 더 무작위성을 주입해 전체 특성 중에서 무작위로 특성을 후보를 선택해 샘플을 무작위로 분할한 후 그 중에서 최상의 분할을 선택한다. 결정 트리 알고리즘에서 최적의 임계값을 탐색하는 것이 가장 시간이 많이 걸리는 작업이기 때문에 엑스트라 트리는 일반적인 랜덤 포레스트보다 훨씬 빠르다.

사이킷런의 ExtraTreesClassifier 메서드를 사용한다.

(ㅋㄷ)

3. 특성 중요도

랜덤 포레스트는 특성의 상대적 중요도를 측정하는 데도 사용된다. 랜덤 포레스트의 모든 트리 내 어떤 특성을 사용한 노드가 평균적으로 불순도를 얼마나 감소시키는 지 확인해 특성의 중요도를 측정한다. 사이킷런에서는 알고리즘의 훈련이 끝난 뒤 feature_importances_ 변수로 확인할 수 있다.

ㅋㄷ

 

댓글