나이브 베이즈는 베이즈 정리를 활용한 기계학습 분류 알고리즘입니다. "나이브(순진한)"라는 이름이 붙은 이유는 모든 특징이 독립적이라는 단순한 가정을 하기 때문입니다. 놀랍게도 이 단순한 가정만으로도 많은 실무 문제에서 뛰어난 성능을 보입니다.
다이어그램이 말하는 것
●
핵심 가정: 모든 특성이 서로 독립이라고 단순화 → 빠른 계산 가능
●
공식: P(클래스|특성들) ∝ P(클래스) × ∏ P(특성|클래스)
●
스팸 필터·텍스트 분류·감성 분석에서 가장 자주 쓰이는 분류기
이메일이 스팸인지 판단할 때, "무료", "당첨", "클릭" 같은 단어들이 각각 독립적으로 스팸 확률에 기여한다고 가정합니다. 각 단어의 영향을 곱해서 전체 스팸 확률을 계산하는 것이 나이브 베이즈의 핵심입니다.
핵심 포인트
•베이즈 정리 + 특징 독립 가정 = 나이브 베이즈
간단한 예시
스팸 분류 예시
훈련 데이터:
- 스팸 메일 100개, 정상 메일 100개
단어 출현 빈도:
| 단어 | 스팸에서 | 정상에서 |
|--------|---------|---------|
| "무료" | 60회 | 10회 |
| "회의" | 5회 | 40회 |
새 이메일: "무료 회의"
P(스팸|"무료 회의") ∝ P("무료"|스팸) × P("회의"|스팸) × P(스팸)
= 0.6 × 0.05 × 0.5
= 0.015
P(정상|"무료 회의") ∝ P("무료"|정상) × P("회의"|정상) × P(정상)
= 0.1 × 0.4 × 0.5
= 0.02
결론: 0.02 > 0.015이므로 정상 메일로 분류
이해도 확인하기
정답:
모든 특징(단어)이 서로 독립적이라고 가정하기 때문입니다. 실제로는 단어들이 서로 연관되어 있지만, 이를 무시하고 독립이라고 "순진하게" 가정합니다.
정답:
텍스트 데이터는 특징(단어)의 개수가 매우 많지만, 나이브 베이즈는 각 특징을 독립적으로 계산하므로 빠르고 효율적입니다. 또한 적은 데이터로도 학습이 가능합니다.
나이브 베이즈는 베이즈 정리에 특징 독립 가정을 추가한 것입니다.
【수학적 공식】
P(C|X) = P(X|C) × P(C) / P(X)
특징 독립 가정:
P(X|C) = P(x₁|C) × P(x₂|C) × ... × P(xₙ|C)
따라서:
P(C|X) ∝ P(C) × ∏ᵢ P(xᵢ|C)
비율만 비교하면 되므로 P(X)는 생략 가능합니다.
수학적 공식
C는 클래스(카테고리), x₁, x₂, ..., xₙ은 특징들입니다. 각 특징의 확률을 곱해서 전체 확률을 계산합니다.
다양한 예시로 이해하기
예시 1: 감정 분석: 영화 리뷰 분류
영화 리뷰가 긍정인지 부정인지 판단합니다.
훈련 데이터
긍정 리뷰: "좋은 영화", "재미있는 스토리", "훌륭한 연기"
부정 리뷰: "지루한 영화", "재미없는 스토리", "형편없는 연기"
단어 확률 (라플라스 스무딩 적용)
P("재미있는"|긍정) = 2/10 = 0.2
P("재미있는"|부정) = 0/10 = 0.01 (smoothing)
P("영화"|긍정) = 3/10 = 0.3
P("영화"|부정) = 3/10 = 0.3
새 리뷰: "재미있는 영화"
P(긍정|"재미있는 영화") ∝ 0.5 × 0.2 × 0.3 = 0.03
P(부정|"재미있는 영화") ∝ 0.5 × 0.01 × 0.3 = 0.0015
결론: 긍정 리뷰로 분류
해답:
긍정 확률이 20배 높으므로 긍정으로 분류합니다.
라플라스 스무딩은 훈련 데이터에 없던 단어가 나타날 때 확률이 0이 되는 것을 방지합니다.
흔한 실수들
잘못된 방법:
확률을 곱할 때 언더플로우 발생
왜 틀렸을까?
확률값들이 매우 작아서 곱하면 0에 가까워집니다.
올바른 방법:
로그 확률을 사용하세요: log P(C|X) = log P(C) + Σ log P(xᵢ|C). 곱셈이 덧셈으로 바뀌어 안전합니다.
연습 문제
힌트:
베이즈 정리를 사용하세요. P(정상)=0.6입니다.
정답:
약 80%
해설:
P(스팸|"무료") = 0.6×0.4 / (0.6×0.4 + 0.1×0.6) = 0.24 / 0.30 = 0.8
【나이브 베이즈의 변형】
1. Multinomial Naive Bayes: 텍스트 분류에 적합. 단어 출현 횟수 고려
2. Bernoulli Naive Bayes: 단어의 유무만 고려 (0 or 1)
3. Gaussian Naive Bayes: 연속형 변수에 적합. 정규분포 가정
【특징 독립 가정의 한계】
실제로는 특징들이 독립적이지 않지만, 놀랍게도 나이브 베이즈는 잘 작동합니다. 그 이유는:
• 독립 가정이 깨져도 비율 순서는 유지되는 경우가 많음
• 과적합(overfitting)을 방지하는 정규화 효과
【하이퍼파라미터 튜닝】
• 라플라스 스무딩: α=1이 기본이지만, 데이터에 따라 조정 가능
• 특징 선택: TF-IDF, Chi-square로 중요한 특징만 선택
• 앙상블: 여러 나이브 베이즈를 투표로 결합
실무에서의 활용
IT/인터넷
실시간 스팸 필터
예시:
Gmail, Outlook 등은 나이브 베이즈를 기반으로 초당 수십만 건의 이메일을 분류합니다.
왜 중요한가?
빠른 속도와 적은 메모리로 대규모 처리가 가능합니다.
실제 사례 분석: Kaggle Spam Classification: 98% 정확도 달성
배경
SMS 스팸 데이터셋으로 나이브 베이즈의 성능을 검증합니다.
문제 상황
5,574개의 SMS 메시지를 스팸과 정상으로 분류
데이터 설명
스팸 747개 (13.4%), 정상 4,827개 (86.6%)
분석 방법
Multinomial Naive Bayes + TF-IDF 벡터화
해결책 및 결과
정확도 98.2%, F1-score 0.94
단순한 알고리즘이지만 딥러닝과 비슷한 성능
결론:
텍스트 분류에서 나이브 베이즈는 여전히 강력한 baseline입니다.