Skip to content

Blog Công Nghệ

MENUMENU
  • Trang chủ
  • Giới Thiệu
  • Lập Trình
    • Lập Trình Website
      • Laravel
        • Phân Tích Dự Án
      • PHP
      • SQL
      • HTML
      • CSS
      • Javascipt
      • My Project
      • Wordpress
    • Luyện Skill
    • Lập trình winform
    • CSDL
    • Lập Trình Android
    • Trí tuệ nhân tạo
    • Khai Khoáng Dữ Liệu
    • Arduino
    • Khác
    • Đồ án
  • Phần Mềm
    • Powerpoint
    • Tool
  • Cuộc sống và Giải trí
    • Hợp âm
    • web5ngay - youtube
    • Công Giáo
    • Kỹ Năng Sống
    • Street Workout
  • Danh sách bài viết
  • Guide line
    • Guild line phỏng vấn
    • Guide lines Laravel
    • Guide line Module Frontend
  • Tóm tắt sách
  • Fanpage

Blog Công Nghệ

Nơi chia sẻ kiến thức

Thuật toán khai khoáng dữ liệu – Hiểu Thuật Toán Naive Bayes như thế nào?

5 Tháng Tư, 2020 by admin
Lượt xem: 161
khai khoáng dữ liệu

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ì?
  • 2. Các bước thực hiện
    • Bước 1: Xây dựng mô hình xác suất
      • Đầu tiên ở lớp “Yes” nhé!
      • Ở lớp “No”
    • Bước 2: Phân Lớp
    • Lưu ý:
  • Kết Luận

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.

khái niệm thuật toán khai khoáng dữ liệu Naive Bayes

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:

các thuật toán trong lập trình

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)
các thuật toán trong lập trình khai khoáng dữ liệu

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.

Related posts:

  1. Khai khoáng dữ liệu – đại học
  2. Bạn sẽ hiểu rõ về thuật toán KNN

Post navigation

Previous Post:

Học lập trình javascript cơ bản – Javascript Mạnh Mẽ Thế Nào

Next Post:

Cấu Hình SSL trên sieutocviet.com

One comment

  1. Ngọc Nhi viết:
    20 Tháng Hai, 2020 lúc 3:22 chiều

    Rất chi tiết, cảm ơn chủ thớt.

    Trả lời

Trả lời Hủy

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *

Ẩn sidebar

Tìm kiếm

Generic selectors
Exact matches only
Search in title
Search in content
Search in posts
Search in pages

Blog Công Nghệ

Bài viết mới

  • Master typescript
  • Sendmail trong Laravel sử dụng dịch vụ SES, SQS của Amazon
  • Install SSL in Nginx Ubuntu
  • Docker study
  • Bảo vệ: Hướng dẫn code bot Telegram easy game

Lượng truy cập

0074638
Visit Today : 234
Visit Yesterday : 178
This Month : 909
Who's Online : 2
© 2025 Blog Công Nghệ | WordPress Theme by Superbthemes