Naïve Bayes Classifiers
Chào các bạn độc giả! Mình là một sinh viên đang tìm hiểu sâu về lĩnh vực học máy, và trong quá trình học tập, mình nhận thấy Naïve Bayes Classifiers (NBC) là một thuật toán phân loại cực kỳ thú vị và hiệu quả, đặc biệt là với sự đơn giản và tốc độ của nó. Tuy nhiên, việc nắm bắt toàn diện về cấu trúc, cách thức hoạt động và những điểm quan trọng của thuật toán này không hề dễ dàng, nhất là với những người mới bắt đầu.
Chính vì vậy, mục đích của bài viết này là cung cấp một cái nhìn tổng quan, rõ ràng và dễ hiểu về NBC, dựa trên những gì tôi đã tổng hợp và nghiên cứu. Hy vọng rằng, thông qua đây, chúng ta có thể cùng nhau tiếp cận thuật toán này một cách hiệu quả hơn, từ đó thúc đẩy các nghiên cứu và ứng dụng trong lĩnh vực phân loại dữ liệu.
I. Giới thiệu tổng quan
Naïve Bayes Classifiers là một họ các thuật toán phân loại dựa trên định lý Bayes với giả định "ngây thơ" về sự độc lập có điều kiện giữa các đặc trưng. Mặc dù giả định này có vẻ đơn giản, nhưng NBC lại hoạt động rất hiệu quả trong nhiều bài toán thực tế, từ phân loại văn bản, lọc thư rác cho đến chẩn đoán y tế.
II. Các khái niệm nền tảng của Naïve Bayes
Để hiểu rõ hơn về NBC, chúng ta cần nắm vững một số khái niệm cơ bản về xác suất:
Sự kiện độc lập: Hai sự kiện A và B được gọi là độc lập nếu xác suất xảy ra của sự kiện này không ảnh hưởng đến xác suất xảy ra của sự kiện kia, tức là P(A và B) = P(A) * P(B).
- Ví dụ 1, P(A) = 1/2, P(B) = 1/3, P(AB) = 1/6 và bằng P(A) * P(B) nên A,B là 2 sự kiện independent.
- Ví dụ 2, P(A) = 1/2, P(B) = 1/6, P(AB) = 1/6 và không bằng P(A) * P(B) nên A,B là 2 sự kiện dependent.
Tổng xác suất: Định lý tổng xác suất giúp chúng ta tính xác suất của một sự kiện bằng cách tổng hợp xác suất của sự kiện đó xảy ra với các điều kiện khác nhau. Ví dụ, nếu S xảy ra khi R1 hoặc R2 xảy ra, thì P(S) = P(S ∩ R1) + P(S ∩ R2) = P(R1)P(S|R1) + P(R2)P(S|R2).
Định lý Bayes: Định lý này cho phép chúng ta tính xác suất hậu nghiệm (posterior probability) của một sự kiện dựa trên các bằng chứng đã biết. Công thức tổng quát là:
P(C|X) = [P(X|C) * P(C)] / P(X)
Trong đó:P(C|X): Xác suất của lớp C khi biết đặc trưng X (hậu nghiệm).
P(X|C): Xác suất của đặc trưng X khi biết lớp C (khả năng).
P(C): Xác suất của lớp C (tiên nghiệm).
P(X): Xác suất của đặc trưng X.
III. Bernoulli Naïve Bayes Classifier cho biến rời rạc
Bernoulli Naïve Bayes phù hợp cho các dữ liệu có đặc trưng là biến rời rạc, thường là nhị phân (có/không, đúng/sai).
Ví dụ với một đặc trưng:
Giả sử chúng ta có dữ liệu về việc "Học bài" (Studied) và "Kết quả" (Result) thi (Pass/Fail). Chúng ta muốn dự đoán kết quả khi biết học sinh có học bài.
Theo định lý Bayes, P(Result=r | Studied=s) = [P(Studied=s | Result=r) * P(Result=r)] / P(Studied=s).
Để tính P(Result=Pass | Studied=Yes), chúng ta cần các thành phần:P(Result=Pass)
P(Studied=Yes | Result=Pass)
P(Studied=Yes)
Sau khi tính toán các xác suất từ dữ liệu, chúng ta có thể so sánh P(Result=Pass | Studied=Yes) và P(Result=Fail | Studied=Yes) để đưa ra dự đoán.Ví dụ với nhiều đặc trưng:
Khi có nhiều đặc trưng (ví dụ: Confident, Studied, Sick), Naïve Bayes giả định rằng các đặc trưng này là độc lập có điều kiện khi biết lớp đích (Result).
P(R|Co,St,Si) = [P(Co,St,Si | R) * P(R)] / P(Co,St,Si)
Với giả định độc lập, P(Co,St,Si | R) = P(Co | R) * P(St | R) * P(Si | R).
Từ đó, chúng ta có thể tính P(Result=Pass | Confident=Yes, Studied=Yes, Sick=Yes) và P(Result=Fail | Confident=Yes, Studied=Yes, Sick=Yes) để đưa ra quyết định phân loại.
IV. Gaussian Naïve Bayes Classifier cho biến liên tục
Khi các đặc trưng là biến liên tục (ví dụ: chiều dài, chiều rộng), chúng ta không thể dùng cách đếm để tính xác suất. Thay vào đó, chúng ta giả định rằng các đặc trưng tuân theo phân phối Gaussian (phân phối chuẩn).
Hàm Gaussian (hàm phân phối chuẩn):
Hàm Gaussian được dùng để mô tả mật độ xác suất của biến liên tục.
f(x) = [1 / (σ√(2π))] * e^[-(x-μ)² / (2σ²)]
Trong đó μ là giá trị trung bình và σ² là phương sai.
Chúng ta có thể ứng dụng hàm Gaussian trong xử lý ảnh để làm mịn ảnh bằng cách tính trọng số cho một kernel.Ví dụ với một đặc trưng liên tục:
Giả sử chúng ta có dữ liệu về "Chiều dài" (Length) và "Danh mục" (Category) của một đối tượng. Chúng ta muốn phân loại danh mục khi biết chiều dài.
Để tính P(Category=0 | Length=3.0), chúng ta sẽ dùng hàm mật độ xác suất Gaussian cho từng lớp:Tính μ0 và σ0² cho Length khi Category=0.
Tính μ1 và σ1² cho Length khi Category=1.
Tính P(Length=3.0 | Category=0) và P(Length=3.0 | Category=1) bằng hàm Gaussian.
Áp dụng định lý Bayes để tính P(Category=0 | Length=3.0) và P(Category=1 | Length=3.0).
Ví dụ với nhiều đặc trưng liên tục:
Tương tự như biến rời rạc, khi có nhiều đặc trưng liên tục (ví dụ: Length và Width), Gaussian Naïve Bayes cũng giả định rằng các đặc trưng này độc lập có điều kiện khi biết lớp đích.
P(Category=0 | Length, Width) = [P(Length, Width | Category=0) * P(Category=0)] / P(Length, Width)
Với giả định độc lập, P(Length, Width | Category=0) = P(Length | Category=0) * P(Width | Category=0).
Hy vọng rằng, thông qua bài viết này, các bạn đã có một cái nhìn rõ ràng và thú vị hơn về Naïve Bayes Classifiers. Đây thực sự là một thuật toán mạnh mẽ và linh hoạt, đáng để chúng ta tìm hiểu sâu hơn trong hành trình khám phá thế giới học máy!
Nhận xét
Đăng nhận xét