이번 문서의 목표: 결정트리가 어떤 기준으로 데이터를 나누는지 지니 지수와 엔트로피·정보이득을 실제 숫자 10개로 끝까지 계산해 검산하고, 나이브 베이즈가 조건부 독립을 가정해 어떻게 실제 확률을 계산하는지 손으로 재현할 수 있게 한다.
왜 “어떻게 나눌지”가 문제인가 — 결정트리의 출발점
06편에서 지도학습은 입력 특징으로 정답 레이블을 맞히는 문제라고 배웠습니다. 결정트리(Decision Tree)는 스무고개처럼 “이 조건을 만족하는가?”라는 질문을 반복해서 데이터를 점점 더 순수한(한 클래스에 가까운) 그룹으로 쪼개 나가는 알고리즘입니다. 문제는 데이터를 나누는 기준이 되는 질문(어떤 특징을, 어떤 값으로 나눌지)이 무수히 많다는 점입니다. 결정트리는 나눈 뒤 두 그룹이 얼마나 순수해지는가를 숫자로 재서, 가장 순수해지는 질문을 고릅니다. 이 순수도를 재는 두 가지 지표가 지니 지수(Gini Index)와 엔트로피(Entropy)입니다.
쉽게 말하면: 지니 지수와 엔트로피는 “한 그룹 안에 서로 다른 클래스가 얼마나 섞여 있는가”를 숫자 하나로 나타낸 것입니다. 값이 작을수록 순수합니다(한 클래스로만 몰려 있다는 뜻).
1. 지니 지수와 엔트로피 — 실제 숫자로 계산
쇼핑몰 고객 10명의 구매 여부 데이터가 있습니다. 이 중 6명은 “구매”(양성), 4명은 “비구매”(음성)입니다. 먼저 나누기 전 이 10명 전체(루트 노드)의 순수도를 계산합니다.
지니 지수는 “무작위로 뽑은 두 샘플이 서로 다른 클래스일 확률”을 나타내며, 공식은 다음과 같습니다.
- : 클래스 가 노드 안에서 차지하는 비율
엔트로피는 정보이론에서 “불확실성의 크기”를 재는 지표로, 값이 클수록 어떤 클래스가 나올지 예측하기 어렵다는 뜻입니다.
- : 밑이 2인 로그(정보를 이진수 비트 단위로 재기 위함)
결과 해석: 루트 노드는 지니 , 엔트로피 로 순수하지 않은(섞인) 상태입니다. 만약 6:4가 아니라 10:0(한 클래스만 있음)이었다면 두 지표 모두 이 되고, 5:5(완전히 반반)였다면 지니는 , 엔트로피는 로 최댓값을 가집니다.
2. 분할 후 정보이득 계산 — 전 과정
“회원등급이 VIP인가?”라는 질문으로 10명을 나눴더니, VIP 그룹(A) 7명 중 5명이 구매·2명이 비구매, 일반 그룹(B) 3명 중 1명이 구매·2명이 비구매로 나뉘었습니다.
검산 1 (분할 전후 인원수 일치 확인): (전체 일치), (구매자 합 일치), (비구매자 합 일치). 분할이 데이터를 빠뜨리지 않고 정확히 나눴음을 확인했습니다.
그룹 A(7명: 구매 5, 비구매 2)의 지니와 엔트로피:
그룹 B(3명: 구매 1, 비구매 2)의 지니와 엔트로피:
전체 분할 후 가중평균(그룹 크기 비율로 가중치를 매김):
정보이득(Information Gain)은 분할 전 불순도에서 분할 후 가중평균 불순도를 뺀 값으로, 이 값이 클수록 좋은 분할입니다.
검산 2 (극단값으로 지표 확인): 만약 VIP 그룹이 7명 전부 구매였다면 , 이 되어 완전히 순수한 노드가 됩니다. 위 계산에서 , 로 보다 크게 나온 것은 이 그룹에 아직 비구매자 2명이 섞여 있기 때문이며, 실제 그룹 구성(5:2)과 방향이 일치합니다. 결정트리는 여러 후보 질문(특징) 각각에 대해 이 정보이득을 계산한 뒤, 정보이득이 가장 큰 질문을 그 노드의 분할 기준으로 선택합니다.
3. 지니와 엔트로피, 무엇이 다른가
| 구분 | 지니 지수 | 엔트로피 |
|---|---|---|
| 최솟값 | (완전 순수) | (완전 순수) |
| 이진분류 최댓값 | (5:5일 때) | (5:5일 때) |
| 계산 비용 | 로그 계산이 없어 더 빠름 | 로그 계산이 필요해 상대적으로 느림 |
| 사용 알고리즘 | CART | ID3, C4.5 |
| 실무 차이 | 두 지표로 고른 분할 기준은 대부분 비슷하며, 결과에 큰 차이가 나는 경우는 드물다 |
4. 가지치기 — 결정트리의 과적합 대응
결정트리를 끝까지(모든 노드가 완전히 순수해질 때까지) 키우면 훈련 데이터의 노이즈까지 전부 외워버려 과적합이 심하게 발생합니다. 이를 막는 방법을 가지치기(Pruning)라고 합니다.
| 방법 | 방식 |
|---|---|
| 사전 가지치기(Pre-pruning) | 트리의 최대 깊이, 노드가 갈라지기 위한 최소 샘플 수 등을 미리 제한해 트리가 너무 커지지 않게 막는다 |
| 사후 가지치기(Post-pruning) | 일단 트리를 끝까지 키운 뒤, 검증 데이터 성능이 나아지지 않는 가지를 잘라낸다 |
과적합과 편향-분산 트레이드오프의 일반적인 이론은 19편에서 교차검증과 함께 더 깊이 다룹니다. 결정트리에서는 “깊이가 깊을수록 훈련 정확도는 올라가지만 검증 정확도는 어느 시점부터 떨어진다”는 패턴이 대표적인 출제 포인트입니다.
5. 나이브 베이즈 — 조건부 독립을 가정하고 확률을 곱한다
나이브 베이즈(Naive Bayes)는 베이즈 정리(조건부 확률을 뒤집어 계산하는 정리)를 이용해 “이 데이터가 주어졌을 때 어떤 클래스일 확률이 가장 높은가”를 계산하는 분류 알고리즘입니다. 이름의 “나이브(순진한)“는 모든 특징이 클래스가 주어졌을 때 서로 독립적이라는, 실제로는 잘 맞지 않을 수 있는 순진한 가정을 그대로 밀어붙이기 때문에 붙은 이름입니다.
쉽게 말하면: 나이브 베이즈는 “이 메일에 ‘무료’라는 단어가 있을 확률”과 “‘할인’이라는 단어가 있을 확률”을 마치 서로 아무 상관 없는 것처럼 각각 따로 계산해서 곱해버립니다. 실제로는 두 단어가 함께 나오는 경향이 있어도 무시하는 것입니다.
조건부 독립 가정(Conditional Independence Assumption)을 수식으로 쓰면 다음과 같습니다.
- : 클래스(예: 스팸 여부)
- : 특징(예: 특정 단어의 등장 여부)
실제 확률로 계산해 보겠습니다. 스팸 메일 분류기를 만든다고 합시다. 사전 확률(Prior, 데이터를 보기 전에 이미 알고 있는 클래스 비율)과 각 단어가 클래스별로 등장할 조건부 확률(Likelihood, 우도)이 다음과 같습니다.
| 구분 | 스팸(Spam) | 정상(Ham) |
|---|---|---|
| 사전 확률 | 0.4 | 0.6 |
| 0.7 | 0.2 | |
| 0.6 | 0.3 |
새로 온 메일에 “무료”와 “할인”이 둘 다 들어 있습니다. 조건부 독립을 가정해 각 클래스에 대한 값을 계산합니다(베이즈 정리의 분모는 두 클래스에서 공통이므로 비교 목적에서는 생략하고, 분자만 계산한 뒤 마지막에 정규화합니다).
두 값을 더한 합으로 각각을 나누어 실제 확률로 정규화합니다.
검산: 으로 확률의 합이 정확히 이 됩니다. 이 메일은 스팸일 확률이 약 82.4퍼센트로 계산되어 스팸으로 분류됩니다.
자주 틀리는 함정 — 제로 확률 문제(Zero-Frequency Problem): 만약 훈련 데이터에 “할인”이라는 단어가 스팸 메일에서 단 한 번도 등장한 적이 없어 으로 추정되면, 조건부 독립 가정에 따라 전체 곱셈 결과가 다른 단어와 무관하게 무조건 이 되어버립니다. 이를 막기 위해 모든 확률에 작은 값을 더해 이 되지 않게 보정하는 라플라스 스무딩(Laplace Smoothing, 가산 평활화)을 함께 씁니다.
6. 결정트리 vs 나이브 베이즈
| 구분 | 결정트리 | 나이브 베이즈 |
|---|---|---|
| 기본 원리 | 불순도(지니·엔트로피)가 가장 크게 줄어드는 질문으로 반복 분할 | 조건부 독립을 가정하고 베이즈 정리로 사후 확률 계산 |
| 해석 가능성 | 매우 높음(질문 흐름을 그대로 사람이 읽을 수 있음) | 각 특징의 기여도를 확률로 확인 가능하나 트리만큼 직관적이지는 않음 |
| 과적합 위험 | 깊이 제한이 없으면 매우 높음(가지치기 필요) | 상대적으로 낮음(가정이 강해 오히려 과적합에 덜 취약) |
| 특징 간 상관관계 | 자연스럽게 반영됨(순차적 분할이 상호작용을 포착) | 조건부 독립 가정을 위반하면 성능이 떨어질 수 있음 |
| 대표 활용 | 신용 심사, 의료 진단 규칙처럼 근거 설명이 중요한 경우 | 스팸 필터링, 텍스트 분류처럼 특징 수가 많고 계산이 빨라야 하는 경우 |
자주 틀리는 점: “나이브 베이즈는 특징 간 상관관계를 반영해 더 정교하게 계산한다”는 설명은 틀렸습니다. 오히려 정반대로, 나이브 베이즈는 특징 간 상관관계를 무시하는(독립으로 가정하는) 알고리즘이며, 이 단순한 가정 덕분에 계산이 빠르고 적은 데이터로도 잘 작동한다는 것이 장점입니다.
핵심 정리
- 지니 지수 와 엔트로피 는 노드의 불순도를 재며, 값이 작을수록 순수한 노드다. 6:4 데이터에서 지니는 , 엔트로피는 이다.
- 정보이득은 분할 전 불순도에서 분할 후 가중평균 불순도를 뺀 값이며, 결정트리는 정보이득이 가장 큰 질문을 분할 기준으로 선택한다.
- 결정트리는 깊이 제한 없이 키우면 과적합되므로 사전·사후 가지치기로 대응한다.
- 나이브 베이즈는 특징들이 클래스가 주어졌을 때 서로 독립이라고(조건부 독립) 가정해 우도들을 단순히 곱한 뒤 정규화해 사후 확률을 구한다. 제로 확률 문제는 라플라스 스무딩으로 보정한다.