ML 05. 결정 트리

cuckoo·2022년 11월 17일
0

Machine Learning

목록 보기
5/11

키워드

  • 사이킷런 파이프라인(pipelines)
  • 사이킷런 결정트리(decision tree)
  • 결정트리의 특성 중요도(feature importances)
  • 결정트리 모델의 장점

결정트리

트리 형태로 데이터를 특성 기준 마다 boolean값으로 의사결정을 하여 최종 타겟값을 찾아가는 알고리즘

  • 회귀와 분류 문제 모두 사용 가능
  • 회귀 : 평균
    • 최종 노드의 데이터를 평균을 내어 최종 타겟값을 도출
  • 분류 : 최빈값
    • 랜덤 포레스트 모델의 기본 모델

불순도

  • 섞여있는 정도를 수치로 나타내는 것
  • 불순도가 낮은 경우
    • 지니불순도나 엔트로피는 낮은값을 갖게됩니다. → 결국 노드를 분할하는 시점에서 가장 비용함수를 줄이는 분할특성과 분할지점을 찾아 내는 프로세스가 필요합니다.
  • 분할에 사용할 특성이나 분할지점(값)은 타겟변수를 가장 잘 구별해 주는(불순도의 감소가 최대가 되는, 정보획득이 가장 큰)것을 선택합니다.

정보획득(Information Gain)

  • 특정한 특성을 사용해 분할했을 때 엔트로피의 감소량을 뜻합니다. IG(T,a)=H(T)−H(T|a) = 분할전 노드 불순도 - 분할 후 자식노드 들의 불순도
  • 가장 우선적으로, 자주 사용

비용함수

  • 지니불순도(0~0.5)
    • 트리에 한 노드의 모든 샘플이 같은 클래스에 속해 있을 때, 값이 0이되고 이때 순수하다고 말합니다.
    • 범주들이 섞여있을 수록 수치가 커집니다.
  • 엔트로피(0~1)
    • 한 노드에서 모든 샘플이 같은 클래스에 때 0이 됩니다.

하이퍼파라미터

  • min_samples_split
    • 노드를 분할하기 위한 최소한의 샘플 데이터 수
    • 노드에서 분기를 만들기위해 최소한 얼마나 되는 샘플이 노드에 있는지 확인
  • min_samples_leaf
    • 말단 노드가 되기 위한 최소한의 샘플 데이터 수
    • leaf노드에 최소한 몇개의 샘플이 존재하는지 설정
  • max_depth
    • 트리의 최대 깊이
  • max_features
    • 최적의 분할을 위해서 고려할 최대 피처의 개수
  • max_leaf_nodes
    • 말단 노드의 최대 개수

결정 트리에서의 Scaler가 의미 없는 이유

  • 결정트리는 분할의 개념이기때문에 각 칼럼 별 단위를 맞출 필요가 없습니다.
  • 자료의 형태에 상관없이 순위를 통해서만 분석에 영향을 주기때문에 이상치에 민감하지 않습니다.
  • 결국 대소관계가 유지 되므로 scaler의 영향을 받지 않습니다.
profile
ENTJ 데이터 분석가 준비중입니다:)

0개의 댓글