[핸즈온 머신러닝 2판] 6장 정리

juyeon·2022년 8월 20일
0
post-custom-banner

읽기전에

개념 정리

python 정리

6장 결정 트리(decision tree)

특징 및 장점

  • 분류, 회귀, 다중출력도 가능한 만능 알고리즘!
  • 랜덤 포레스트의 기본 구성 요소
  • 불순도 계산 시에 샘플 특성값을 사용하지 않음. 즉 거리 개념이 들어가지 않기 때문에 데이터 전처리가 거의 필요하지 않음
  • 각 특성이 개별 처리되기 때문에 데이터 스케일에 영향을 받지 않아 특성의 정규화나 표준화가 필요없다.
  • 시각화로 한눈에 모델을 볼 수 있음

화이트 박스 모델이다

: 직관적, 결정 방식을 이해하기 쉬움

  • 반대로, 블랙 박스 모델이란?
    : 랜덤 포레스트, 신경망 등.
    : 성능이 뛰어나고 예측을 만드는 연산 과정을 쉽게 확인할 수 있지만, 예측이 나온 과정을 설명하기 어려움.

클래스 확률 추정

  • 한 샘플이 특정 클래스에 속할 확률 추정 가능

단점

  • 모든 분할은 축에 수직이기 때문에 계단 모양의 결정 경계를 만듦
    : 훈련 세트의 회전에 민감
  • 훈련 데이터의 작은 변화에도 매우 민감
  • 과대적합 가능성

결정 트리 학습과 시각화

  • 분류
tree_clf = DecisionTreeClassifier(max_depth=2, random_state=42)
  • 루트 노드: 깊이가 0인 맨 꼭대기 노드
  • 리프 노드: 자식 노드를 가지지 않는 노드
  • 자식 노드
  • 두 개씩 가지를 뻗으며 성장: True of False
  • 순수 노드(퓨어 노드): 한 노드에 한 클래스만 담김. gini=0
  • max_depth=2: 깊이 설정. 만약 설정 안하면, 리프노트가 순수해질 때까지 진행. 즉 과대적합 된다.
  • plot_tree(): 트리 그리기

CART 훈련 알고리즘

  • 훈련 세트를 두개의 서브셋으로 나누기를 반복. 최대 깊이 혹은 불순도를 줄이는 분할을 찾을 수 없을 때 멈춤.
  • 탐욕적 알고리즘(그리디)
    : 각 깊이에서 최적의 분할을 찾음
    : 항상 최적해를 보장하지는 않는다.

계산 복잡도

  • 예측의 복잡도: O(log2(m))O(log_2(m))
  • 훈련 복잡도: O(n×mlog2(m))O(n\times mlog_2(m)): 훈련 세트가 클 경우, 많이 느림

불순도

지니 불순도

  • gini=0: 한 노드의 모든 샘플이 같은 클래스에 속해있을 떄. 즉 순수 노드
  • 두개로 나눌때, 지니 불순도의 최댓값은 0.5
    Gi=1k=1nPi,k2G_i = 1 - \displaystyle \sum_{k=1}^n{P_{i,k}}^2

엔트로피 불순도

  • 모든 메시지가 동일할 때, 즉 어떤 세트가 한 클래스의 샘플만 담고 있을 때 엔트로피는 0이 됨
  • 최댓값은 1
  • 지니 불순도에서는 제곱이었다면, 엔트로피 불순도에서는 log로
    Hi=k=1nPi,klog2(Pi,k)H_i = - \displaystyle \sum_{k=1}^nP_{i,k}log_2(P_{i,k})
    Pi,k0P_{i,k}\ne0

규제 매개변수

  • 훈련 데이터에 대한 제약이 거의 없지만, 제한을 두지 않으면 과대적합되기 쉬움.
  • 비파라미터 모델임
    : 훈련되기 전에 파라미터 수가 결정되지 않음. 그래서 모델 구조가 데이터에 맞춰져서 고정되지 않고 자유로움.
    • 그럼, 파라미터 모델이란?
      : 선형 모델 등
      : 얘는 과소적합 될 가능성이 높음.
  • 흔히 max_depth 규제
  • min_samples_split, min_samples_leaf, min_weight_fraction_leaf, max_leaf_nodes, max_features 규제

과대적합 제어

회귀

  • 각 노드에서 클래스를 예측(분류에서)하는 대신 어떤 값을 예측.
  • MSE를 최소화하도록 분할 반복
  • 결정 트리 회귀 모델을 그래프로 나타냈을 때, 각 영역의 예측값은 항상 그 영역에 있는 타깃값의 평균이 된다(즉, 리프 노드에 있는 샘플의 평균값)

궁금증

  1. 237p. '지니 불순도가 가장 빈도 높은 클래스를 한쪽 가지로 고립시키는 경향이 있는 반면, 엔트로피가 조금 더 균형 잡힌 트리를 만든다'의 의미와 이유?
  1. 데이터의 회전은 무엇을 의미하나? 데이터의 변형을 초래하는건 아닌가?
profile
내 인생의 주연
post-custom-banner

0개의 댓글