ML 06. 랜덤포레스트(앙상블)

cuckoo·2022년 11월 17일
0

Machine Learning

목록 보기
6/11

키워드

  • 랜덤포레스트 모델
  • 순서형인코딩(Ordinal encoding)
  • 범주형 변수의 인코딩 방법이 트리모델과 선형회귀 모델에 주는 영향을 이해

앙상블 분류기 (ensemble classifier)

  • 주어진 학습 데이터 집합에 대해서 여러 개의 서로 다른 분류기를 만들고, 이들 분류기의판정 결과를 투표 방식(voting method)이나 가중치 투표 방식(weighted voting method)으로 결합(모델의 평균화)
  • 부트스트랩(bootstrap)
    • 주어진 학습 데이터 집합에서 복원추출(resampling withreplacement)하여 다수의 학습 데이터 집합을 만들어내는 기법
  • 배깅(bagging, bootstrap aggregating)
    • 부트스트랩을 통해 여러 개의 학습 데이터 집합을 만들고, 각 학습 데이터 집합별로 분류기를 만들어, 이들이 투표나 가중치 투표를 하여 최종 판정을 하는 기법
  • 부스팅(boosting)
    • k개의 분류기를 순차적으로 만들어 가는 앙상블 분류기 생성 방법분류 정확도에 따라 학습 데이터에 가중치를 변경해가면서 분류기 생성
  • 랜덤 포리스트(random forest) 알고리즘
    • 분류기로 결정트리를 사용하는 배깅 기법

랜덤포레스트의 과적합 해소 방법 : 랜덤성

  • 건강의 위험도를 예측하기 위해서는 많은 요소를 고려해야 합니다. 성별, 키, 몸무게, 지역, 운동량, 흡연유무, 음주 여부, 혈당, 근육량, 기초 대사량 등등등… 수많은 요소가 필요할 것입니다.
  • 수많은 요소(Feature)를 기반으로  건강의 위험도(Label)를 예측한다면 분명 오버피팅이 일어날 것입니다.
  • 예를 들어 Feature가 30개일 때
  • 30개의 Feature를 기반으로 하나의 결정 트리를 만든다면 트리의 가지가 많아질 것이고, 이는 오버피팅의 결과를 야기할 것
  • Solution : 랜덤 포레스트
    • 30개의 Feature 중 랜덤으로 5개의 Feature만 선택해서 하나의 결정 트리를 만들고,
      • 또 30개 중 랜덤으로 5개의 Feature를 선택해서 또 다른 결정 트리를 만들고…
      • 이렇게 계속 반복하면 여러 개의 결정 트리를 만들 수 있음.
    • 결정 트리 하나마다 개별 예측 값을 내놓을 것.
      • 여러 결정 트리들이 내린 예측 값들 중 가장 많이 나온 값을 최종 예측값으로 정합니다. → 다수결의 원칙에 따름.
  • 랜덤포레스트의 장점
    • **독립 변수의 중요도**를 계산할 수 있다는 점이다.
    • 포레스트 안에 사용된 모든 노드에 대해 어떤 독립 변수를 사용하였고 그 노드에서 얻은 information gain을 구할 수 있으므로 각각의 독립변수들이 얻어낸 infomation gain의 평균을 비교하면 어떤 독립변수가 중요한지를 비교 할 수 있게 된다.

랜덤포레스트의 랜덤성이 과적합 해소 예시

  • 결정트리는 한사람이 모의고사 30문제를 푸는 과정이라고 가정합니다.
  • 랜덤포레스트는 다수의 500명이 모의고사 30문제를 랜덤하게 5개씩 가져와서 풀고 그 답을 비교하여 가장 많이 나온 답을 선택해서 최종 답을 만드는 것입니다.

⇒ 이 과정을 통해 한사람이 푼 답의 의존도가 낮아지고 일반화된 답을 선택하게 되면서 과적합을 해소시킬 수 있습니다.

Ordinal encoding

  • 순서형 변수에 순서를 부여하면서 인코딩하는 방법
  • 명목형
    • 남자와 여자
  • 순서형
    • 등급 or 순서

선형 회귀에서 Ordinal Encoding을 사용할 수 없는 이유

  • 선형회귀 모델에서 단위의 영향을 받기 때문에 ordinal encoding을 사용하면 변수의 수에 따라 수치가 달라져 영향을 줍니다.
  • 트리기반 모델에서는 학습시에 각 특성에 단위의 영향을 받지않고, 수치의 대소관계에 따라서 최종값을 찾아갑니다.

트리기반 모델에서 OneHotEncoding했을 때 문제점

  • 차원의 증가하여 과적합 문제를 야기합니다.
  • 중요도가 높고 범주가 많은 특성이 여러가지로 분해되어 중요하지 않는 수치형 변수가 상위 노드를 차지하여 성능저하를 일으킵니다.

Ordinal Encoding 할때 맵핑 하이파라미터 유무에 따른 값의 차이

  • 없음 → 데이터를 값을 기준으로 계속해서 분할하기 때문에 같은 성능이 나온다.
profile
ENTJ 데이터 분석가 준비중입니다:)

0개의 댓글