1. Naive Bayes
1.1 Khái niệm
Naive Bayes là thuật toán học máy có giám sát sử dụng cho các bài toán phân loại để tìm xác suất. Ý tưởng chính là sử dụng định lý Bayes để phân loại dữ liệu dựa trên xác suất của các lớp khác nhau với các đặc trưng của dữ liệu.
- Naive Bayes Classifier là mô hình phân loại xác suất đơn giản, có rất ít tham số, dự đoán nhanh.
- Giả định các đặc trưng là độc lập với nhau (independent features).
- Ứng dụng: lọc thư rác, phân tích cảm xúc, phân loại văn bản...
Ví dụ tập dữ liệu thời tiết ảnh hưởng đến quyết định đi chơi golf:
Outlook | Temperature | Humidity | Windy | PlayGolf |
---|---|---|---|---|
Rainy | Hot | High | False | No |
Rainy | Hot | High | True | No |
Overcast | Hot | High | False | Yes |
Sunny | Mild | High | False | Yes |
Sunny | Cool | Normal | False | Yes |
Sunny | Cool | Normal | True | No |
Overcast | Cool | Normal | True | Yes |
Rainy | Mild | High | False | No |
Rainy | Cool | Normal | False | Yes |
Sunny | Mild | Normal | False | Yes |
Rainy | Mild | Normal | True | Yes |
Overcast | Mild | High | True | Yes |
Overcast | Hot | Normal | False | Yes |
Sunny | Mild | High | True | No |
Giả định Naive Bayes:
- Tính độc lập giữa các đặc trưng: Mỗi đặc trưng không ảnh hưởng đến nhau.
- Đặc trưng liên tục có phân phối chuẩn (Gaussian): Nếu đặc trưng liên tục.
- Đặc trưng rời rạc có phân phối đa thức (Multinomial): Nếu đặc trưng rời rạc.
- Các đặc trưng quan trọng như nhau.
- Không có dữ liệu bị thiếu.
Định lý Bayes đối với Naive Bayes
- : Xác suất hậu nghiệm (posterior) của khi biết
- : Xác suất khả năng (likelihood) của khi biết
- : Xác suất tiên nghiệm (prior) của
- : Xác suất của
Áp dụng cho dữ liệu có đặc trưng :
- : Xác suất thuộc lớp khi biết đặc trưng .
- : Xác suất xuất hiện nếu biết lớp .
- : Xác suất tiên nghiệm lớp .
- : Xác suất của trong toàn bộ tập dữ liệu.
Với giả định độc lập:
Vì mẫu số là hằng số với mỗi đầu vào, chỉ cần so sánh tử số:
Dự đoán lớp:
Ví dụ minh họa: Dự đoán email spam
- : Email là spam
- : Email có chứa “khuyến mãi”
=> 60% khả năng email chứa “khuyến mãi” là spam.
Ví dụ với thời tiết: Dự đoán (Sunny, Hot, Normal, False)
So sánh tử số để chọn lớp.
Đặc trưng liên tục dùng phân phối chuẩn (Gaussian):
1.2 Naive Bayes với NLP
- là các từ trong văn bản.
Với giả định độc lập:
Sử dụng Laplace smoothing:
- là kích thước tập từ vựng.
Ví dụ:
Nhãn | |
---|---|
Mua ngay, giảm giá 50% | Spam |
Sản phẩm tốt, miễn phí | Spam |
Gặp bạn lúc 7 giờ tối | Not spam |
Chào bạn, tài liệu đính kèm | Not spam |
Tính và với Laplace.
1.3 Naive Bayes cho phân loại spam email
- Khi tin nhắn mới tới, xác suất:
So sánh tử số để phân loại.
- Laplace smoothing:
- : Tổng số từ duy nhất trong tập dữ liệu.
1.4 Các thao tác xử lý dữ liệu trước khi đưa vào mô hình
- Chuẩn hóa: Loại bỏ khoảng trắng, loại bỏ email trống.
- Loại bỏ dấu câu, ký tự đặc biệt (trừ các ký tự có ý nghĩa như $).
- Chuyển về chữ thường (lowercase).
- Loại bỏ từ dừng (stopwords).
- Stemming/Lemmatization.
- Thay thế URL, số thành token đặc biệt.
- Thay thế từ viết tắt, lóng thành từ đầy đủ.
- Dùng TF-IDF để giảm trọng số từ quá phổ biến.
TF-IDF:
- TF (Term Frequency): Tần suất từ trong văn bản.
- DF (Document Frequency): Số tài liệu chứa từ đó.
- IDF:
- TF-IDF:
Từ xuất hiện ở mọi văn bản có IDF = 0 (không mang giá trị phân loại).
1.5 Cân bằng dữ liệu
Dữ liệu phân loại thường mất cân bằng, cần cân bằng lại để mô hình học tốt hơn.
1.5.1 Undersampling (Giảm dữ liệu lớp đa số)
- hoặc với
- Ưu: giảm thời gian huấn luyện. Nhược: mất dữ liệu quan trọng.
1.5.2 Oversampling (Tăng dữ liệu lớp thiểu số)
- hoặc
- Phương pháp: Random oversampling (sao chép ngẫu nhiên mẫu lớp thiểu số)
- Ưu: Không mất dữ liệu. Nhược: dễ overfitting.
1.5.3 SMOTE (Synthetic Minority Over-Sampling Technique)
- Tạo dữ liệu mới cho lớp thiểu số, không lặp lại dữ liệu cũ.
- Ý tưởng:
- Chọn một mẫu thiểu số
- Chọn hàng xóm gần nhất
- Tạo điểm mới:
với
- Ưu: tạo dữ liệu mới không lặp lại. Nhược: giảm đa dạng nếu chọn không hợp lý.
Ví dụ:
ID | Feature 1 (free) | Feature 2 (win) |
---|---|---|
Spam A | 0.2 | 0.7 |
Spam B | 0.3 | 0.8 |
Spam C | 0.25 | 0.75 |
Giả sử chọn Spam A, hàng xóm gần nhất là Spam C, :
- Feature 1:
- Feature 2:
Khi áp dụng SMOTE cho Naive Bayes, cần đảm bảo các giá trị hoặc chuẩn hóa lại.