오늘 끝나면
나이브 베이즈
- ✓나이브 베이즈의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 나이브이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
단어 확률 계산해서 어디 속하는지 분류 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
통계 · 19
나이브
베이즈
메일 속 단어 확률을 쭉 곱해서 어느 쪽인지 가린다.
스팸에서 잘 나오는 단어가 있고, 정상에서 잘 나오는 단어가 있다.
곱이 더 큰 쪽이 정답이다.
베이즈에 '순진한' 가정을 더함
나이브 베이즈는 베이즈 정리로 분류하는 방법이다.
새 메일이 스팸일 확률과 정상일 확률을 비교한다.
베이즈 정리는 이렇게 말한다.
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) 가정이란?
단어(특성)들이 서로 독립이라고 보는 가정이다.덕분에 묶음 확률을 각 단어 확률의 곱으로 쪼갤 수 있다.
실제론 거칠지만(단어들은 보통 함께 나온다) 분류엔 잘 작동한다.