오늘 끝나면
나이브 베이즈
- ✓나이브 베이즈의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 나이브이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
단어 확률 계산해서 어디 속하는지 분류 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
통계 · 19
나이브
베이즈
메일 속 단어 확률을 쭉 곱해 어느 쪽인지 가림.
스팸에서 잘 나오는 단어 vs 정상에서 잘 나오는 단어.
곱이 더 큰 쪽이 정답임.
베이즈에 '순진한' 가정을 더함
나이브 베이즈는 베이즈 정리로 분류하는 방법임.
새 메일이 스팸일 확률 vs 정상일 확률을 비교함.
베이즈 정리는 이렇게 말함.
P(스팸|단어들) ∝ P(스팸) × P(단어들|스팸)
문제는 P(단어들|스팸)임.
단어 묶음 전체의 확률은 경우의 수가 폭발해 못 셈.
그래서 순진한(naive) 가정을 넣음.
단어들이 서로 독립이라고 가정함.
그러면 묶음 확률 = 각 단어 확률의 곱으로 쪼개짐.
P(무료, 당첨, 계좌 | 스팸)
P(무료|스팸)
× P(당첨|스팸)
× P(계좌|스팸)
단어마다 클래스별 확률을 학습
학습은 단순함. 단어가 각 클래스에서 얼마나 자주 나오는지 셈.
스팸 메일을 모아 ‘무료’가 든 비율을 셈 → P(무료|스팸).
정상 메일에서도 똑같이 셈 → P(무료|정상).
무료·당첨은 스팸 쪽 확률이 높음.
회의·첨부는 정상 쪽 확률이 높음.
이 확률표가 모형의 전부임.
한 단어도 안 본 경우엔 확률이 0이 되어 곱 전체가 0이 됨.
그래서 실무에선 작은 값을 더해줌(라플라스 평활).
단어 확률을 곱해 점수를 냄
오른쪽에서 직접 해봄. 메일에 든 단어를 켜고 꺼 보셈.
켠 단어마다 스팸 우도, 정상 우도를 prior에 차례로 곱함.
스팸곱과 정상곱, 두 점수가 나옴.
무료·당첨 같은 단어를 켜면 스팸곱이 커져 확률이 급등함.
회의·안녕 같은 단어를 켜면 정상곱이 커져 확률이 내려감.
실제론 아주 작은 확률을 여러 번 곱해 값이 0으로 깔림.
그래서 곱 대신 로그를 더하는 식으로 계산함(언더플로 방지).
↑ = 스팸에 자주 / ↓ = 정상에 자주. 단어를 켤수록 곱이 한쪽으로 쏠림.
| 항 | ×스팸 | ×정상 |
|---|---|---|
| prior | 0.5 | 0.5 |
| 무료 | 0.7 | 0.05 |
| = 곱 | 3.50e-1 | 2.50e-2 |
스팸일 확률 = 스팸곱 / (스팸곱 + 정상곱) = 93.3%. 더 큰 쪽으로 분류함.
더 그럴듯한 클래스로 분류
마지막은 비교임. 스팸곱과 정상곱 중 큰 쪽으로 분류함.
확률 %로 보려면 정규화함.
P(스팸) = 스팸곱 / (스팸곱 + 정상곱)
가정은 거칠음. 실제로 ‘무료’와 ‘당첨’은 같이 잘 나옴(독립 아님).
그래도 분류 정답에는 잘 먹힘.
빠르고 가볍고 단어 많은 텍스트에 강함.
스팸 필터·문서 분류의 오래된 기본기임.
Q. 나이브 베이즈에서 순진한(naive) 가정이란?
단어(특성)들이 서로 독립이라고 보는 가정임.덕분에 묶음 확률을 각 단어 확률의 곱으로 쪼갤 수 있음.
실제론 거칠지만(단어들은 보통 함께 나옴) 분류엔 잘 작동함.