BraveTiger

CH5. 머신러닝_DecisionTreeClassifier 본문

취업 준비/AIVLE SCHOOL

CH5. 머신러닝_DecisionTreeClassifier

BraveTiger 2023. 3. 27. 23:35

의사결정트리

: 데이터에 내재되어 있는 패턴을 변수의 조합으로 나타내는 예측/분류 모델을 나무의 형태로 만드는 것으로 데이터에 있는 규칙을 학습을 통해 자동으로 찾아내어 tree기반의 분류 규칙을 만든다.(if - else 기반)

 

※ Algorithm

  • 데이터를 2개 혹은 그 이상의 부분집합으로 분할 -> 데이터가 균일해지도록 분할
  • 분류: 비슷한 범주를 갖고 있는 관측치끼리 모음
  • 예측: 비슷한 수치를 갖고 있는 관측치끼리 모음

결정트리 모델링 프로세스 - 분할법칙

  • 분할변수와 변할기준은 목표변수의 분포를 가장 잘 구별해주는 쪽으로 정한다.
  • 목표변수의 분포를 잘 구별해주는 측도로 순수도(purity) 또는 불순도(impurity)를 정의한다.
  • 예를 들어, 클래스0과 1의 비율이 각각 45%, 55%인 노드는 각 클래스의 비율이 90%와 10%인 마디에서 비하여 순수도가 낮다.(불순도가 높다.)라고 해석.
  • 각 노드에서 분할변수와 불할점의 설정은 불순도의 감소가 최대가 되도록 선택한다.

정보 획득(Information gain)

: 정보 획득은 엔트로피라는 개념을 기반으로한다. 결정트리는 순도가 증가, 불순도가 감소하는 방향으로 학습을 진행하는데 이를 정보 이론에서 정보 획득이라고 한다.

( = 분기 이전의 불순도와 분기 이후의 불순도 차이)

불순도(Impurity)

: 결정트리가 분기 기준을 선택하기 위한 개념

  • 복잡성을 의미하며, 해당 범주 안에 서로 다른 데이터가 얼마나 섞여있는지를 뜻한다.
  • 다양한 개체들이 섞여 있을수록 불순도가 높아진다.
  • 분기할수록 현재 노드에 비해 자식 노드의 불순도가 감소하도록 설정해야한다.
  • 현재 노드와 자식 노드의 불순도 차이를 정보획득(Information gain)이라고 한다.

※ 불순도 함수(Gini, Entropy)

불순도 함수의 값(지니 지수 or 엔트로피 지수)가 낮다는 것은 데이터 균일도가 높다라는 것을 의미한다.

 

1) 지니지수 

  • 지니지수가 1에 가깝다: 불순도가 높다.(데이터의 집합이 서로 다른 값이 많이 섞여 있다.)
  • 지니지수가 0에 가깝다: 불순도가 낮다.(데이터의 집합이 같은 값이 많이 섞여 있다.)

2) 엔트로피 지수

  • 엔트로피 = 0: 해당 분류에 속하는 개체의 속성이 모두 동일하다.
  • 엔트로피가 1에 가깝다: 불순도가 높다.(데이터의 집합이 서로 다른 값이 많이 섞여 있다.)
  • 엔트로피가 0에 가깝다: 불순도가 낮다.(데이터의 집합이 같은 값이 많이 섞여 있다.)

모델 학습

: 결정 트리는 입력 변수 영역을 두 개로 구분하는 재귀적 분할과 너무 자세히 구분된 영역을 통합하는 가지치기 두 과정을 거친다.

1. 재귀적 분할

: 특정 영역인 하나의 노드내에서 하나의 변수 값을 기준으로 분기하여 새로 생성된 자식 노드들의 동질성이 최대가 되도록 분기점을 선택하는 것.

2. 가지치기

: 결정트리의 분기를 지속하여 full tree(순도가 100% 불순도가 0%)일 때, 적절한 수준에 terminal node를 결합해주는 과정으로 과적합을 방지한다.

  • depth를 제한
  • 한 노드에 들어있는 최소 데이터 수를 지정

변수 중요도

의사결정나무의 알고리즘에는 ID3, C4.5, CART 등이 있지만, 그 중에서도 Scikit-learn에서는 최적화된 CART 알고리즘을 이용한다

[CART Algorithm]

  • 각 노드가 2개의 child 노드를 가지는 binary tree를, 적절한 불순도(impurity) 지표를 기준으로 생성해 나가는 알고리즘
  • 목적이 분류(Classification)일 때에는 불순도 지표로 Gini 계수 및 엔트로피를 이용
  • 목적이 회귀(Regression)일 때에는 MSE(Mean Square Error) 등을 이용해서 분산을 감소시키는 방향으로 노드를 분할
  • CART 알고리즘은 바로 이 불순도를 이용해서 가장 중요한 변수들을 찾아낸다.

[불순도 기반 Feature Importance의 한계]

  • random forest Feature Importance는 biased하다.
    • 연속형 변수 or 카테고리 개수가 많은 변수들의 변수 중요도를 부풀릴 가능성이 있다.
  • 데이터 학습 과정에서 나온 변수 중요도이기 때문에 test 데이터 셋에서 이 변수들이 실제로 유의미한지 알 수 없다.
  • 모델이 과적합될수록 연속형 변수의 변수 중요도를 부풀린다

결정 트리 모델의 단점

  • 계층적 구조로 인해 중간에 에러가 발생하면 다음 단계로 에러가 계속 전파된다.
  • 학습 데이터의 미세한 변동에도 최종 결과에 크게 영향을 미친다.
  • 적은 개수의 노이즈에도 크게 영향을 받는다.
  • 나무의 최종노드 개수를 늘리면 과적합 위협
  • 예측 성능을 향상시키기 위해 복잡한 규칙 구조를 가져야 하며 이로 인해 과적합이 발생하여 예측 성능이 저하될 수도 있다.

★결정 트리와 앙상블★

위와 같은 단점은 오히려 앙상블 기법에서 장점으로 작용한다.

  • 앙상블은 매우 많은 여러 개의 약한 학습기(상대적으로 예측 성능이 떨어지는 학습 알고리즘)을 결합해 확률적 보완과 오류가 발생한 부분에 대한 가중치를 업데이트하면서 예측 성능을 향상시키는데 결정 트리가 좋은 약한 학습기가 된다.

의사결정나무 실습

https://colab.research.google.com/drive/1iV1I8QpYohiR_UbdBPflBaxbdlKRxQ61#scrollTo=btecMvT1BfS5

 

Google Colaboratory Notebook

Run, share, and edit Python notebooks

colab.research.google.com

 

Comments