Ứ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!