Thuật toán Naive Bayes trong học máy
⚡ Tóm tắt thông minh
Naive Bayes là một thuật toán phân loại xác suất có giám sát được xây dựng dựa trên định lý Bayes, giả định rằng mỗi đặc trưng đóng góp một cách độc lập. Lý thuyết của nó, một mô hình được xây dựng dựa trên thực nghiệm, rất đơn giản.ping Ví dụ, ba biến thể mô hình, lợi ích, hạn chế và ứng dụng thực tế được trình bày dưới đây.

Thuật toán phân loại Naive Bayes
Bộ phân loại là một thuật toán học máy sắp xếp dữ liệu vào một hoặc nhiều "lớp" trong một tập hợp các lớp. Bộ phân loại email là một ví dụ quen thuộc: nó quét mọi tin nhắn đến và gán cho chúng nhãn lớp là Thư rác hoặc Không phải thư rác.
Thuật toán phân loại Naive Bayes trong học máy là một thuật toán phân loại Naive Bayes. học có giám sát Thuật toán được sử dụng cho các nhiệm vụ phân loại.
Sơ đồ bên dưới mô tả quy trình đó.
Naive Bayes được sử dụng để giải quyết các vấn đề phân loại. Nó dự đoán trên cơ sở xác suất của một đối tượng. Naive Bayes dựa trên Định lý Bayes và nó được sử dụng chủ yếu để phân loại văn bản. Naive Bayes là một thuật toán phân loại xác suất, dễ thực hiện và đào tạo nhanh.
Vì thuật toán phân loại Naive Bayes dựa trên định lý Bayes, nên nó còn được gọi là thuật toán phân loại xác suất. Nó dự đoán dựa trên xác suất của một mục.
Tại sao nó được gọi là Naive Bayes?
Tên gọi Naive Bayes gồm hai phần: Naive (ngây thơ) và Bayes (Bayes). Tại sao lại là "naive"? Thuật toán này bỏ qua thứ tự xuất hiện của các đặc điểm, vì vậy "Bạn là" và "Bạn có phải là" trông giống hệt nhau đối với nó. Nó cũng giả định rằng không có đặc điểm nào ảnh hưởng đến đặc điểm khác. Để nhận biết quả táo, bạn sử dụng màu đỏ, hình dạng tròn và vị ngọt, và thuật toán coi mỗi manh mối đó là bằng chứng riêng biệt, độc lập.
- Thuật toán phân loại Naive Bayes giả định rằng các đặc trưng độc lập với nhau. Vì điều này hiếm khi xảy ra trong dữ liệu thực tế, nên thuật toán phân loại này được gọi là "naive" (ngây thơ).
- Thuật toán phân loại này dựa trên định lý Bayes, vì vậy nó được gọi là thuật toán phân loại Naive Bayes.
Định lý Bayes đơn giản
Định lý Bayes được sử dụng để tìm xác suất của một giả thuyết với các xác suất có điều kiện phụ thuộc vào kiến thức tiên nghiệm. Định lý này được đặt theo tên của Thomas Bayes. Bộ phân loại Naive Bayes hoạt động dựa trên nguyên tắc xác suất có điều kiện, như được đưa ra bởi định lý Bayes.
Để hiểu định lý Bayes, chúng ta hãy xem xét một ví dụ đơn giản về bộ phân loại Naive Bayes khi tung hai đồng xu. Ta có thể thu được các không gian mẫu sau bằng cách tung hai đồng xu: {HH, HT, TH, TT}. Vì vậy, xác suất của các sự kiện này sẽ là:
- Bắt được hai đầu = 1/4
- Ít nhất một đuôi = 3/4
- Đồng xu thứ hai là mặt ngửa, đồng xu thứ nhất là đuôi = 1/2
- Nhận được hai mặt ngửa với đồng xu đầu tiên là mặt ngửa = 1/2
Định lý Bayes tính toán xác suất xảy ra của một sự kiện dựa trên xác suất của một sự kiện khác đã xảy ra. Công thức của định lý Bayes được cho như sau:
P(A|B) = (P(B|A) * P(A)) / P(B)
P(A|B) là xác suất xảy ra sự kiện A khi sự kiện B đã xảy ra. Xác suất P(B) không được bằng không.
- Bạn cần tìm xác suất của sự kiện A, được đưa ra khi sự kiện B (bằng chứng) là đúng.
- P(A) là xác suất tiên nghiệm của A, tức là xác suất của sự kiện trước khi có bất kỳ bằng chứng nào được quan sát. Ở đây, sự kiện B là giá trị của một trường hợp chưa biết.
- P(A|B) là xác suất hậu nghiệm của sự kiện A, tức là xác suất của A sau khi xem xét bằng chứng B.
Ví dụ thực tế về bộ phân loại Naive Bayes
Cách nhanh nhất để thấy công thức hoạt động là tự mình chạy thử.
Chúng ta hãy lấy một ví dụ về cửa hàng.ping Để hiểu cách hoạt động của thuật toán phân loại đơn giản Bayes (Bayes Naive Classifier). Trong tập dữ liệu này, có một tập dữ liệu mẫu nhỏ gồm 30 hàng cho ví dụ này.
Bộ dữ liệu
Vấn đề là dự đoán liệu một người có mua sản phẩm theo sự kết hợp cụ thể giữa Ngày, Giảm giá và Giao hàng miễn phí hay không bằng cách sử dụng Định lý Naive Bayes.
Bước 1) Chúng tôi sẽ tạo bảng tần suất cho từng thuộc tính bằng cách sử dụng các loại đầu vào được đề cập trong tập dữ liệu, chẳng hạn như ngày, ưu đãi giảm giá và giao hàng miễn phí.
Giả sử sự kiện 'Mua' được ký hiệu là 'A', và các biến độc lập, cụ thể là 'Giảm giá', 'Giao hàng miễn phí' và 'Ngày', được ký hiệu là 'B'. Chúng ta sẽ sử dụng các sự kiện và biến này để áp dụng định lý Bayes.
Bước 2) Bây giờ chúng ta hãy tính toán từng bảng Khả năng.
Ví dụ 1:
Dựa vào bảng khả năng này, chúng ta sẽ tính các xác suất có điều kiện như dưới đây.
P(A) = P(No Buy) = 6/30 = 0.2 P(B) = P(Weekday) = 11/30 = 0.37 P(B/A) = P(Weekday / No Buy) = 2/6 = 0.33
Và tìm P(A/B) bằng định lý Bayes,
P(A/B) = P(No Buy / Weekday) = P(Weekday / No Buy) * P(No Buy) / P(Weekday) = (2/6 * 6/30) / (11/30) = 0.1818
Tương tự, nếu A là Mua thì
= P(Buy / Weekday) = P(Weekday / Buy) * P(Buy) / P(Weekday) = (9/24 * 24/30) / (11/30) = 0.8181
Lưu ý: Vì P(Mua | Ngày trong tuần) lớn hơn P(Không mua | Ngày trong tuần), chúng tôi có thể kết luận rằng rất có thể khách hàng sẽ mua sản phẩm vào Ngày trong tuần.
Bước 3) Tương tự, chúng ta có thể tính toán khả năng xảy ra một sự kiện dựa trên cả ba biến số. Bây giờ chúng ta sẽ tính toán bảng Khả năng cho cả ba biến bằng cách sử dụng bảng tần số ở trên.
Ví dụ 2:
Bây giờ, bằng cách sử dụng ba bảng Khả năng này, chúng tôi sẽ tính toán xem khách hàng có khả năng mua hàng hay không dựa trên sự kết hợp cụ thể của 'Ngày', 'Giảm giá' và 'Giao hàng miễn phí'.
Ở đây chúng ta hãy kết hợp các yếu tố sau:
- Ngày = Ngày lễ
- Giảm giá = Có
- Giao hàng miễn phí = Có
Khi nào, A = Mua
Tính xác suất có điều kiện mua hàng theo tổ hợp sau: ngày, giảm giá và giao hàng miễn phí.
Ở đâu B là:
- Ngày = Ngày lễ
- Giảm giá = Có
- Giao hàng miễn phí = Có
Và A = Mua
Vì vậy,
= P(A/B) = P(Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/Buy)) * P(Free Delivery=(Yes/Buy)) * P(Day=(Holiday/Buy)) * P(Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (19/24 * 21/24 * 8/24 * 24/30) / (20/30 * 23/30 * 11/30) = 0.986
Khi nào, A = Không mua
Tương tự như vậy, tính xác suất có điều kiện mua hàng theo tổ hợp sau: ngày, giảm giá và giao hàng miễn phí.
Ở đâu B là:
- Ngày = Ngày lễ
- Giảm giá = Có
- Giao hàng miễn phí = Có
Và A = Không Mua
Vì vậy,
= P(A/B) = P(No Buy / Discount=Yes, Day=Holiday, Free Delivery=Yes) = ( P(Discount=(Yes/No Buy)) * P(Free Delivery=(Yes/No Buy)) * P(Day=(Holiday/No Buy)) * P(No Buy) ) / ( P(Discount=Yes) * P(Free Delivery=Yes) * P(Day=Holiday) ) = (1/6 * 2/6 * 3/6 * 6/30) / (20/30 * 23/30 * 11/30) = 0.027
Bước 4) Vì thế,
Xác suất mua hàng = 0.986
Xác suất không mua hàng = 0.027
Cuối cùng, chúng ta có xác suất có điều kiện để mua vào ngày này. Bây giờ chúng ta hãy khái quát hóa những xác suất này để có được Khả năng xảy ra các sự kiện.
- Tổng xác suất = 0.986 + 0.027 = 1.013
- Khả năng mua hàng = 0.986 / 1.013 = 97.33 %
- Khả năng không mua hàng = 0.027 / 1.013 = 2.67 %
Hai điểm số cộng lại bằng 1.013 chứ không phải 1 vì giả định độc lập khiến mỗi ước tính chỉ là xấp xỉ, do đó việc chia cho tổng sẽ chuyển chúng thành tỷ lệ phần trăm.
Lưu ý rằng, vì 97.33% lớn hơn 2.67%. Chúng ta có thể kết luận rằng khách hàng bình thường sẽ mua hàng vào kỳ nghỉ với mức chiết khấu và giao hàng miễn phí.
Các loại mô hình Naive Bayes
Có nhiều loại Trình phân loại Naive Bayes. Ở đây chúng ta đã thảo luận về các bộ phân loại Multinomial, Bernoulli và Gaussian Naive Bayes.
| biến thể | Loại tính năng | Sử dụng điển hình |
|---|---|---|
| Đa thức | Số lượng từ | Phân loại chủ đề và tài liệu |
| Bernoulli | Cờ nhị phân hiện diện hoặc vắng mặt | Tin nhắn ngắn và lọc thư rác |
| Gaussian | Giá trị số liên tục | Các chỉ số và phép đo của cảm biến |
1. Naive Bayes đa thức
Loại mô hình Naive Bayes này được sử dụng cho các bài toán phân loại tài liệu. Nó hoạt động với các tính năng đại diện cho tần suất của các từ trong tài liệu. Trình phân loại xem xét sự xuất hiện và số lượng từ để xác định xác suất tài liệu thuộc một danh mục cụ thể, chẳng hạn như thể thao, chính trị hoặc công nghệ.
2. Bernoulli Naive Bayes
Điều này tương tự như Naive Bayes đa thức. Trình phân loại Bernoulli Naive Bayes được sử dụng cho các nhiệm vụ phân loại tài liệu. Tuy nhiên, nó sử dụng các dự đoán boolean. Nó cho biết một từ có hiện diện hay không và chỉ nhận các giá trị Có hoặc Không. Trình phân loại tính toán xác suất dựa trên việc một từ có xuất hiện trong văn bản hay không.
3. Vịnh ngây thơ Gaussian
Phân loại này được sử dụng trong trường hợp giá trị liên tục nhưng không có giá trị rời rạc. Trình phân loại này tính toán xác suất bằng cách sử dụng các tham số của Gaussian phân phối, tức là, giá trị trung bình và phương sai.
Công thức tính xác suất có điều kiện thay đổi thành,
học hỏi Thư viện bổ sung thêm hai biến thể: Naive Bayes bổ sung cho văn bản không cân bằng và Naive Bayes phân loại cho các danh mục rời rạc.
Lợi ích và hạn chế của Trình phân loại Naive Bayes
Thuật toán Naive Bayes có nhiều ưu điểm và nhược điểm khác nhau trong học máy.
Lợi ích của Trình phân loại Naive Bayes
- Đơn giản và hiệu quả: Naive Bayes rất đơn giản, dễ đào tạo và thực hiện. Nó hiệu quả vì chi phí tính toán thấp. Nó có thể xử lý các tập dữ liệu lớn một cách hiệu quả.
- Đào tạo và dự đoán nhanh: Naive Bayes không yêu cầu nhiều dữ liệu huấn luyện vì tính độc lập giữa các đặc trưng. Nó có thể dự đoán nhanh chóng sau khi mô hình được huấn luyện.
- Khả năng mở rộng: Naive Bayes có thể xử lý các bộ dữ liệu nhiều chiều với nhiều tính năng. Nó hoạt động tốt ngay cả khi số lượng tính năng lớn hơn số lượng ví dụ huấn luyện. Nó chia tỷ lệ theo số lượng điểm dữ liệu và yếu tố dự đoán. Nó xử lý cả dữ liệu liên tục và rời rạc.
- Mạnh mẽ đối với các tính năng không liên quan: Nó không nhạy cảm với các tính năng không liên quan.
- Hoạt động tốt với Bộ đào tạo nhỏ: Thuật toán Naive Bayes có thể cho kết quả hợp lý ngay cả với dữ liệu huấn luyện hạn chế. Nó có thể xử lý các trường hợp số lượng mẫu huấn luyện nhỏ.
Hạn chế của Trình phân loại Naive Bayes
Bayes ngây thơ ở học máy giả định rằng tất cả các tính năng là độc lập với nhau. Vì vậy, nó không thể tìm hiểu mối quan hệ giữa các tính năng khác nhau trong dữ liệu. Nó xử lý từng đặc điểm như thể nó không có mối quan hệ nào với những đặc điểm khác.
Lưu ý thứ hai: xác suất của các lớp mà nó báo cáo được hiệu chỉnh kém, do đó, con số độ tin cậy gắn liền với một dự đoán không phải là một xác suất đáng tin cậy.
Để khắc phục vấn đề này, bạn có thể sử dụng Cây quyết địnhRừng ngẫu nhiên, Máy vectơ hỗ trợ (SVM), Mạng lưới thần kinh vân vân. Các thuật toán này có khả năng học hỏi các mối quan hệ và sự phụ thuộc phức tạp giữa các đặc điểm trong dữ liệu. Do đó, chúng có thể dự đoán kết quả chính xác hơn.
Các ứng dụng của Trình phân loại Naive Bayes
Vì thuật toán này nhanh và hiệu quả nên bạn có thể sử dụng nó để đưa ra dự đoán theo thời gian thực.
Phát hiện thư rác
Dịch vụ email (Chẳng hạn như Gmail(Sử dụng thuật toán này để xác định xem email có phải là thư rác hay không. Thuật toán này rất hiệu quả trong việc lọc thư rác.)
Phân tích tình cảm
Nó có thể phân loại văn bản là tích cực, tiêu cực hoặc trung tính dựa trên các đặc điểm như lựa chọn từ, cấu trúc câu và ngữ cảnh. Nó tìm thấy các ứng dụng trong giám sát phương tiện truyền thông xã hội, đánh giá của khách hàng và nghiên cứu thị trường.
Phân loại tài liệu
Nó có thể phân loại tài liệu thành các danh mục như thể thao, chính trị, công nghệ hoặc tài chính dựa trên tần suất hoặc sự hiện diện của các từ hoặc đặc điểm cụ thể trong tài liệu.
Hệ thống đề xuất
Nó có thể phân tích sở thích của người dùng, dữ liệu lịch sử và tính năng của mặt hàng để dự đoán sở thích của người dùng hoặc sở thích giới thiệu sản phẩm, phim hoặc bài viết.
Thuật toán phân loại này cũng được sử dụng trong nhận dạng khuôn mặt, dự báo thời tiết, chẩn đoán y tế, và mua sắm.pingPhân loại tin tức, v.v. Bạn có thể triển khai Naive Bayes trong PythonTrong đó, mô-đun sklearn.naive_bayes cung cấp mọi biến thể được mô tả ở trên.








