Lập trình

Mô hình phân lớp Naive Bayes - Xác suất thống kê thực tế

Huy Erick

Giới thiệu Trong lĩnh vực Machine Learning, mô hình phân lớp là một công cụ quan trọng để phân loại các vật mẫu dựa trên các đặc tính đã xác định. Trong bài viết này,...

Giới thiệu

Trong lĩnh vực Machine Learning, mô hình phân lớp là một công cụ quan trọng để phân loại các vật mẫu dựa trên các đặc tính đã xác định. Trong bài viết này, chúng ta sẽ tìm hiểu về một trong những mô hình phân lớp phổ biến nhất, mô hình phân lớp Naive Bayes.

Mô hình phân lớp Naive Bayes

Naive Bayes là một thuật toán phân lớp được xây dựng dựa trên định lý Bayes trong xác suất thống kê. Thuật toán này gọi là "naive" (ngây thơ) vì nó đặt ra hai giả thiết đơn giản: các đặc trưng là độc lập với nhau và có ảnh hưởng ngang nhau đối với đầu ra mục tiêu.

Công thức Naive Bayes

Công thức Naive Bayes có dạng:

P(y|X) = (P(X|y) * P(y)) / P(X)

Trong đó:

  • P(y|X) là posterior probability: xác suất của mục tiêu y với điều kiện có đặc trưng X
  • P(X|y) là likelihood: xác suất của đặc trưng X khi đã biết mục tiêu y
  • P(y) là prior probability của mục tiêu y
  • P(X) là prior probability của đặc trưng X

Ưng dụng Naive Bayes

Mô hình phân lớp Naive Bayes được sử dụng rất nhiều trong thực tế trên những bộ dữ liệu lớn vì khả năng dự đoán nhanh chóng và mang lại kết quả khả quan. Một số ứng dụng của Naive Bayes bao gồm: lọc thư rác, phân loại văn bản, dự đoán sắc thái văn bản, và nhiều hơn nữa.

Các kiểu mô hình Naive Bayes

1. Multinomial Naive Bayes

Mô hình Multinomial Naive Bayes chủ yếu được sử dụng trong phân loại văn bản. Đặc trưng đầu vào ở đây chính là tần suất xuất hiện của từ trong văn bản đó.

2. Bernoulli Naive Bayes

Mô hình Bernoulli Naive Bayes được sử dụng khi các đặc trưng đầu vào chỉ nhận giá trị nhị phân 0 hoặc 1 (phân bố Bernoulli).

3. Gaussian Naive Bayes

Khi các đặc trưng nhận giá trị liên tục, ta giả sử các đặc trưng đó có phân phối Gaussian.

Ví dụ

Chúng ta sẽ xem xét một bộ dữ liệu đơn giản về việc đi làm muộn của một bạn nhân viên. Bằng việc lập bảng tần suất cho từng đặc trưng theo mục tiêu, ta có thể tính được likelihood P(X|y).

Giả sử, để dự đoán cho một ngày X=(Muộn, Xấu, Mưa), chúng ta cần tính:

P(Muộn|X) ∝ P(Muộn|Muộn) P(Xấu|Muộn) P(Mưa|Muộn) P(Muộn) = (3/5) (2/5) (1/5) (5/10) = 0.024

P(Không muộn|X) ∝ P(Muộn|Không muộn) P(Xấu|Không muộn) P(Mưa|Không muộn) P(Không muộn) = (0/5) (3/5) (1/5) (5/10) = 0

=> y = argmax{ P(X|y)P(y) } = Muộn.

Vì vậy, nếu anh chàng nhân viên thấy báo thức reo rồi mà còn cố ngủ thêm 15 phút, lúc dậy thân thể uể oải, nhìn ra ngoài trời thấy đang mưa, thì khả năng rất cao là hôm nay sẽ bị trừ lương.

Kết luận

Mô hình Naive Bayes là một mô hình phân lớp đơn giản, dễ cài đặt và có tốc độ xử lý nhanh. Tuy nhiên, mô hình này có nhược điểm là yêu cầu các đặc trưng đầu vào phải độc lập, điều này khó xảy ra trong thực tế và làm giảm chất lượng của mô hình. Nó được sử dụng rộng rãi trong phân tích sắc thái, lọc thư rác, recommendation systems, và nhiều lĩnh vực khác.

Tài liệu tham khảo:

1