2024. 1. 2. 15:57ㆍpython/머신러닝
규칙을 학습을 통해 자동으로 습득하고, 분류 규칙을 생성하는 지도 학습 모델(분류, 회귀), 머신러닝 알고리즘
- Gareth James et al., An Introduction to Statistical Learning: with Applications in Python, Springer, 2023
- 파이썬 머신러닝 완벽 가이드
- 파이썬으로 배우는 머신러닝의 교과서
- 딥러닝 교과서 Do it
* 본 게시물은 필자가 공부를 위해 쓴 게시물입니다.
1. 결정트리 구조

루트노드
- 처음 분류 기준, 조건
규칙노드
- feature의 결합, 규칙조건
리프노드
- 결정된 클래스 값, 마지막 노드
서브트리
- 새로운 규칙조건에 의해 생성
*트리의 깊이(depth)가 깊어질수록, 결정트리의 예측성능은 저하될 가능성이 있음
어떤 방식으로 트리를 분할할 것인가? 분할하기 위해 무엇이 필요한가?
-> 최대한 균일한 데이터 셋을 구성할 수 있도록 분할해야한다.
2. 정보량
: 놀라움의 정도, 확률을 표현하는 데 필요한 비트 수 (사건이 얼마나 발생하는 가)
- 확률이 낮은 사건이 발생하면 놀라움의 정도가 커지므로 정보가 많음

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

- P(x) = 0, I(P) -> ∞ : 확률이 0이면 정보량 무한대
- P(x) = 1, I(P) -> 0 : 확률이 1이면 정보량 0
- P(x)값이 작을수록 정보량이 커짐
* 발생하지 않는 사건의 정보량을 무한대이며 100% 발생하는 사건의 정보량은 없음
3. 엔트로피
: 데이터 집합의 혼잡도, 서로 다른 데이터가 섞여있을 수록 엔트로피가 높음
- 확률변수 또는 확률분포가 얼마나 불확실한가 혹은 무작위한가

- 분산이 클수록 넓은 범위에서 사건이 발생함 -> 어떤 사건이 발생할지 불확실함 -> 엔트로피 높은 상태
- 분산이 작을수록 좁은 범위에서 사건이 발생함 -> 어떤 사건이 발생할지 확실함 -> 엔트로피가 낮은 상태
- 불확실성 : 어떤 데이터가 나오는지 예측하기 어려운 경우
*엔트로피는 확률변수의 정보량의 기댓값으로 정의됨


- 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의 값은 0이 됨
- Cross Entropy - Entropy, 엔트로피의 값은 고정된 값이므로 CE, 크로스엔트로피를 최소화 시켜야 함
- CE가 작을수록 DKL도 작아져 불확실성이 제어됨
1) 순방향 KL
: 두 분포의 차를 기준 분포 p에 대한 기댓값으로 표현한 DKL(p||q)

- p(x) > 0인 영역에서 두 분포의 차이를 최소화 하려함
- p(x) = 0, KL = 0
- q(x)는 p(x)의 전체 분포를 커버
2) 역방향 KL
: 두 분포의 차를 추정 분포 q에 대한 기댓값으로 표현한 DKL(qllp)
-> H(q,p) - H(q)

- p(x)의 가장 높은 봉우리에서 두 분포의 차이를 최소화 하려함
- q(x) = 0, KL = 0
- q(x)는 p(x)의 모든 영역을 커버할 필요 없음
- p(x)가 가장 큰 값을 갖는 위치에 q(x)가 모두 몰려 있을때, CE는 최소화 됨
- q(x)를 p(x)의 가장 높은 봉우리를 중심으로 최대한 넓은 분포를 만듦, 엔트로피를 최대화 함
* 역방향 KL 최소화
7. 결정트리모델 특징
- 정보의 균일도 기반, 직관적
- 각 feature의 스케일링, 정규화 같은 전처리 작업이 팔요 없음
8. 결정트리모델 단점
- 과적합 발생(모델 깊이가 깊어짐) -> 정확도 떨어짐 -> 예측 성능 떨어짐
-> 트리 깊이를 사전에 제한하여 성능 튜닝
'python > 머신러닝' 카테고리의 다른 글
커널 방법 이론(kernel method, kernel trick) (0) | 2024.01.16 |
---|---|
앙상블 기법(Ensemble Methods) (1) | 2024.01.09 |
K-최근접 이웃 알고리즘(K-Nearest Neighbor, KNN) (1) | 2024.01.09 |