랜덤 포레스트(Random Forest)?

지도학습. 분류분석 기법

 

  • 기본 개념
    • 의사결정나무(decision tree)를 결합하여 하나의 모델을 생성
      • 의사결정나무의 단점을 개선 (과적합, 불안정성)
      • 임의성을 관측치 뿐 아니라 변수에도 적용
      • 예측력과 안정성이 높다는 장점이 있지만, 일반적인 tree model과는 달리 설명력을 잃는다.
      • 변수의 개수가 많을 때는 권장되지 않음
    • 배깅(bagging, bootstrap aggregating)
      • 전체 데이터에서 훈련용 데이터를 샘플링하여 개별 트리를 구성 (복원추출)
    • 핵심 옵션
      • Bootstrap 샘플의 수(n): ntree
      • 각 Bootstrap 샘플에서 이용한 변수의 개수(d) : mtry
      • 하위 트리의 개수 = k

 

  • 대락적인 원리
    • 1) 주어진 데이터 셋(train set)에서 무작위로 중복을 허용해서 n개의 데이터 선택
      • 이게 bootstrap
    • 2) 선택한 n개의 데이터 샘플에서 변수(variable)를 중복 허용없이 d개 선택
      • d값은 전체 변수 개수의 sqrt값으로 결정하는 게 일반적
    • 3) 이를 이용해 의사결정트리를 학습하고 생성
    • 4) 1~3단계를 k번 반복
    • 5) 1~4단계를 통해 생성된 k개의 의사결정트리를 이용해 예측하고, 예측된 결과에 대해 다수결에 따라 최종 예측값으로 결정

 

  • 분석 준비
    • 데이터 불러오기 및 train/test 분리

 

  • 랜덤포레스트 모델 생성
    • 옵션
      • ntree: 트리 개수
      • mtry: 각 split에서 사용하는 변수의 개수.  default는 sqrt(전체변수개수)
      • importance: 변수의 중요도 표시 여부
        • accuracy, gini가 크면 중요도가 높다
      • na.action: na가 있는 경우의 처리 방법

 

  • ranger()
    • 속도를 고려하면….  이걸 쓰자;;;

 


Leave Comment

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다