Một số giải thuật phân lớp dữ liệu tập trung

Một phần của tài liệu TÍCH HỢP THÔNG TIN KHÔNG THUẦN NHẤT VỀ NGỮ NGHĨA TRONG MÔI TRƯỜNG PHÂN TÁN (Trang 49)

Như đã trình bày trong chương 1, có nhiều kĩ thuật được sử dụng cho việc xây dựng các phân lớp như SVM, NB, NB tăng cường, cây quyết định, K lân cận gần nhất. Trong phần này, tác giả trình bày giải thuật thường được sử dụng trong các ứng dụng là NB, TANB. Những giải thuật được chấp nhận không chỉ bởi tính đơn giản trong quá trình cài đặt mà còn là hiệu quả đạt được khi áp dụng vào những bài toán thực tế (xem [20],[23],[49],[62]).

3.1.1 Phân lớp Naïve Bayes

Phân lớp NB là phân lớp thống kê được xây dựng dựa trên định lý Bayes với giả thiết các biến độc lập với nhau. Trong giải thuật NB, mỗi mẫu x được biểu diễn bởi một tập các giá trị thuộc tính, có nghĩa là x = a ,a ,...,a1 2 n , giá trị lớp của mẫu

x là một giá trị trong tập hữu hạn C = c ,c ,...,c1 2 m . Ta giả sử rằng, các giá trị thuộc tính hoàn toàn độc lập với giá trị của các lớp cho trước.

Tập dữ liệu huấn luyện D = (x ,y ),(x ,y ),...,(x ,y ) 1 1 2 2 n n  là tập dữ liệu đã được gán nhãn, trong đó xi là các mẫu dữ liệu huấn luyện, yi là giá trị lớp của mẫu dữ liệu tương ứng. Trong suốt quá trình học, một giả thiết sẽ được đưa ra dựa trên nguồn dữ liệu mẫu. Quá trình đánh giá là việc tiên đoán giá trị lớp cho mẫu x được đưa ra. Với x = a ,a ,...,a1 2 n , giá trị lớp c của mẫu x cần thỏa mãn:

 

j

MAP j 1 2 n

c C

Áp dụng định lý Bayes đối với đẳng thức (*) ta có:   j j 1 2 n j j MAP 1 2 n j j c C c C 1 2 n P(a ,a ,...,a |c )P(c )

c (x)= arg max = arg maxP(a ,a ,...,a |c )P(c )

P(a ,a ,...,a )

Với giả định các thuộc tính giá trị là độc lập với nhau, khi đó xác suất của các thuộc tính a ,a ,...,a1 2 n đối với giá trị lớp cj được tính bằng tích các xác suất thành phần của các thuộc tính, 1 2 n j n i j

i=1

P(a ,a ,...,a |c )= p(a |c ). Trong đó, các xác suất

j

P(c ) và P(a |c )i j được tính dựa trên tần suất xuất hiện của các giá trị trong nguồn

dữ liệu huấn luyện. Ví dụ, đối với lớp c, c c

t P =

t , tclà số lượng mẫu trong lớp c, còn t là tổng số lượng mẫu có trong dữ liệu huấn luyện. Cách tính xác suất này nhìn chung là hoàn toàn đúng đắn, tuy nhiên độ chính xác sẽ giảm trong trường hợp tc

không đủ lớn. Khi đó, cách tiếp cận dựa trên Bayes [41] sẽ sử dụng ước lượng dựa trên k (hay còn gọi là ước lượng Laplace), được định nghĩa là t +kc p

t +k . Trong đó, p là ước lượng ban đầu của xác suất mà chúng ta cần tính (ví dụ, p = 1

m nếu có m

lớp), k là hằng số hay còn được gọi là kích thước mẫu tương ứng.

Phân loại Naive Bayes Giai đoạn học:

Với mỗi lớp cj và mỗi giá trị thuộc tính ai, tính xác suất P(c )j

và P(a |c )i j dựa vào tần số của chúng trong dữ liệu huấn luyện.

Giai đoạn phân loại:

Với một trường hợp mới x = <a1, a2, ...,an> sẽ được phân loại như sau:   j n NB j i j c C i=1

C = arg maxP(c ) P(a |c )

Ví dụ 3.1:

Cho nguồn dữ liệu về chơi thể thao dưới dạng bảng sau:

Outlook Temperature Humidity Windy Class

Sunny Hot High False N

Sunny Hot High True N

Overcast Hot High False Y

Rain Mild High False Y

Rain Cool Normal False Y

Rain Cool Normal True N

Overcast Cool Normal True Y

Sunny Mild High False N

Sunny Cool Normal False Y

Rain Mild Normal False Y

Sunny Mild Normal True Y

Overcast Mild High True Y

Overcast Hot Normal False Y

Overcast Mild High True N

Y : Play N: Do not Play

Bảng 3.1 Nguồn dữ liệu PlaySport cho phân lớp Naive Bayes

Áp dụng định lý Bayes ta có: p(C|X) với X = <x1,x2,…,xn> là xác suất để bộ X thuộc vào lớp C. Ta có P(C=N|Outlook=Sunny,Temperature=Hot, Humidity=High,Windy=False) là xác suất để bộ <Sunny,Hot,High, False> thuộc lớp N. Ý tưởng cho việc này chính là gán lớp C cho mẫu X với xác suất p(C|X) là lớn nhất. Trong đó C là một trong các lớp đã được xác định sẵn, ở đây, C {N,Y}.

Thực hiện phân lớp cho ví dụ trên.

o Ta xác định các P(xi|C). với xi là các giá trị thuộc tính. C{N,Y}. o Ta tính xác suất cho từng giá trị của các thuộc tính Outlook,

Temperature, Humidity, Windy. o P(Y) = 9/14; P(N) = 5/14

Outlook P(Sunny|Y) = 2/9 P(Sunny|N) = 3/5 P(Overcast|Y) = 4/9 P(Overcast|N) = 0/5 P(Rain|Y) = 3/9 P(Rain | N) = 2/5 Temperature P(Hot|Y) = 2/9 P(Hot|N) = 2/5 P(Mild|Y) = 4/9 P(Mild| N) = 2/5 P(Cool|Y) = 3/9 P(Cool|N) = 1/5 Humidity P(High|Y) = 3/9 P(High|N) = 4/5 P(Normal|Y) = 6/9 P(Normal|N) = 1/5 Windy P(True|Y) = 3/9 P(True|N) = 3/5 P(False|Y) = 6/9 P(False|N) = 2/5

Với một mẫu x = <Rain,Hot,High,False>, ta cần xác định xem mẫu này thuộc lớp N hay lớp Y?

o P(X|Y) P(Y) = P(Rain|Y)  P(Hot|Y)  P(High|Y)  P(False|Y)  P(Y) = 3  2  3  6  9  0.010582

9 9 9 9 14

o P(X|N) P(N) = P(Rain|N)  P(Hot|N)  P(High|N) 

P(False|N)  P(N) = 2  2  4  2  5  0.018286

5 5 5 5 14

Như vậy, ta có thể phân X vào lớp N, nghĩa là không chơi thể thao.

3.1.2 TANB

Phân lớp TANB là phân lớp được phát triển dựa trên phân lớp NB. Nếu như phân lớp NB được xây dựng với giả định rằng các thuộc tính là độc lập với nhau thì

phân lớp TANB lại quan tâm đến sự ảnh hưởng lẫn nhau của các thuộc tính (xem [12],[23],[33])

Trong cấu trúc NB, chỉ tồn tại các cung đi từ thuộc tính class đến các thuộc tính khác, nghĩa là các thuộc tính độc lập với nhau trong việc đánh giá thuộc tính class. Các thuộc tính chỉ phụ thuộc vào thuộc tính class. Còn trong cấu trúc tăng cường (augmented) tồn tại các cung đi thuộc tính này đến thuộc tính kia.

Một cung đi từ thuộc tính Ai đến thuộc tính Aj chỉ ra rằng: ảnh hưởng của thuộc tính Aj lên việc đánh giá thuộc tính class cũng phụ thuộc vào giá trị của thuộc tính Ai. Trong hình 3.3, ta thấy rằng: ở thuộc tính A3, ngoài cung đi từ thuộc tính C đến còn tồn tại một cung đi thuộc tính A1 sang, điều đó có nghĩa là việc đánh giá thuộc tính C của thuộc tính A3 còn phụ thuộc vào giá trị của thuộc tính A1.

Như vậy, để có thể xây dựng được phân lớp TANB, ta cần xây dựng được một cấu trúc tăng cường. Chow & Liu (1968) đã mô tả một thủ tục cho việc xây dựng một cây Bayes dựa trên dữ liệu. Thủ tục này sử dụng cây bao trùm cực đại (maximal weighted spanning tree) để giảm đi độ phức tạp của việc tính độ tương thích cực đại (maximum likelihood).

Hình 3.2. Ví dụ về mạng Naïve Bayes

Thủ tục xây dựng cây Bayesian

1. Tính

D

P i j

I (X ;X ) giữa các cặp các thuộc tính, với i j. Trong 

đó,  P x,y P(x,y) I (X;Y)= P(x,y)log P(x)P(y)

Là hàm thông tin bổ trợ (mutual information), hàm chỉ ra mức độ ảnh hưởng của Y đối với X.

2. Xây dựng một đồ thị vô hướng đầy đủ, trong đó các đỉnh là các thuộc tính có trong X. Biểu diễn trọng số của cung nối từ Xi

đến Xj bằng

D

P i j I (X ;X ) .

3. Xây dựng một cây bao trùm cực đại.

4. Chuyển đổi cây bao trùm vô hướng thành cây có hướng bằng cách chọn một nút gốc rồi thiết lập các hướng của các cung theo hướng đi ra từ nút gốc đó.

Dựa trên thủ tục xây dựng cây của Chow & Liu (1968), N. Friedman et al. ([23]) đưa ra một thủ tục xây dựng TANB có sử dụng các thông tin bổ trợ giữa các thuộc tính và xác suất điều kiện nhằm đánh giá thuộc tính class. Khi đó, hàm thông tin bổ trợ được định nghĩa như sau:

 P x,y,z P(x,y|z) I (X;Y|Z)= P(x,y,z)log P(x|z)P(y|z)

Trong đó, P(x,y,z)là xác suất của các giá trị thuộc tính của X, Y, Z tương ứng và được tính dựa trên sự xuất hiện đồng thời của các giá trị thuộc tính x, y, z trong dữ liệu mẫu. P(x,y,z) là xác suất điều kiện, được tính dựa trên sự xuất hiện của các giá trị thuộc tính x, y và giá trị z đã được xác định.

Thủ tục xây dựng TANB

1. Tính

D

P i j

I (A ,A |C) giữa các cặp thuộc tính, với i j. 

2. Xây dựng một đồ thị vô hướng đầy đủ, trong đó các đỉnh là các thuộc tính A ,A ,...,A1 2 n . Biểu diễn trọng số của các cung từ Ai đến Aj bằng giá trị

D

P i j I (A ,A |C). 3. Xây dựng cây bao trùm cực đại.

4. Chuyển cây vô hướng thành cây có hướng bằng việc chọn ra một thuộc tính gốc và thiết lập các hướng của tất cả các cung theo hướng đi ra từ gốc.

5. Xây dựng TANB bằng việc thêm vào một đỉnh có tên là C và thêm các cung đi từ C đến các Ai.

Cũng dựa trên thủ tục xây dựng cây của Chow & Liu, có nhiều dạng phát triển cho TANB như ETAN [37] với việc cho phép giá trị liên tục trong việc xây dựng các cung, SAB [59] với cải tiến trong việc xây dựng các cung trong cây Bayes. Nghiên cứu gần đây nhất cho việc cải tiến NB là AODE (averaged one- dependence estimator) [60]. Trong AODE, một tập hợp các phân lớp 1-phụ thuộc (mỗi thuộc tính chỉ phụ thuộc vào một thuộc tính khác) được học và việc phân lớp được thực hiện bằng việc kết hợp những tiên đoán của các phân lớp đã học. Điều này tương tự như việc mỗi thuộc tính trong TANB phụ thuộc vào nhiều hơn một thuộc tính khác.

Phân loại TANB Giai đoạn học:

o Xây dựng mô hình TANB

o Dựa trên mô hình TANB cùng với nguồn dữ liệu huấn luyện, với mỗi lớp cj, mỗi cặp giá trị thuộc tính a , ai l(trong đó, al là thuộc tính hỗ trợ thông tin cho thuộc ai, được xác định dựa trên mô hình TANB), tính xác suất P(c )j và P(a |a ,c )i l j dựa vào tần số của chúng trong dữ liệu huấn luyện.

Giai đoạn phân loại:

Với một trường hợp mới x = a , a , ..., a1 2 n sẽ được phân loại như sau: C   j n TANB c j i l j i=1

C = arg maxP(c ) P(a |a ,c )

với al là thuộc tính hỗ trợ thông tin cho thuộc tính a i

3.2 Một số giải thuật phân lớp phân tán

Các giải thuật phân lớp thường được chia thành giai đoạn học và giai đoạn phân lớp. Chính vì thế, khi chuyển sang môi trường phân tán, việc chuyển đổi các giải thuật là hoàn toàn khả thi và giai đoạn phân lớp có thể được thực hiện tại các môi trường, vị trí khác nhau. Trong phần tiếp theo, luận văn sẽ trình bày cách các giải thuật phân lớp tập trung như NB và NB tăng cường được chuyển sang môi trường phân tán.

3.2.1 Phân lớp Naive Bayes cho dữ liệu phân tán

Trong môi trường tập trung, thông tin thống kê cho phân lớp Naive Bayes được tính trong giai đoạn học. Chúng được tính dựa trên nguồn dữ liệu huấn luyện mỗi khi có yêu cầu. Điều này cho phép chúng ta áp dụng phân lớp này cho môi trường phân tán, khi mà thông tin thống kê có thể được tính toán ở những vị trí khác nhau trước khi được kết hợp lại để cho ra kết quả cuối cùng.

Giải thuật phân lớp dựa trên Naive Bayes có thể được áp dụng cho cả hai dạng phân tán là phân tán phân mảnh ngang và phân tán phân mảnh dọc của dữ liệu.

3.2.1.1 Phân tán phân mảnh ngang

Khi dữ liệu được phân mảnh ngang, mỗi nguồn dữ liệu chứa một tập con các bản ghi. Như vậy, mỗi nguồn dữ liệu đều chứa toàn bộ tập thuộc tính của dữ liệu và

  

1 2 K

D = D D ... D (K là số trạm có chứa tập dữ liệu con của dữ liệu của nguồn D) và D = D + D +...+ D1 2 K . Để có thể xác định được tần số của các bản ghi trên toàn bộ nguồn dữ liệu, ta cần tính

k k k k D j D j t = count (x),t = count (c ), k k ij D i j

t = count (a |c ) tại mỗi vị trí lưu trữ dữ liệu k và gửi chúng đến một vị trí trung tâm. Thông tin thống kê trên toàn bộ dữ liệu sẽ được tính tại vị trí trung tâm theo hình thức sau: K k K k K k

j j ij ij

k=1 k=1 k=1

Giải thuật phân lớp NB phân tán phân mảnh ngang được miêu tả trong hình 3.6.

Phân lớp Naive Bayes cho dữ liệu phân tán phân mảnh ngang Giai đoạn học

For (mỗi nguồn dữ liệu D ){ k Tính giá trị

k

k

D

t = count (x)và chuyển đến vị trí trung tâm

For (mỗi giá trị lớp cj){ Tính giá trị

k

k

j D j

t = count (c )và chuyển đến vị trí trung tâm

For (mỗi giá trị a ){ i Tính giá trị

k

k

ij D i j

t = count (a |c ),chuyển đến vị trí trung tâm }

} }

Tại ví trí trung tâm

    K k K k j ij k=1 k=1 j K k i j K k j k=1 k=1 t t P(c )= ,P(a |c )= t t

Giai đoạn phân lớp

Với một trường hợp mới x = a ,a ,...,a1 2 n sẽ được phân loại như sau:   j n NB j i j c C i=1

C (x)= arg maxP(c ) P(a |c )

Hình 3.6. Giải thuật phân lớp Naive Bayes cho dữ liệu phân tán phân mảnh ngang

Giải thuật NB Outlook Humidity Wind PlaySport Phân rã truy vấn Kết hợp kết quả Count(Hum|Playsport)

Thông tin thống kê

D1

D2

DK

Thông tin thống kê Count(Humidity|Playsport)

Hình 3.5. Ví dụ PlaySport đối với giải thuật Naive Bayes cho dữ liệu phân tán phân mảnh ngang

3.2.1.2 Phân tán phân mảnh dọc

Khi dữ liệu được phân mảnh dọc, mỗi trạm sẽ chứa một tập các bộ dữ liệu con. Khi đó toàn bộ dữ liệu tương ứng với mỗi thuộc tính sẽ được lưu trữ tại cùng một vị trí. Giả sử tại vị trí k, tập các thuộc tính được lưu trữ là Ak thì A = Uk=1K Ak và

K

k k=1

A = A . Trong trường hợp này, ta có thể tính các giá trị tần số

k k D t = t = count (x) và k k j j D j

t = t = count (c ) tại bất cứ vị trí nào trong K trạm, sau đó tính

k

k

ij ij D i j

t = t = count (a |c ) tại trạm mà thuộc tính ai được tìm thấy.

Giải thuật phân lớp NB phân tán phân mảnh dọc được mô tả trong hình 3.7.

Phân lớp phân tán cho dữ liệu phân mảnh dọc Giai đoạn học

Cho k là một trong số K trạm Tính

k

X

t = count (x) và chuyển t đến vị trí trung tâm.

For (mỗi lớp cj){ Tính

k

j D j

t = count (c )và chuyển t đến vị trí trung tâm j }

For (mỗi nguồn dữ liệu D ){ k

For (mỗi lớp c và mỗi thuộc tính j a tại nguồn dữ liệu i D ){ k Tính

k

ij D i j

t = count (a |c ) dựa trên dữ liệu huấn luyện D k Chuyển các giá trị tij đến vị trí trung tâm

} }

Tại vị trí trung tâm

j ij j i j j t t P(c )= , P(a |c )= t t

Giai đoạn phân lớp

Với một trường hợp mới x = a ,a ,...,a1 2 n sẽ được phân loại như sau:   j n NB j i j c C i=1

C (x)= arg maxP(c ) P(a |c )

3.2.2 Phân lớp TANB cho dữ liệu phân tán

D. Caragea [10] trình bày các thuật toán phân lớp dựa trên thống kê như NB, cây quyết định, SVM, K lân cận gần nhất được chuyển đổi cho môi trường phân tán. Dựa trên hướng giải quyết của Caragea, tác giả trình bày thuật toán TANB được sử dụng trong môi trường phân tán.

Khi chuyển từ môi trường tập trung sang môi trường phân tán, mô hình TANB cho phân lớp được xây dựng tại trạm trung tâm. Thông tin thống kê sử dụng trong quá trình xây dựng cây được lấy từ các nguồn dữ liệu phân tán. Việc truy vấn các thông tin thống kê được thực hiện tại các trạm phân tán. Thông tin được gửi trả về tại các trạm trung tâm và được tính toán để đưa ra kết quả cuối cùng cho việc đánh giá các mẫu dữ liệu. Thuật toán được xây dựng cho trường hợp phân mảnh ngang và phân mảnh dọc.

3.2.2.1 Phân tán phân mảnh ngang

Khi dữ liệu được phân mảnh ngang, mỗi nguồn dữ liệu chứa một tập con các bản ghi. Như vậy, mỗi nguồn dữ liệu đều chứa toàn bộ tập thuộc tính của dữ liệu và

  

1 2 K

D = D D ... D (K là số trạm có chứa tập dữ liệu con của dữ liệu của nguồn D) và D = D + D +...+ D1 2 K . Để có thể xác định được tần số của các bản ghi trên toàn bộ nguồn dữ liệu, ta cần tính

k k k k D j D j

Một phần của tài liệu TÍCH HỢP THÔNG TIN KHÔNG THUẦN NHẤT VỀ NGỮ NGHĨA TRONG MÔI TRƯỜNG PHÂN TÁN (Trang 49)