Naive Bayes
1. Ý tưởng cơ bản
Naive Bayes dựa trên định lý Bayes:
Trong đó:
- : lớp (ví dụ: spam hoặc not spam)
- : tập đặc trưng (các từ trong văn bản)
- : xác suất văn bản thuộc lớp khi biết các từ
- : xác suất xuất hiện các từ khi văn bản thuộc lớp
- : xác suất tiên nghiệm của lớp
- : xác suất của các từ (không cần tính trực tiếp vì giống nhau giữa các lớp)
2. Giả định “Naive” (ngây thơ)
Giả sử các đặc trưng (từ) là độc lập với nhau khi biết lớp.
→ Công thức trở thành:
Ví dụ: nếu một email có các từ [“free”, “win”, “money”], ta tính:
3. Quy trình huấn luyện
-
Tách văn bản → tokenization
-
Đếm tần suất xuất hiện của từ trong từng lớp
-
Tính xác suất có điều kiện:
(dùng Laplace smoothing để tránh chia cho 0)
-
Tính xác suất tiên nghiệm :
Laplace smoothing
Giả sử trong bài toán phân loại email:
| Lớp | Từ “free” | Từ “meeting” | Tổng số từ |
|---|---|---|---|
| Spam | 10 | 0 | 100 |
| Ham | 2 | 5 | 120 |
Khi tính:
→ Nếu văn bản mới có từ “meeting”, thì toàn bộ xác suất
Sẽ trở thành 0, làm sai lệch kết quả.
Giải pháp: Laplace Smoothing Thay vì dùng công thức:
Ta thêm 1 vào tử và |V| (kích thước từ vựng) vào mẫu:
Ý nghĩa của việc cộng “1”
- Mỗi từ trong từ điển được giả định xuất hiện ít nhất 1 lần trong mỗi lớp.
- Điều này giúp mọi từ đều có xác suất nhỏ > 0, không bao giờ bằng 0.
Ví dụ minh họa Với bảng trên, giả sử từ điển có |V| = 1000 từ: → Nhờ smoothing, từ “meeting” không bị xác suất 0, giúp mô hình vẫn đánh giá hợp lý.
Biến thể: Add-α Smoothing (Generalized)
Laplace là trường hợp đặc biệt của Add-α smoothing, trong đó α = 1.
Công thức tổng quát:
Khi:
- α = 1 → Laplace smoothing
- 0 < α < 1 → thường được dùng trong thực tế để giảm “làm mượt” quá mức
4. Phân loại văn bản mới
Với một văn bản mới :
→ Tính cho từng lớp
→ Chọn lớp có xác suất lớn nhất
5. Các biến thể của Naive Bayes
| Biến thể | Đặc điểm | Ứng dụng |
|---|---|---|
| Multinomial NB | Dùng tần suất từ (bag-of-words) | Phổ biến nhất cho text classification |
| Bernoulli NB | Dùng giá trị nhị phân (từ có xuất hiện hay không) | Email spam / sentiment |
| Gaussian NB | Dùng cho dữ liệu liên tục | Không phổ biến trong NLP |
6. Ví dụ minh họa (giản lược)
| Văn bản | Nhãn |
|---|---|
| ”free money now” | spam |
| ”win money today” | spam |
| ”meeting schedule today” | ham |
Nếu có email "free schedule today", ta tính:
và tương tự cho ham, sau đó chọn xác suất cao hơn.
7. Ưu và nhược điểm
Ưu điểm
- Đơn giản, nhanh, hiệu quả với dữ liệu lớn
- Không cần nhiều tài nguyên
- Hoạt động tốt với dữ liệu rời rạc (bag-of-words)
Nhược điểm
- Giả định độc lập từ → không thực tế
- Không xét đến thứ tự từ
- Dễ bị ảnh hưởng bởi từ hiếm gặp
Bài tập về nhà
Xây dựng cơ sở dữ liệu tiếng việt