Chào mừng đến với BIS Đăng nhập | Đăng ký | Trợ giúp
trong Tìm kiếm

Ứng dụng lý thuyết Bayes trong phân lớp

Bài cuối 07-26-2015 02:35 PM của itvntbu. 9 trả lời.
Trang 1 trong số 1 (10 nội dung)
Sắp xếp bài viết: Trước Tiếp theo
  • 01-02-2011 11:34 PM

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Ứng dụng lý thuyết Bayes trong phân lớp

    Ứng dụng lý thuyết Bayes trong phân lớp (Using Bayes Theorem for Classification)

    Nguyễn Văn Chức – chuc.nv@due.edu.vn

    1. Giới thiệu Bayes Theorem

    Trong lĩnh vực Data Mining, Bayes Theorem (hay Bayes’ Rule) là kỹ thuật phân lớp dựa vào  việc tính xác suất có điều kiện. Bayes’ Rule  được ứng dụng rất rộng rãi bởi tính dễ hiểu và dễ triển khai.

    Bayes' Rule (CT1):


    Trong đó:

    D : Data

    h : Hypothesis (giả thuyết)

    P(h) : Xác suất giả thuyết h (tri thức có được về giả thuyết h trước khi có dữ liệu D) và gọi là  prior probability của giả thuyết h.

    P(D| h): Xác suất có điều kiện D khi biết giả thuyết h (gọi là  likelihood probability).

    P(D):  xác suất của dữ liệu quan sát D không quan tâm đến bất kỳ giả thuyết h nào.(gọi là prior probability của dữ liệu D)

    Tỷ số   : Chỉ số liên quan (irrelevance index) dùng để đo lường sự liên quan giữa 2 biến A và B. Nếu irrelevance index =1,  có nghĩa A và B không liên quan nhau.

    P(h|D) :Xác suất có điều kiện h khi biết D (gọi là  posterior probability của giả thuyết h)


     Trong rất nhiều ứng dụng, các giả thuyết hi có thể loại trừ nhau và vì dữ liệu quan sát D là tập con của tập giả thuyết cho nên chúng ta có thể phân rã P(D) như sau (CT2):


    Vì   nên (CT1) có thể viết lại như sau (CT3)


     Thay P(D) trong (CT2) vào (CT1) ta được (CT4)  


    (CT4) gọi là Bayes’s Theorem

        2. Ứng dụng Bayes Theorem trong phân lớp dữ liệu (Naïve Bayes Classifier)

     Các ví dụ sau đây minh họa việc sử dụng Bayes Theorem trong việc phân lớp dữ liệu. Bộ phân lớp dữ liệu dựa trên Bayes theorem còn gọi là Naïve Bayes Classifier.

    Ví dụ 1: Có training data về thời tiết như sau (xem mô tả chi tiết về dữ liệu weather trong bài Cây quyết định (Decision Tree) tại http://bis.net.vn/forums/t/378.aspx)


    Sử dụng Naïve Bayes Classifier để xác định khả năng đến chới thể thao (Play = “yes” hay “no”) với thời tiết của ngày quan sát được như sau:


     

    Từ Training data ta có dữ liệu như sau:


     Vì thuộc tính phân lớp Play chỉ có 2 giá trị là “yes” (nghĩa là có đến chơi thể thao) và “no”(không đến chơi thể thao) nên ta phải tính Pr(yes|E) và Pr(no|E) như sau. Trong đó E là dữ liệu cần phân lớp (dự đoán)

     

     



     

     Vì P(“no”) > P(“yes”) nên kết quả dự đoán Play =“no”


     Ví dụ 2: Có Training Data và Unseen data như sau


     

    Sử dụng Naïve Bayes Classifier để phân lớp cho Unseen data (X)

    Class: C1:buys_computer =”yes”,  C2:buys_computer =”no”

    Tính P(X|Ci) cho mỗi class

    X=(age<=30, income =”medium”, student=”yes”,credit_rating=”fair”)

    P(age=“<=30” | buys_computer=“yes”) = 2/9=0.222

    P(age=“<=30” | buys_computer=“no”) = 3/5 =0.6

    P(income=“medium” | buys_computer=“yes”)= 4/9 =0.444

    P(income=“medium” | buys_computer=“no”) = 2/5 = 0.4

    P(student=“yes” | buys_computer=“yes”)= 6/9 =0.667

    P(student=“yes” | buys_computer=“no”)= 1/5=0.2

    P(credit_rating=“fair” | buys_computer=“yes”)=6/9=0.667

    P(credit_rating=“fair” | buys_computer=“no”)=2/5=0.4

      Tính P(X|Ci) :

    P(X|buys_computer=“yes”)= 0.222 x 0.444 x 0.667 x 0.667 =0.044

    P(X|buys_computer=“no”)= 0.6 x 0.4 x 0.2 x 0.4 =0.019

    P(X|Ci)*P(Ci ):

    P(X|buys_computer=“yes”) * P(buys_computer=“yes”)=0.044*9/14= 0.028

    P(X|buys_computer=“no”) * P(buys_computer=“no”)=0.019*5/14 = 0.007

    Do đó ta có X thuộc lớp buys_computer=“yes”


     

    Bayes Thoerem được triển khai rất rộng rãi  trong Data Mining  vì dễ hiểu, dễ triển khai . Tuy nhiên, Bayes Theorem giả thiết rằng các biến trong mô hình là độc lập nhau. Nếu các biến không độc lập nhau thì Bayes Theorem cho kết quả thiếu chính xác. Hiện nay có rất nhiều Data Mining Software triển khai Naïve Bayes Classifier như Weka, XMMiner, StatSoft,…

     

    PS. All comments please send to chucnv@ud.edu.vn. Thank you and Welcome!

     

    • Điểm chủ đề: 95
  • 01-16-2011 01:24 PM trả lời

    Re: Ứng dụng Bayes Theorem trong phân lớp (Using Bayes Theorem in Classification)

    Lý thuyết Bayes trong Data Mining trước đây em rất "Ngại" đọc vì thấy nó dựa trên Xác suất có điều kiện mà  em thì rất dốt về mảng này. Giờ đọc bài viết và file ví dụ minh họa phân lớp trên Excel của anh em mới hiểu về Bayes theorem. 
    Cảm ơn anh, bài viết về nội dung khó nhưng rất dễ hiểu.
    Hiền Giang,
    • Điểm chủ đề: 35
  • 03-07-2011 08:38 PM trả lời

    Re: Ứng dụng Bayes Theorem trong phân lớp (Using Bayes Theorem in Classification)

    thank anh
    • Điểm chủ đề: 20
  • 04-05-2011 03:08 PM trả lời

    • thaisy
    • 500 thành viên năng nổ nhất
    • Tham gia 04-05-2011
    • Điểm 35

    Re: Ứng dụng Bayes Theorem trong phân lớp (Using Bayes Theorem in Classification)

    Chức năng dự đoán này có thể dùng weka tính được không anh Chức, hay là mình phải lập bằng Excel như anh.
    • Điểm chủ đề: 35
  • 04-06-2011 11:06 AM trả lời

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Re: Ứng dụng Bayes Theorem trong phân lớp (Using Bayes Theorem in Classification)

    Weka có triển khai lý thuyết Bayes trong phân lớp. Em có thể vào Tab "Classifiers" Chọn "Bayes". Weka triển khai nhiều kỹ thuật phân lớp liên quan đến Lý thuyết Bayes.
    Chúc em thành công
     
    • Điểm chủ đề: 20
  • 03-04-2012 01:24 PM trả lời

    Re: Ứng dụng lý thuyết Bayes trong phân lớp

    Em chào anh!
    Em rất cảm ơn về bài viết khá hay và bổ ích của anh. Hiện tại em đang tìm hiểu về đề tài này. Em đang sử dụng weka để triển khai lý thuyết bayes trog phân lớp. Tuy nhiên em có nhiều chỗ chưa rõ, em đã training data vào và đã cho ra kết quả, nhưng em ko biết unseen data như thế nào để nhận kết quả dự đoán, 2file traning data và unseen em đều nhập từ excel.Như vậy anh có thể cho em biết là mình phải thực hiện như thế nào để unseen data và Có thể nhận kết quả dự đoán được không. Em xin cảm ơn anh nhiều và mong nhận được hồi đáp của anh.
    • Điểm chủ đề: 35
  • 03-04-2012 08:44 PM trả lời

    • chucnv
    • 10 thành viên năng nổ nhất
    • Tham gia 12-05-2008
    • Điểm 28,320

    Re: Ứng dụng lý thuyết Bayes trong phân lớp

    NaiveBayes trong Weka sau khi sử dụng Training set thì Model sẽ tính ra các xác suất cho các giá trị của thuộc tính phân lớp tương ứng với giá trị của các thuộc tính. Dựa vào các xác xuất này để phân lớp cho các dữ liệu muốn dự đoán (Unseen data)
    • Điểm chủ đề: 35
  • 05-08-2012 01:44 AM trả lời

    • lannv
    • 500 thành viên năng nổ nhất
    • Tham gia 05-08-2012
    • Điểm 20

    Re: Ứng dụng lý thuyết Bayes trong phân lớp

    chào anh,
     Cho em hỏi khi mình làm việc vơi weka programming (java) thì unseen data sẽ dùng như thế nào
    Em đã có một BayesNet.model
    Em cảm ơn 
    • Điểm chủ đề: 20
  • 04-20-2013 01:38 AM trả lời

    Re: Ứng dụng lý thuyết Bayes trong phân lớp

    Thầy cho em hỏi theo Ví dụ của thầy thì chúng ta Ứng dụng lý thuyết Bayes trong phân lớp dữ liệu thời tiết bằng cách tính tay đề biết. Nếu như ta có tập huấn luyện mẫu như ví dụ (training data về thời tiết).  Nếu em muốn kiểm tra tập dữ liệu khác để xác định khả năng đến chơi thể thao (Play = “yes” hay “no”) với thời tiết của ngày quan sát như  ví dụ Thầy nêu (Sunny, Cool, High, True,???) thì trên weka chúng ta thực hiện như thế nào để biết được kết quả là “No”.

    Xin cảm ơn thầy

    • Điểm chủ đề: 20
  • 07-26-2015 02:35 PM trả lời

    • itvntbu
    • 500 thành viên năng nổ nhất
    • Tham gia 06-06-2011
    • Điểm 20

    Re: Ứng dụng lý thuyết Bayes trong phân lớp

    Sao Anh ko up file xls lên cho bọn em tải về với
    • Điểm chủ đề: 20
Trang 1 trong số 1 (10 nội dung)
Powered by Community Server (Commercial Edition), by Telligent Systems