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
P(A∣B)=P(B)P(B∣A)P(A)(P(B)=0)
P(A∣B): Xác suất hậu nghiệm (posterior) của A khi biết B
P(B∣A): Xác suất khả năng (likelihood) của B khi biết A
P(A): Xác suất tiên nghiệm (prior) của A
P(B): Xác suất của B
Áp dụng cho dữ liệu có đặc trưng X=(x1,x2,...,xn):
P(y∣X)=P(X)P(X∣y)P(y)
P(y∣X): Xác suất thuộc lớp y khi biết đặc trưng X.
P(X∣y): Xác suất X xuất hiện nếu biết lớp y.
P(y): Xác suất tiên nghiệm lớp y.
P(X): Xác suất của X trong toàn bộ tập dữ liệu.
Với giả định độc lập:
P(y∣x1,...,xn)=P(x1)⋯P(xn)P(y)∏i=1nP(xi∣y)
Vì mẫu số là hằng số với mỗi đầu vào, chỉ cần so sánh tử số:
P(y∣x1,...,xn)∝P(y)i=1∏nP(xi∣y)
Dự đoán lớp:
y=argymaxP(y)i=1∏nP(xi∣y)
Ví dụ minh họa: Dự đoán email spam
A: Email là spam
B: Email có chứa “khuyến mãi”
P(A)=0.3P(B∣A)=0.8P(B)=0.4
P(A∣B)=0.40.8×0.3=0.6
=> 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)