Naive Bayes đề cập đến một họ các bộ phân loại xác suất đơn giản dựa trên việc áp dụng định lý Bayes với các giả định độc lập (ngây thơ) mạnh giữa các tính năng. Đây là một thuật toán học có giám sát phổ biến được sử dụng chủ yếu cho các tác vụ phân loại trong Học máy (ML) . Mặc dù đơn giản và giả định độc lập thường không thực tế, Naive Bayes thường hoạt động tốt, đặc biệt là trong các lĩnh vực như Xử lý ngôn ngữ tự nhiên (NLP) và đóng vai trò là một mô hình cơ sở hữu ích. Hiệu quả của nó làm cho nó phù hợp với các tình huống dữ liệu lớn và dự đoán thời gian thực, trong đó tốc độ là yếu tố quan trọng.
Định lý Bayes và Giả định ngây thơ
Thuật toán dựa trên định lý Bayes , mô tả xác suất của một sự kiện dựa trên kiến thức trước về các điều kiện liên quan đến sự kiện đó. Trong phân loại, nó tính toán xác suất của một điểm dữ liệu thuộc về một lớp cụ thể dựa trên các đặc điểm của nó. Phần "ngây thơ" xuất phát từ giả định cốt lõi rằng tất cả các đặc điểm được sử dụng để phân loại đều độc lập với nhau, dựa trên lớp. Ví dụ, trong phân loại văn bản, nó giả định sự hiện diện của một từ không liên quan đến sự hiện diện của một từ khác trong cùng một tài liệu, dựa trên danh mục của tài liệu. Mặc dù giả định này hiếm khi đúng trong thực tế (các từ trong tài liệu thường có mối tương quan), nhưng nó đơn giản hóa đáng kể việc tính toán, giúp thuật toán nhanh và hiệu quả, đặc biệt là với các tập dữ liệu có nhiều chiều.
Naive Bayes hoạt động như thế nào
Đào tạo một bộ phân loại Naive Bayes bao gồm tính toán xác suất trước của mỗi lớp (tần suất xuất hiện của mỗi lớp trong dữ liệu đào tạo ) và khả năng xảy ra của mỗi tính năng cho mỗi lớp. Đối với một điểm dữ liệu mới, chưa thấy, thuật toán sử dụng các xác suất được tính toán trước này và giả định độc lập để tính xác suất sau cho mỗi lớp. Lớp có xác suất sau cao nhất được chỉ định làm dự đoán. Có nhiều biến thể khác nhau, chẳng hạn như Gaussian Naive Bayes (đối với các tính năng liên tục giả định phân phối chuẩn), Multinomial Naive Bayes (phổ biến cho phân loại văn bản bằng cách đếm từ) và Bernoulli Naive Bayes (đối với các tính năng nhị phân cho biết sự hiện diện hoặc vắng mặt). Thường cần phải xử lý dữ liệu trước thích hợp trước khi áp dụng thuật toán.
Ứng dụng trong thế giới thực
Bộ phân loại Naive Bayes được sử dụng rộng rãi do tính hiệu quả và hiệu suất tốt của chúng:
- Lọc thư rác: Đây là ứng dụng cổ điển trong đó email được phân loại là "thư rác" hoặc "không phải thư rác". Thuật toán phân tích tần suất của một số từ nhất định (tính năng) trong email và tính toán xác suất thư rác dựa trên sự xuất hiện trong lịch sử của những từ đó trong email thư rác và không phải thư rác đã biết. Nghiên cứu ban đầu đã chứng minh tính hiệu quả của nó trong lĩnh vực này.
- Phân loại văn bản và phân tích tình cảm: Naive Bayes có hiệu quả trong việc phân loại các tài liệu như bài báo thành các chủ đề (ví dụ: thể thao, chính trị, công nghệ) hoặc xác định tình cảm (tích cực, tiêu cực, trung lập) được thể hiện trong các bài đánh giá văn bản hoặc bài đăng trên phương tiện truyền thông xã hội. Nó sử dụng tần suất từ hoặc sự hiện diện làm các tính năng. Nhiều hướng dẫn phân loại văn bản cơ bản sử dụng Naive Bayes.
- Chẩn đoán y khoa: Mặc dù hiện nay ít phổ biến hơn do sự phát triển của học sâu trong phân tích hình ảnh y khoa , Naive Bayes vẫn được sử dụng để đưa ra các gợi ý chẩn đoán sơ bộ dựa trên các triệu chứng (đặc điểm) của bệnh nhân, với giả định rằng các triệu chứng không phụ thuộc vào bệnh.
- Hệ thống đề xuất: Hệ thống đề xuất đơn giản có thể sử dụng Naive Bayes để đề xuất các mục dựa trên sở thích và hành vi trước đây của người dùng, coi tương tác của người dùng là các tính năng.
Ưu điểm và nhược điểm
Thuận lợi:
- Tốc độ và tính đơn giản: Dễ triển khai và tính toán rất nhanh cho cả mục đích đào tạo và dự đoán.
- Hiệu quả dữ liệu: Thực hiện tương đối tốt ngay cả với lượng dữ liệu đào tạo nhỏ.
- Khả năng mở rộng: Xử lý dữ liệu đa chiều (nhiều tính năng) một cách hiệu quả, như trong phân tích văn bản.
- Tính linh hoạt: Hoạt động với cả dữ liệu liên tục và dữ liệu rời rạc thông qua nhiều biến thể khác nhau.
Nhược điểm:
- Giả định độc lập ngây thơ: Giả định cốt lõi về tính độc lập của tính năng thường bị vi phạm, có khả năng hạn chế độ chính xác .
- Vấn đề tần số bằng không: Nếu giá trị đặc trưng trong dữ liệu thử nghiệm không bao giờ được nhìn thấy với một lớp cụ thể trong quá trình đào tạo, mô hình sẽ gán cho nó xác suất bằng không, có khả năng chi phối dự đoán chung. Điều này thường được xử lý bằng các kỹ thuật làm mịn như làm mịn Laplace (hoặc làm mịn cộng) .
So sánh với các thuật toán khác
- vs. Logistic Regression : Cả hai thường được sử dụng cho các nhiệm vụ phân loại tương tự. Naive Bayes là mô hình sinh, trong khi Logistic Regression là phân biệt đối xử. Naive Bayes có thể hoạt động tốt hơn với các tập dữ liệu nhỏ hơn hoặc kích thước lớn, trong khi Logistic Regression có thể vượt trội hơn nếu giả định độc lập bị vi phạm mạnh.
- so với Máy vectơ hỗ trợ (SVM) : SVM thường đạt được độ chính xác cao hơn bằng cách tìm siêu phẳng phân tách tối ưu và xử lý tương tác tính năng tốt hơn, nhưng nhìn chung chúng chậm được đào tạo hơn Naive Bayes.
- vs. Decision Trees / Random Forests : Các phương pháp dựa trên cây có thể mô hình hóa các mối quan hệ phi tuyến tính phức tạp và các tương tác đặc trưng một cách rõ ràng, mà Naive Bayes không thể nắm bắt được do giả định độc lập của nó. Tuy nhiên, Naive Bayes có thể nhanh hơn và yêu cầu ít bộ nhớ hơn.
- so với Mô hình học sâu : Các mô hình phức tạp như Mạng nơ-ron tích chập (CNN) hoặc Transformers , bao gồm cả những mô hình được sử dụng trong Ultralytics YOLO cho thị giác máy tính , thường vượt trội hơn Naive Bayes trong các tác vụ đòi hỏi phải hiểu các mẫu phức tạp (ví dụ: phân loại hình ảnh , phát hiện đối tượng ). Tuy nhiên, Naive Bayes yêu cầu ít dữ liệu, tài nguyên tính toán như GPU và thời gian đào tạo hơn đáng kể, khiến nó trở thành đường cơ sở hoặc công cụ có giá trị cho các vấn đề đơn giản hơn. Các nền tảng như Ultralytics HUB tập trung vào việc triển khai các mô hình học sâu phức tạp, hoạt động khác với Naive Bayes.
Các triển khai của Naive Bayes có sẵn trong các thư viện ML phổ biến như Scikit-learn . Mặc dù không phải là tiên tiến nhất đối với các tác vụ phức tạp do học sâu chi phối, Naive Bayes vẫn là một thuật toán cơ bản trong bộ công cụ ML, được đánh giá cao vì tốc độ, tính đơn giản và hiệu quả trong các lĩnh vực cụ thể, đặc biệt là xử lý văn bản. Đánh giá các mô hình bằng các số liệu như đã thảo luận trong YOLO Performance Metrics là rất quan trọng bất kể thuật toán nào được sử dụng.