Tải bản đầy đủ (.pdf) (15 trang)

Thuyết trình KHAI PHÁ DỮ LIỆU – DATA MINING Naïve Bayes and Bayesian belief networks

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (877.74 KB, 15 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA TP. Hồ Chí Minh
Khoa Khoa Học & Kỹ Thuật Máy Tính

KHAI PHÁ DỮ LIỆU – DATA MINING
Bài tập lớn

Naïve Bayes and Bayesian belief networks
Giảng viên
TS. VÕ THỊ NGỌC CHÂU

Group 2
Nguyễn Chí Thanh

7140837

Lê Hồng Dũng

7140819

Trần Bảo Phong

7140252


Mục lục
1. Giới thiệu .....................................................................................................................1
2. Lý thuyết Bayes ...........................................................................................................1
2.1 Naive Bayes Classifier ..........................................................................................2
2.2 Laplacian Correction .............................................................................................3
3. Mạng Bayes .................................................................................................................5
3.1 Giới thiệu. ..............................................................................................................5


3.2 Huấn luyện Mạng Bayes. .....................................................................................6
4. Ứng dụng Bayes Theorem trong việc phân lớp dữ liệu ..............................................8
Tài liệu tham khảo .........................................................................................................13


1. Giới thiệu
Phân loại Bayes là phân loại mẫu theo mô hình thống kê. Mô hình phân
loại Bayes có thể dự đoán xác suất thành phần của lớp, chẳng hạn như xác suất
mà một mẫu nhất định thuộc về một lớp đặc biệt.
Phân loại Bayes dựa trên định lý Bayes. Phân loại Bayes ngây thơ (Naive
Bayesian) giả định rằng tác động của một giá trị thuộc tính trên một lớp nhất
định là độc lập với các giá trị của các thuộc tính khác. Giả định này được gọi
là lớp có điều kiện độc lập. Nó được thực hiện để đơn giản hóa việc tính toán
có liên quan và theo nghĩa này, được coi là "ngây thơ".
2. Lý thuyết Bayes
Giả sử chúng ta có một mẫu X bao gồm một tập n các thuộc tính
{x1,x2,x3,...,xn). Trong lý thuyết xác xuất Bayes, X được gọi là một biến cố.
Chúng ta giả định H là một tập các giả định như là giá trị X sẽ được phân loại
vào lớp C. Trong bài toán về phân loại dữ liệu bằng cách áp dụng lý thuyết
Bayes là chúng ta cần tìm ra giá trị P(H|X) - xác suất có điều kiện của H khi
xẩy ra biến cố X. Nói một cách khác chúng ta tìm ra xác xuất biến X thuộc tập
C, khi chúng ta đã biết các thuộc tính của X.
P(H|X) là xác suất có điều kiện của H khi xẩy ra biến cố X.
Ví dụ: giả sử tập dữ liệu mẫu gồm có các thuộc tính tuổi và thu nhập, và
một mẫu X có tuổi là 35 tuổi và thu nhập là 40,000$. Gọi H là giả thuyết khách
hàng sẽ mua một máy tính. Như vậy P(H|X) là xác xuất của mua máy tính của
một khách hàng khi đã biết được tuổi và thu nhập.
Ngược lại P(H) là xác xuất xẩy ra biến cố H. Trong ví dụ này thì P(H) là
xác suất khách hàng sẽ mua máy tính mà không phụ thuộc vào các yếu tố khác
(như tuổi, thu nhập, hay bất kì thuộc tính nào khác). Trong khi đó xác suất

P(H|X) thì phụ thuộc vào nhiều yếu tố khác của khách hàng (tuổi, thu nhập),
còn P(H) thì hoàn toàn độc lập với biến cố X.

Trang 1


P(X) là xác xuất xẩy ra biến cố X. Trong ví dụ của chúng ta thì đó là xác
suất một người nào đó trong tập dữ liệu của chúng ta có độ tuổi là 35 tuổi và
thu nhập là 40,000$.
Theo lý thuyết Bayes thì để tính xác xuất của P(H|X) có thể được tính thông
qua P(H), P(X) và P(X|H) theo công thức sau:
𝑃(𝐻|𝑋) =

P(X|H) 𝑃(𝐻)
P(X)

và các xác suất này có thể tính dựa vào tập mẫu dữ liệu.
2.1 Naive Bayes Classifier
Phân loại Bayes “ngây thơ” được phát biểu như sau:
a. Giả sử T là tập dữ liệu mẫu và các phần tử được gán nhãn tương ứng. Giả
sử chúng ta có k phân loại (class) là C1, C2,..., Ck. Mỗi phần tử được biểu diễn
bởi 1 vector đặc trưng gồm n chiều, X ={x1,x2,...,xn} để miêu tả tương ứng với
n thuộc tính tương ứng A1,A2,…An
b. Cho một mẫu X, việc phân loại X vào nhãn nào trong tập C1,C2,...,Cn
bằng cách tìm ra giá trị lớn nhất của xác suất có điều kiện của lớp nào khi biết
trước sự kiện X. Hay X thuộc vào lớp Ci nếu và chỉ nếu
𝑃(𝐶𝑖|𝑋) > 𝑃(𝐶𝑗|𝑋) 𝑣ớ𝑖 1 ≤ 𝑗 ≤ 𝑚,

𝑗 ≠𝑖


Vì vậy chúng ta chỉ cần tìm ra Ci mà có giá trị P(Ci|X) là lớn nhất. Và lớp
Ci mà có giá trị P(Ci|X) lớn nhất được gọi là xác suất hậu nghiệm tối đa. Theo
lý thuyết Bayes thì
𝑃(𝐶𝑖|𝑋) =

P(X|Ci) 𝑃(𝐶𝑖)
P(X)

c. Trong đó P(X) được tính như nhau cho tất cả các lớp, vì thế chúng ta chỉ
cần tính P(X|Ci) P(Ci) lớn nhất. Nếu xác xuất của các lớp là xác xuất tiên
nghiệm P(Ci) là không biết , thường thì chúng ta sẽ giả định rằng xác xuất của
các lớp P(Ci) là như nhau. Vì thế P(C1) = P(C2)=…=P(Ck). Vì thế chúng ta
chỉ cần tìm tối đa của P(X|Ci). Còn nếu không chúng ta cần phải tính
Trang 2


P(X|Ci)P(Ci). Thông thường chúng ta tính P(Ci) dựa vào tần suất xuất hiện của
Ci trong tập mẫu T, P(Ci) = freq(Ci,T)/|T|
d. Với một tập dữ liệu gồm nhiều thuộc tính, chúng ta thường tốn rất nhiều
thời gian để tính toán xác suất P(X|Ci). Chính vì thế trong mô hình Naïve Bayes
chúng ta sẽ giả định rằng các thuộc tính này sẽ độc lập với nhau. Như vậy thì
xác xuất của P(X|Ci) sẽ được tính như sau:

trong đó xác suất của P(x1|Ci), P(x2|Ci),…, P(xn|Ci) có thể dễ dàng tính được
dựa vào tập huấn luyện. Vì xk là giá trị của thuộc tính Ak của X
+ Nếu Ak là giá trị rời rạc, P(xk|Ci) là số lượng phần tử của lớp Ci có thuộc
tính Ak có giá trị là xk chia cho số lượng phần tử của Ci, freq(Ci,T).
+ Nếu Ak là giá trị liên tục, thông thường chúng ta sẽ giả định rằng giá trị
này sẽ tuân theo phân bố Gaussian với giá trị trung bình µ và độ lệch chuẩn là
σ được tính như sau


Vì vậy giá trị của P(xk|Ci) được tính:

Chúng ta cần tính giá trị giá trị trung bình và độ lệch chuẩn của tập giá trị
thuộc tính Ak của tập mẫu Ci.
e. Để có thể tìm và gán nhãn cho một mẫu X, chúng ta cần tính P(X|Ci)P(Ci)
cho từng lớp Ci. Quá trình phân lớp cho mẫu X vào lớp Ci nếu và chỉ nếu lớp
đó có giá trị P(X|Ci)P(Ci) là lớn nhất.
2.2 Laplacian Correction
Theo công thức tính xác suất của P(X|Ci):

Trang 3


dựa theo giả định rằng các thuộc tính là độc lập. Từ công thức tính này chúng
ta thấy rằng nếu trong một lớp Ci nào đó mà X có thuộc tính xk mà không có
một mẫu nào trong lớp Ci có giá trị đó. Trường hợp này thì P(xk|Ci) = 0 điều
này sẽ dẫn đến P(X|Ci) = 0 mặc cho giá trị của P(xt|Ci) của các thuộc tính còn
lại có thể là rất lớn. Vì thế Laplacion Correction là một cách thức để giải quyết
vấn đề xác suất bằng 0 này.
Laplace correction giả định rằng tập dữ liệu mẫu của chúng ta đủ lớn để có
thể thêm 1 vào cho mỗi giá trị đếm như thế chúng ta có thể tạo ra một xác suất
khác 0 cho các thuộc tính. Nếu chúng ta có q lần đếm thì chúng ta cần phải
cộng q vào mẫu số trong lúc tính xác suất của P(xk|Ci).

Một cách tổng quát hơn chúng ta có thể dung phương pháp z-estimation
theo công thức

Trang 4



3. Mạng Bayes
3.1 Giới thiệu.
Bayesian Belief Networks (BBNs) còn gọi là Bayesian Networks (BNs)
hay Belief Networks (BNs) được phát triển đầu tiên vào cuối những năm 1970s
ở Đại học Stanford [1]. BBN là mô hình đồ thị (graphical model) thể hiện mối
quan hệ nhân – quả (cause – effect) giữa các biến. BBNs chủ yếu dựa trên lý
thuyết xác suất có điều kiện hay còn gọi là lý thuyết Bayes (Bayesian theory,
hay Bayes’ theory). Chính vì thế, kỹ thuật này có tên gọi là Bayesian Belief
Networks (BBNs). BBNs còn là một dạng của biểu đồ ảnh hưởng (influence
diagram), kết hợp hài hòa giữa lý thuyết xác suất và lý thuyết đồ thị để giải
quyết hai vấn đề quan trọng: tính không chắc chắn và tính phức tạp, được ứng
dụng rộng rãi trong toán học và kỹ thuật.
Trained Bayesian belief networks được sử dụng trong phân lớp dữ liệu.
Một Belief Networks được xác định bởi hai thành phần: Đồ thị có hướng,
không tuần hoàn và một bảng tập hợp các xác suất có điều kiện (CPT). Mỗi nút
trong đồ thị đại diện cho một biến ngẫu nhiên. Các biến có thể là giá trị rời rạc
hoặc giá trị liên tục. BBNs là mô hình trực tiếp mà mỗi biến được đại diện bởi
một nút (node), mối quan hệ nhân quả giữa hai biến đó được biểu thị bằng mũi
tên được gọi “edge”. Mũi tên hướng từ nút nguyên nhân “parent node” đến nút
kết quả “child node”

Hình 3.1: Ví dụ về Mạng Bayes
Trang 5


3.2 Huấn luyện Mạng Bayes.
Trong việc huấn luyện mạng Bayes, một số kịch bản có thể xảy ra. Các cấu
trúc liên kết có thể được cho biết trước hoặc suy ra từ dữ liệu. Các biến có thể
quan sát được hoặc ẩn trong tất cả hoặc một số các bộ dữ liệu huấn luyện.

Trường hợp dữ liệu ẩn cũng được gọi là giá trị còn thiếu hoặc không đầy đủ dữ
liệu
Nếu biết trước cấu trúc liên kết mạng và quan sát được các biến, thì khi đó
việc huấn luyện mạng sẽ đơn giản hơn.
Chúng tôi sẽ trình bày phương pháp :
Cho D là một tập huấn luyện của các tập dữ liệu: 𝑋1 , 𝑋2 , ..., 𝑋|𝐷| . Huấn
luyện mạng Bayes có nghĩa là chúng ta phải tìm hiểu các giá trị của các
conditional probability table (CPT). Giả sử 𝑤𝑖𝑗𝑘 là một CPT cho biến 𝑌𝑖 = 𝑦𝑖𝑗
có “parent” là 𝑈𝑖 = 𝑈𝑖𝑘 , ta có 𝑤𝑖𝑗𝑘 ≡ P ( 𝑌𝑖 = 𝑦𝑖𝑗 | 𝑈𝑖 = 𝑈𝑖𝑘 ). Ví dụ, nếu 𝑤𝑖𝑗𝑘 là
CPT trên hình 1.1 (b), ta có 𝑌𝑖 là LungCancer; 𝑦𝑖𝑗 là giá trị của nó, "Yes";
𝑈𝑖 liệt kê các nút cha của 𝑌𝑖 , cụ thể là, {FamilyHistory, Smoker}; và 𝑈𝑖𝑘 liệt kê
các giá trị của các nút “parents”, cụ thể là, {"yes", "yes"}. Các 𝑤𝑖𝑗𝑘 được xem
như trọng số. Tập các trọng số được gọi chung là W.

Một chiến lược “descent gradient” được sử dụng để tìm kiếm các giá trị
𝑤𝑖𝑗𝑘 , dựa trên giả định rằng mỗi thiết lập có thể có của 𝑤𝑖𝑗𝑘 là đều có khả năng,
và được lặp lại nhiều lần. Chúng tôi muốn tìm tập các của trọng số, W. Để bắt
đầu, các trọng số được khởi tạo giá trị xác suất ngẫu nhiên.
Các phương pháp Gradient descent thực hiện “greedy hill-climbing” trong
nó. Các trọng số được cập nhật tại mỗi lần lặp. Cuối cùng, chúng hội tụ về một
giải pháp tối ưu.
|𝐷|
Chúng tôi tối đa hóa 𝑃𝑤 (D) = ∏𝑑=1 𝑃𝑤 (𝑋𝑑 ). Điều này có thể được thực hiện

bằng cách làm theo các gradient của ln𝑃𝑤 (S), sẽ làm cho các vấn đề đơn giản
Trang 6


hơn. Với cấu trúc liên kết mạng và khởi tạo 𝑤𝑖𝑗𝑘 , thuật toán được thực hiện
như sau:

Tính toán gradient: Đối với mỗi i, j, k, tính toán
𝜕ln𝑃𝑤 (D)
𝜕𝑤𝑖𝑗𝑘

|𝐷| P ( 𝑌𝑖 = 𝑦𝑖𝑗 , 𝑈𝑖 = 𝑈𝑖𝑘 |𝑋𝑑 )
𝑤𝑖𝑗𝑘

= ∑𝑑=1

(1.1)

Xác suất ở phía bên phải của phương trình được tính cho mỗi tuple huấn
luyện, 𝑋𝑑 , trong D. Để ngắn gọn, chúng ta gọi xác suất này là P. Khi các biến
đại diện bởi 𝑌𝑖 và 𝑈𝑖 được ẩn đối với một số 𝑋𝑑 , khi đó xác suất tương ứng p
có thể được tính toán từ các biến quan sát của tuple bằng cách sử dụng các thuật
toán chuẩn cho việc suy luận mạng Bayes, chẳng hạn như phần mềm thương
mại Hugin.
Take a small step in the direction of the gradient: Các trọng số được cập
nhập bởi
𝑤𝑖𝑗𝑘 ← 𝑤𝑖𝑗𝑘 + (𝑙)

𝜕ln𝑃𝑤 (D)
𝜕𝑤𝑖𝑗𝑘

(1.2)

nơi 𝑙 là learning rate biểu diễn các step size và

𝜕ln𝑃𝑤 (D)
𝜕𝑤𝑖𝑗𝑘


được tính từ phương

trình (1.1).
Renormalize the weights: Bởi vì các trọng 𝑤𝑖𝑗𝑘 là những giá trị xác suất,
giá trị của chúng phải nằm giữa 0.0 và 1.0, và Σ𝑗 𝑤𝑖𝑗𝑘 phải bằng 1 với mọi i, k.
Các tiêu chí này đạt được bằng cách chuẩn hóa lại trọng số sau khi họ đã được
cập nhật bởi phương trình (1.2).

Trang 7


4. Ứng dụng Bayes Theorem trong việc phân lớp dữ liệu
Để phân lớp một đối tượng có nhiều phương pháp như bộ phân lớp dựa trên
định lý Bayes, mạng neural, phương pháp k láng giềng gần nhất, cây quyết
định, thuật toán di truyền…
Bộ phân lớp dữ liệu dựa trên định lý Bayes (Bayes theorem) còn gọi là
Naïve Bayes Classifier.
Mục đích: để dự đoán những nhãn phân lớp cho các bộ dữ liệu /mẫu mới.
Đặc điểm:
- Học theo xác suất: tính các xác suất rõ ràng cho các giả thiết, là một trong
những hướng thiết thực cho một số vấn đề thuộc loại học;
- Có tăng trưởng: mỗi mẫu huấn luyện có thể tăng/giảm dần khả năng đúng
của một giả thiết, tri thức ưu tiên có thể kết hợp với dữ liệu quan sát;
- Dự đoán theo xác suất: dự đoán nhiều giả thiết, trọng số cho bởi khả năng
xảy ra của chúng;
- Chuẩn: phương pháp Bayes cung cấp một chuẩn để tạo quyết định tối ưu
so với những phương pháp khác.
Đầu vào: một tập các mẫu dữ liệu huấn luyện, với một nhãn phân lớp cho
mỗi mẫu dữ liệu.

Đầu ra: mô hình (bộ phân lớp) dựa trên tập huấn luyện và những nhãn phân
lớp.
Một số ứng dụng phân lớp tiêu biểu: trong tín dụng, tiếp thị, chẩn đoán y
khoa, phân tích hiệu quả điều trị…
2 bước của tiến trình phân lớp:
Bước 1: xây dựng mô hình từ tập huấn luyện
- Mỗi bộ / mẫu dữ liệu được phân vào một lớp được xác định trước
- Lớp của một bộ / mẫu dữ liệu được xác định bởi thuộc tính gán nhãn lớp.
Trang 8


- Tập các bộ / mẫu dữ liệu huấn luyện – tập huấn luyện – được dùng để xây
dựng mô hình.
- Mô hình được biểu diễn bởi các luật phân lớp, cây quyết định hoặc các
công thức toán học.
Bước 2: Sử dụng mô hình – kiểm tra tính đúng đắn của mô hình và dùng
nó để phân lớp dữ liệu mới.
- Phân lớp cho những đối tượng mới hoặc chưa được phân lớp
- Đánh giá độ chính xác của mô hình:
+ Lớp biết trước của một mẫu/ bộ dữ liệu đem kiểm tra được so sánh với
kết quả thu được từ mô hình
+ Tỉ lệ chính xác = % các mẫu/ bộ dữ liệu được phân lớp đúng bởi mô hình
trong số các lần kiểm tra.

Trang 9


Phân lớp dữ liệu Naïve Bayesian có những giả định, đặc điểm sau:
- Các thuộc tính là độc lập: làm cho có thể tính toán; cho ra bộ phân lớp tối
ưu khi thỏa yêu cầu; thực tế thì các biến (thuộc tính) thường có liên quan với

nhau nên yêu cầu ít khi được thỏa.
- Nếu thuộc tính thứ i là rời rạc: P(xi|C) được ước lượng bởi tần số liên quan
của các mẫu có giá trị xi cho thuộc tính thứ i trong lớp C.
- Nếu thuộc tính thứ i là liên tục: P(xi|C) được ước lượng thông qua hàm
mật độ Gaussian.
Bộ phân lớp dữ liệu Naïve Bayes Classifier dựa trên ý tưởng gán cho mẫu
X nhãn phân lớp là C sao cho P(C | X) là lớn nhất hay khả năng xảy ra là cao
nhất dựa trên xác suất.
Ví dụ sau minh họa cho việc phân lớp dữ liệu bằng phương pháp Naïve
Bayes Classifier: Cho tập dữ liệu chơi tennis như sau (Tập huấn luyện trích từ
Quinlan’s ID3)

Trang 10


Thời
tiết
Nắng
Nắng
U ám
Mưa
Mưa
Mưa
U ám
Nắng
Nắng
Mưa
Nắng
U ám
U ám

mưa

Nhiệt
độ
Nóng
Nóng
Nóng
ấm áp
Mát
Mát
Mát
ấm áp
Mát
ấm áp
ấm áp
ấm áp
Nóng
ấm áp

Ước lượng P(xi|C)
Thời tiết
P(nắng | p) =
2/9
P(u ám | p) =
4/9
P(mưa | p) =
3/9
Nhiệt độ
P(nóng | p) =
2/9

P(ấm áp | p) =
4/9
P(mát | p) =
3/9

Độ
ẩm
Cao
Cao
Cao
Cao
Vừa
Vừa
Vừa
Cao
Vừa
Vừa
Vừa
Cao
Vừa
Cao

Gió

Lớp

không
không
không
không

không


không
không
không


không


N
N
P
P
P
N
P
N
P
P
P
P
P
N

P(p) = 9/14
P(n) = 5/14
P(nắng | n) =
3/5

P(u ám | n) = 0

Độ ẩm
P(cao | p) =
3/9
P(vừa | p) =
6/9

P(cao | n) = 4/5
P(vừa | n) = 1/5

P(mưa | n) =
2/5
P(nóng | n) =
2/5
P(ấm áp | n) =
2/5
P(mát | n) =
1/5

Gió
P(có | p) = 3/9

P(có | n) = 3/5

P(không | p) =
6/9

P(không | n) =
2/5


Cho mẫu X = <mưa, nóng, cao, không>. X thuộc lớp nào?
Ta có:
P(X|p).P(p) =
3 2 3 6 9
P(mưa|p). P(nóng|p). P(cao|p). P(không|p).P(p) = . . . . = 0.010582
9 9 9 9 14
P(X|n).P(n) =
2 2 4 2

P(mưa|n). P(nóng|n). P(cao|n). P(không|n).P(n) = . . . .

5

5 5 5 5 14

= 0.018286
Trang 11


Ta chọn xác suất cao nhất để phân lớp mẫu X. Do đó Mẫu X được phân
vào lớp n (không chơi tennis)
Chuẩn hóa Bayes: Trong trường hợp có một thuộc tính có xác suất p = 0 thì
ta phải chuẩn hóa bằng cách thêm 1 vào tất cả các thuộc tính của lớp để thực
hiện tính toán. Ví dụ lớp N có thuộc tính “thời tiết” với giá trị “u ám” có p = 0

Ta chỉnh lại như sau:
nắng = 4
U ám = 1
Mưa = 3

Khi đó ta có P(u ám | n) = 1/8
Kết luận: Phân lớp dữ liệu Naïve Bayesian cho kết quả tốt trong thực tế
mặc dù chịu những giả thiết về tính độc lập thống kê của các thuộc tính; phân
lớp không yêu cầu phải ước lượng một cách chính xác xác suất; dễ cài đặt, học
nhanh, kết quả dễ hiểu; sử dụng trong phân loại text, spam… tuy nhiên khi dữ
liệu có nhiều thuộc tính dư thừa thì Naïve Bayesian không còn hiệu quả; dữ
liệu liên tục có thể không tuân theo phân phối chuẩn.

Trang 12


Tài liệu tham khảo
[1] Jiawei Han, Micheline Kamber, Jian Pei, ―Data Mining: Concepts
and Techniques‖, Third Edition, Morgan Kaufmann Publishers, 2012.
[2] Wikipedia: Bayes Theorem
[3] David L. Olson, Dursun Delen, ―Advanced Data Mining
Techniques‖, Springer-Verlag, 2008

Trang 13



×