스킬캠퍼스
19강 · 나이브 베이즈
강의

오늘 끝나면

나이브 베이즈

  • 나이브 베이즈의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 나이브이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

단어 확률 계산해서 어디 속하는지 분류 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

통계 · 19

나이브
베이즈

메일 속 단어 확률을 쭉 곱해 어느 쪽인지 가림.
스팸에서 잘 나오는 단어 vs 정상에서 잘 나오는 단어.
곱이 더 큰 쪽이 정답임.

P.01통계 · 19

베이즈에 '순진한' 가정을 더함

나이브 베이즈는 베이즈 정리로 분류하는 방법임.
새 메일이 스팸일 확률 vs 정상일 확률을 비교함.

베이즈 정리는 이렇게 말함.
P(스팸|단어들) ∝ P(스팸) × P(단어들|스팸)

문제는 P(단어들|스팸)임.
단어 묶음 전체의 확률은 경우의 수가 폭발해 못 셈.

그래서 순진한(naive) 가정을 넣음.
단어들이 서로 독립이라고 가정함.
그러면 묶음 확률 = 각 단어 확률의 곱으로 쪼개짐.

P(클래스|단어들) ∝ prior × ∏ 우도
묶음 확률 → 곱으로 쪼개기
못 세는 묶음 확률

P(무료, 당첨, 계좌 | 스팸)

단어 독립 가정 (naive)
곱으로 쪼갬

P(무료|스팸)
× P(당첨|스팸)
× P(계좌|스팸)

경우의 수 폭발 → 단어별 확률 곱으로 단순화
P.02통계 · 19

단어마다 클래스별 확률을 학습

학습은 단순함. 단어가 각 클래스에서 얼마나 자주 나오는지 셈.

스팸 메일을 모아 ‘무료’가 든 비율을 셈 → P(무료|스팸).
정상 메일에서도 똑같이 셈 → P(무료|정상).

무료·당첨은 스팸 쪽 확률이 높음.
회의·첨부는 정상 쪽 확률이 높음.
이 확률표가 모형의 전부임.

한 단어도 안 본 경우엔 확률이 0이 되어 곱 전체가 0이 됨.
그래서 실무에선 작은 값을 더해줌(라플라스 평활).

무료·당첨은 스팸에 / 회의·첨부는 정상에
학습된 단어별 클래스 확률
무료스팸 0.7 · 정상 0.05
스팸 쪽으로 기움
당첨스팸 0.65 · 정상 0.03
스팸 쪽으로 기움
계좌스팸 0.5 · 정상 0.08
스팸 쪽으로 기움
회의스팸 0.06 · 정상 0.45
정상 쪽으로 기움
안녕스팸 0.2 · 정상 0.6
정상 쪽으로 기움
첨부스팸 0.1 · 정상 0.4
정상 쪽으로 기움
파란 칸 = 스팸 우도 비중
P.03통계 · 19

단어 확률을 곱해 점수를 냄

오른쪽에서 직접 해봄. 메일에 든 단어를 켜고 꺼 보셈.

켠 단어마다 스팸 우도, 정상 우도를 prior에 차례로 곱함.
스팸곱과 정상곱, 두 점수가 나옴.

무료·당첨 같은 단어를 켜면 스팸곱이 커져 확률이 급등함.
회의·안녕 같은 단어를 켜면 정상곱이 커져 확률이 내려감.

실제론 아주 작은 확률을 여러 번 곱해 값이 0으로 깔림.
그래서 곱 대신 로그를 더하는 식으로 계산함(언더플로 방지).

켠 단어들의 우도를 실시간으로 곱함
나이브 베이즈 · 스팸 판별기
입력 — 메일에 든 단어를 켜 보셈

↑ = 스팸에 자주 / ↓ = 정상에 자주. 단어를 켤수록 곱이 한쪽으로 쏠림.

출력 — 스팸일 확률
93.3%
정상 ←판정: 스팸→ 스팸
베이즈 곱 — prior에 우도를 차례로 곱함
×스팸×정상
prior0.50.5
무료0.70.05
= 곱3.50e-12.50e-2

스팸일 확률 = 스팸곱 / (스팸곱 + 정상곱) = 93.3%. 더 큰 쪽으로 분류함.

P.04통계 · 19

더 그럴듯한 클래스로 분류

마지막은 비교임. 스팸곱과 정상곱 중 큰 쪽으로 분류함.

확률 %로 보려면 정규화함.
P(스팸) = 스팸곱 / (스팸곱 + 정상곱)

가정은 거칠음. 실제로 ‘무료’와 ‘당첨’은 같이 잘 나옴(독립 아님).
그래도 분류 정답에는 잘 먹힘.

빠르고 가볍고 단어 많은 텍스트에 강함.
스팸 필터·문서 분류의 오래된 기본기임.

Q. 나이브 베이즈에서 순진한(naive) 가정이란?단어(특성)들이 서로 독립이라고 보는 가정임.
덕분에 묶음 확률을 각 단어 확률의 곱으로 쪼갤 수 있음.
실제론 거칠지만(단어들은 보통 함께 나옴) 분류엔 잘 작동함.
두 점수를 정규화 → 큰 쪽이 정답
예: ‘무료 + 당첨’ 든 메일
스팸곱2.27e-1
정상곱7.50e-4
↓ 정규화
스팸일 확률
99.7%
→ 스팸으로 분류
큰 쪽이 정답 — 스팸곱이 압도적

3줄 요약

  1. 1단어 확률 계산해서 어디 속하는지 분류
  2. 2나이브 베이즈은 분포 → 표본 → 검정 → 회귀 → 모델 선택 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

나이브

단어 확률 계산해서 어디 속하는지 분류

분포

데이터가 어떤 모양으로 퍼져 있는지 나타낸 것

표본

전체를 알기 위해 뽑아 본 일부 데이터