랜덤 포레스트

From CS Wiki
Revision as of 11:42, 7 January 2020 by PE120 (talk | contribs)
Random Forest
여러 개의 결정 트리들을 임의적으로 학습하는 방식의 앙상블 방법으로서, 여러가지 학습기들을 생성한 후 이를 선형 결합하여 최종 학습기를 만드는 방법

랜덤 포레스트.png

기반 기술

  • 의사결정 나무: 여러가지 요소를 기준으로 갈라지는 가지를 트리형태로 구성하여 분석하는 기법
  • 앙상블 학습: 주어진 데이터를 여러 모델로 학습하고 종합하여 정확도를 높이는 기법
  • 배깅(Bagging): 같은 알고리즘으로 여러 개의 분류기를 만들어서 결합하는 앙상블 학습 기법

의사결정트리의 한계 =

  • 학습 데이터에 따라 생성되는 결정 트리가 크게 달라져 일반화가 어려운 과적합 문제 발생
  • 계층적 접근방식으로, 중간에 에러 발생 시 하위 계층으로 에러 전파

랜덤 포레스트 특징

  • 임의성: 서로 조금씩 다른 특성의 트리들로 구성
  • 비상관화: 각 트리들의 예측이 서로 연관되지 않음
  • 견고성: 오류가 전파되지 않아 노이즈에 강함
  • 일반화: 임의화를 통한 과적합 문제 극복

랜덤 포레스트 주요 기법

랜덤 포레스트 시각화.png

랜덤 포레스트 과정.gif

배깅을 통한 포레스트 구성

부트스트랩(bootstrap)을 통해 조금씩 다른 훈련 데이터에 대해 훈련된 기초 분류기(base learner)들을 결합(aggregating)시키는 방법

랜덤 노드 최적화

  • 분석에 사용되는 변수를 랜덤하게 추출
  • 훈련 단계에서 훈련의 목적 함수를 최대로 만드는 매개변수 최적값 도출