결정트리(Decision trees) 이론

2024. 1. 2. 15:57python/머신러닝

규칙을 학습을 통해 자동으로 습득하고, 분류 규칙을 생성하는 지도 학습 모델(분류, 회귀), 머신러닝 알고리즘

 

* 본 게시물은 필자가 공부를 위해 쓴 게시물입니다.

 

1. 결정트리 구조

파이썬 머신러닝 완벽 가이드 결정트리 구조

루트노드

- 처음 분류 기준, 조건

규칙노드

- feature의 결합, 규칙조건

리프노드

- 결정된 클래스 값, 마지막 노드

서브트리

- 새로운 규칙조건에 의해 생성

 

*트리의 깊이(depth)가 깊어질수록, 결정트리의 예측성능은 저하될 가능성이 있음

 

어떤 방식으로 트리를 분할할 것인가? 분할하기 위해 무엇이 필요한가?
-> 최대한 균일한 데이터 셋을 구성할 수 있도록 분할해야한다.

 

2. 정보량

: 놀라움의 정도, 확률을 표현하는 데 필요한 비트 수 (사건이 얼마나 발생하는 가)

- 확률이 낮은 사건이 발생하면 놀라움의 정도가 커지므로 정보가 많음

정보량 수식

- 확률에 반비례 + 독립사건 정보량 -> 확률의 역수에 로그를 취한 값

정보량 그래프(do it)

- P(x) = 0, I(P) -> : 확률이 0이면 정보량 무한대

- P(x) = 1, I(P) -> 0 : 확률이 1이면 정보량 0

- P(x)값이 작을수록 정보량이 커짐 

 

* 발생하지 않는 사건의 정보량을 무한대이며 100% 발생하는 사건의 정보량은 없음

 

 

3. 엔트로피

: 데이터 집합의 혼잡도,  서로 다른 데이터가 섞여있을 수록 엔트로피가 높음

- 확률변수 또는 확률분포가 얼마나 불확실한가 혹은 무작위한가

do it, 엔트로피와 확률 분포

 

- 분산이 클수록 넓은 범위에서 사건이 발생함 -> 어떤 사건이 발생할지 불확실함 -> 엔트로피 높은 상태 

- 분산이 작을수록 좁은 범위에서 사건이 발생함 -> 어떤 사건이 발생할지 확실함 -> 엔트로피가 낮은 상태

- 불확실성 : 어떤 데이터가 나오는지 예측하기 어려운 경우

 

*엔트로피는 확률변수의 정보량의 기댓값으로 정의됨

엔트로피 수식(그래프, 베르누이 분포)
엔트로피 그래프

- p(x) = 0, -logp(x) = ∞ , -p(x)logp(x) = 0

- p(x) = 1, -logp(x) = 0, -p(x)logp(x) = 0

 

*p(x) = 0 or 1일때, 엔트로피는 0이 되고 p(x) = 0.5일때, 엔트로피는 가장 커진다.

 

 

4 .분할 기준 

1) 엔트로피를 통한 정보이득을 통해 정보의 균일도를 측정하는 대표적인 방법, 분할 기준
2) 지니 계수

 

1) 정보이득(Information gain)이 높은 속성 기준 분할

- 정보이득지수 : 1-엔트로피지수

- 정보이득지수가 1에 가까울수록 (엔트로피 지수가 낮을수록) 잘 분류됨

2) 지니계수(Gini index)가 낮은 속성 기준 분할

- 지니계수 : 통계적 분산 정도를 정량화해서 표현한 값, 범위[0,1]

- 지니계수가 낮을수록 잘 분류됨

 

5. 크로스 엔트로피(Cross-Entropy, CE )

: 두 확률분포(q,p)의 차이, 유사하지 않은 정도(q로 p 추정)를 나타내는 지표 

- 실제 분포를 모르고 모델링하여 실제분포를 예측하고자 함(실제 값과 예측값의 차이 계산)

- q의 정보량을 p에 대한 기댓값을 취하는 것으로 정의 됨

크로스 엔트로피 수식/

 

- q가 p를 정확히 추정해서 두 분포가 같아지면 CE는 최소가 됨

- q가 p를 잘못 추정하면 CE는 높아짐

 

6. 쿨백 라이블러 발산 (KL Divergence)

- 두 확률분포(q,p)가 얼마나 다른지(차이, dissimilarity)를 나타내는 측도

- Entropy와 Cross-Entropy의 차이

DKL 수식

- 두 확률 분포가 가까울수록(유사할수록) DKL의 값은 0이 됨

- Cross Entropy - Entropy, 엔트로피의 값은 고정된 값이므로 CE, 크로스엔트로피를 최소화 시켜야 함

- CE가 작을수록 DKL도 작아져 불확실성이 제어됨

 

1) 순방향 KL

: 두 분포의 차를 기준 분포 p에 대한 기댓값으로 표현한 DKL(p||q)

순방향 KL

- p(x) > 0인 영역에서 두 분포의 차이를 최소화 하려함

- p(x) = 0, KL = 0 

- q(x)는 p(x)의 전체 분포를 커버

 

2) 역방향 KL

: 두 분포의 차를 추정 분포 q에 대한 기댓값으로 표현한 DKL(qllp)

-> H(q,p) - H(q)

역방향 KL

- p(x)의 가장 높은 봉우리에서 두 분포의 차이를 최소화 하려함

- q(x) = 0, KL = 0

- q(x)는 p(x)의 모든 영역을 커버할 필요 없음

- p(x)가 가장 큰 값을 갖는 위치에 q(x)가 모두 몰려 있을때, CE는 최소화 됨

- q(x)를 p(x)의 가장 높은 봉우리를 중심으로 최대한 넓은 분포를 만듦, 엔트로피를 최대화 함

 

* 역방향 KL 최소화 

 

7. 결정트리모델 특징

- 정보의 균일도 기반, 직관적

- 각 feature의 스케일링, 정규화 같은 전처리 작업이 팔요 없음

 

8. 결정트리모델 단점

- 과적합 발생(모델 깊이가 깊어짐) -> 정확도 떨어짐 -> 예측 성능 떨어짐

  -> 트리 깊이를 사전에 제한하여 성능 튜닝