Thuật toán khai khoáng dữ liệu – Hiểu Thuật Toán Naive Bayes như thế nào?
Trong khai khoáng thì ôi thôi nhiều thuật toán vô số kể, mỗi thuật toán khai khoáng dữ liệu đều có những ưu, khuyết điểm riêng. Và hôm nay hãy cùng mình tìm hiểu thuật toán Naive Bayes nhé, xem là nó hay, nó dỡ ở điểm nào nhe!
Contents
1. Thuật toán Naive Bayes là gì?
Naive Bayes là một thuật toán trong khai thác dữ liệu, nó dựa trên mô hình xác suất để phân loại dữ liệu.
Xác suất, các bạn đừng sợ, hãy hiểu nó đơn giản như thế này: Bạn có mười bông hoa, trong đó có 3 bông hoa hồng, 7 bông hoa hướng dương. Khi đó xác suất hoa hồng là 3/10 (số lượng/ tổng), hoa hướng dương là 7/10. Đơn giản vậy thôi.
2. Các bước thực hiện
Mình cùng tìm hiểu qua ví dụ cụ thể luôn nha! Mình có tập dữ liệu huấn luyện như sau:
Yêu cầu đặt ra là hãy cho biết với một thời tiết nhất định thì có nên đi chơi hay không?
Bước 1: Xây dựng mô hình xác suất
Việc đi chơi hay không đi chơi, như vậy ta thấy có hai trường hợp, tạm gọi là lớp nha là lớp “Yes” và lớp “No”. Như dữ liệu ở trên ta thấy có 14 dòng dữ liệu, vậy hãy cùng đếm xem trong 14 dòng đó có mấy dòng là Yes và mấy dòng là No nào! Như vậy ta được xác suất của hai lớp Yes và No như sau:
P(Yes) = 9/14 P(No) = 5/14 //(P là xác suất)
Tiếp tục với cột Outlook, ta thấy có 3 giá trị là sunny, overcast và rain. Vậy cùng xây dựng xác suất cho cả 3 nào:
Đầu tiên ở lớp “Yes” nhé!
P(sunny|Y) = 2/9 P(overcast|Y) = 4/9 P(rain|Y) = 3/9
Ở lớp “No”
P(sunny|N) = 3/5 P(overcast|N) = 0 P(rain|N) = 2/5
Tương tự với cột Temperator, Humidty, Windy được tóm tắt như sau:
Bước 2: Phân Lớp
Khi tính xong thì ta đã hoàn thành gần như 80% rồi việc còn lại đề cho gì thay zô là ra thôi.
Ví dụ đề cho: outlook = sunny, temperator = cool, humidty = high, wind = strong. Hãy cho biết có nên đi chơi hay không?
Ta sẽ tính tích của các xác suất này trong cả hai lớp Yes và No.
Yes: P(Yes) * P(sunny|y) * P(cool|y) * P(high|y) * P(strong|y) = 9/14 * 2/9 * 3/9 * 3/9 * 3/9 = 0.005 No: P(No) * P(sunny|n) * P(cool|n) * P(high|n) * P(strong|n) = 5/14 * 3/5 * 1/5 * 4/5 * 3/5 = 0.021
Ta sẽ lấy lớp có đáp án lớn hơn để làm kết quả, như vậy kết quả cho điều kiện thời tiết này là “No” tức là không nên đi chơi.
Lưu ý:
Nếu đề bài cho outlook = overcast thì lớp No sẽ bằng 0. Để tránh tình trạng này thì chúng ta phải làm trơn bằng Laplace như sau:
Thêm 1 vào tử số và thêm số lớp vào mẫu số
Ban đầu lớp Yes và No như sau:
P(Yes) = 9/14 và P(No) = 5/14
Sau khi làm trơn – sẽ thêm 1 vào tử số và thêm 2 vào mẫu số (do có 2 lớp yes và no)
P(Yes) = 10/16 và P(No) = 6/16
Tương tự thử với cột outlook nha. Do số lớp là 3 (có 3 giá trị) nên cộng 3 vào mẫu.
P(sunny|Y) = 3/12 P(overcast|Y) = 5/12 P(rain|Y) = 4/12 P(sunny|N) = 4/8 P(overcast|N) = 1/8 P(rain|N) = 3/8
Và các bạn sử dụng kết quả này để tính toán như ở trên và không bao giờ ra kết quả bằng 0.
Các bạn xem video nếu chưa hiểu rõ tại đây nhé!
Kết Luận
Trên đây là phần chia sẻ của mình về thuật toán Naive Bayes trong khai khoáng dữ liệu. Nếu các bạn có gì thắc mắc thì hãy comment bên dưới này nhé, mình sẽ trả lời giúp các bạn. Cảm ơn các bạn đã xem bài viết.
Rất chi tiết, cảm ơn chủ thớt.