Giải thuật TANB cho 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 55)

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 t = count (x), t = count (c ), k k ij D i l j

t = count (a |a ,c ) (trong đó al là thuộc tính có ảnh hưởng đối với thuộc tính

i

a được xác định dựa trên mô hình TANB) 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 công thức sau: K k K k K k

j j ij ij

k=1 k=1 k=1

Phân lớp TANB 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 c ){ j 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ị thuộc tính a với giá trị thuộc tính ảnh i hưởng a ){ l Tính giá trị k k ij D i l j t = count (a |a ,c ) và 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 TANB j i l j c C i=1

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

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

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

Trong môi trường phân tán, khi dữ liệu được phân mảnh dọc, mỗi trạm sẽ chứa một tập con các bộ dữ liệu. Khi đó toàn bộ dữ liệu tương ứng với một 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 . Mô hình TANB được xây dựng tại trạm trung tâm. Dựa trên mô hình TANB, các thông tin thống kê cho các thuộc tính được tính dựa trên nguồn dữ liệu và mối quan hệ giữa các thuộc tính với nhau. 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 l j

t = t = count (a |a ,c ).

Trong môi trường phân tán, có thể xảy ra trường hợp ,a ai l cùng được lưu trữ trên một trạm hoặc trên hai trạm khác nhau. Trường hợp hai thuộc tính được lưu trữ trên cùng một trạm thì việc tính count (a |a ,c )Dk i l j là tương đối đơn giản. Đối với trường hơp hai thuộc tính được lưu trữ trên hai trạm khác nhau, ta sẽ dựa vào chỉ mục của các mẫu dữ liệu để xác định. Tại trạm có chứa thuộc tính ai, ta xác định tập chỉ mục Ii của các mẫu có chứa giá trị thuộc tính ai và giá trị lớp cj, sau đó chuyển về trạm trung tâm. Tại trạm có chứa thuộc tính al, xác định tập chỉ mục Il

của các mẫu có chứa giá trị thuộc tính al và giá trị lớp cj, sau đó chuyển về trạm trung tâm. Tại trạm trung tâm,

k

k

ij ij D i l j i l

t = t = count (a |a ,c )= I I .

Phần mã giả của giải thuật TANB cho dữ liệu phân tán phân mảnh dọc được mô tả như sau.

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 tj đến vị trí trung tâm }

For (mỗi nguồn dữ liệu D có chứa thuộc tính i a ){ i

For (mỗi lớp cj và mỗi thuộc tính a tại nguồn dữ liệu i D ){ i Xác định tập chỉ mục I của các mẫu dữ liệu có chứa i a và i c j Chuyển tập chỉ mục I đến vị trí trung tâm. i

} }

For (mỗi nguồn dữ liệu D có chứa thuộc tính l a ){ l

For (mỗi lớp cj và mỗi thuộc tính a tại nguồn dữ liệu l D ){ l Xác định tập chỉ mục I của các mẫu dữ liệu có chứa l a và l cj

Chuyển tập chỉ mục I đến vị trí trung tâm. l }

}

Tại vị trí trung tâm

j ij j ij i l i l j j t t P(c )= , t = I I , P(a |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 TANB j i l j c C i=1

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

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

3.3 Kết luận

Trong chương này, tác giả đã trình bày những vấn đề sau:

 Giải thuật NB cho nguồn dữ liệu tập trung và nguồn dữ liệu phân tán bao gồm phân tán phân mảnh ngang và phân tán phân mảnh dọc. Cách xử lí các thông tin thống kê trong giải thuật NB.

 Phương pháp xử lý thông tin thống kê được lấy từ các nguồn dữ liệu trong trường hợp dữ liệu phân tán. Cách xây dựng mô hình TANB và giải thuật TANB cho nguồn dữ liệu tập trung và các nguồn dữ liệu phân tán phân mảnh dọc và phân mảnh ngang.

NB và TANB là các giải thuật phân lớp dữ liệu dựa trên mô hình thống kê được sử dụng nhiều trong các ứng dụng hỗ trợ quyết định. Trong chương tiếp theo luận văn sẽ trình bày kết quả cài đặt thử nghiệm của các giải thuật phân lớp đối với một số nguồn dữ liệu.

Chương 4

CÀI ĐẶT THỬ NGHIỆM 4.1 Mục đích cài đặt thử nghiệm

Trong các chương trước, luận văn đã trình về phân lớp và các thuật toán phân lớp dữ liệu. Trong chương này tác giả sẽ trình bày về quá trình cài đặt thử nghiệm và kết quả phân lớp dữ liệu trong môi trường phân tán và không thuần nhất. Việc cài đặt thử nghiệm các phân lớp được thực hiện đối với hai thuật toán NB và TANB trong môi trường tập trung và phân tán. Trong môi trường phân tán, việc phân lớp được thực hiện với các nguồn dữ liệu huấn luyện ở dạng phân tán và nguồn dữ liệu kiểm thử ở dạng tập trung (bài toán 1)

Việc thực nghiệm phân lớp dữ liệu trong môi trường phân tán và không thuần nhất nhằm chỉ ra khả năng tích hợp dữ liệu không thuần nhất và được lưu trữ phân tán cho cả những mục đích nghiên cứu và các mục đích thương mại. Ngoài ra, kết quả của thực nghiệm có thể sẽ là một kiểm chứng cho sự tương đương về độ chính xác của các phân lớp dữ liệu trong môi trường tập trung và môi trường phân tán.

4.2 Nguồn dữ liệu

Để có được những đánh giá khách quan về độ chính xác và hiệu quả của những phân lớp dữ liệu phân tán và không thuần nhất ngữ nghĩa, tác giả đã sử dụng một số dữ liệu chuẩn được cung cấp bởi UCI Machine Learning Repository (http://www.ics.uci.edu/~mlearn/MLRepository.html). Nguồn dữ liệu bao gồm:

 ADULT: ftp://ftp.ics.uci.edu/pub/machine-learning-databases/adult

 CARS: ftp://ftp.ics.uci.edu/pub/machine-learning-databases/car

Các nguồn dữ liệu được chuyển đổi từ dạng .data sang định dạng XML bằng phần mềm Softsilver Transformer 2.5 (download tại http://www.softsilver.com). Ngoài ra, để thuận tiện cho việc truy vấn dữ liệu nhằm thu thập thông tin thống kê, tác giả sử dụng hệ quản trị cơ sở dữ liệu nguồn mở MySQL (download miễn phí tại www.mysql.com) để lưu trữ các nguồn dữ liệu. Việc chuyển đổi dữ liệu ở dạng XML sang cơ sở dữ liệu MySQL được thực hiện bằng một modul viết bằng Java. Sau một số thao tác tiền xử lí, nguồn dữ liệu được lưu trữ dưới dạng các bảng dữ liệu của hệ quản trị cơ sở dữ liệu MySQL.

4.2.1 Chuyển đổi các nguồn dữ liệu

Các nguồn dữ liệu được tải về từ UCI Machine Learning Repository dưới dạng adult.data, cars.data, nursery.data. Sau đó, tác giả sử dụng phần mềm Softsilver Transformer 2.5 để chuyển đổi các dữ liệu này thành dữ liệu dưới dạng XML, đó là adult.xml, cars.xml, nursery.xml. Để thuận tiện cho việc truy vấn các thông tin thống kê từ các nguồn dữ liệu, tác giả sử dụng hệ quản trị cơ sở dữ liệu MySQL để lưu trữ các bảng dữ liệu. Modul chuyển đổi dữ liệu từ dạng XML sang thành bảng dữ liệu quan hệ được viết bằng Java, sử dụng Java SAX (Simple API for XML) để phân tích dữ liệu (ReadData.class). Để có thể sử dụng Java SAX, ta cần khai báo

import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.DocumentBuilder;

import org.xml.sax.SAXException;

import org.xml.sax.SAXParseException;

Trong ReadData.class có một phương thức ReadXMLFile được xây dựng để đọc dữ liệu từ file .xml dựa trên các tab, sau đó ghi vào bảng cơ sở dữ liệu quan hệ. Mỗi phần tử sau khi được đọc từ file .xml sẽ được lưu trữ dưới dạng một bản ghi trong cơ sở dữ liệu quan hệ. Ví dụ về một thành phần trong file adult.xml:

<person> <age>39</age> <workclass>State-gov</workclass> <fnlwgt>77516</fnlwgt> <education>Bachelors</education> <education_num>13</education_num>

<marital_status>Never-married</marital_status> <occupation>Adm-clerical</occupation> <relationship>Not-in-family</relationship> <race>White</race> <sex>Male</sex> <capital_gain>2174</capital_gain> <capital_loss>0</capital_loss> <hours_per_week>40</hours_per_week> <native_country>United-States</native_country> <class>&lt;=50K</class> </person>

4.2.2 Biểu diễn nguồn dữ liệu

ADULT

Là nguồn dữ liệu điều tra dân số về thu nhập của người dân. Nguồn dữ liệu bao gồm 13.032 bản ghi, mỗi bản ghi có 14 thuộc tính trong đó có 6 thuộc tính liên tục (age, fnlwgt, education num, capital gain, capital loss, hours per week) và 8 thuộc tính rời rạc (workclass, education, marital status, occupation, relationship, race, sex, native country). Đối với những thuộc tính liên tục, trước khi thực hiện phân lớp trên nguồn dữ liệu ADULT, chúng ta cần phải rời rạc hóa với miền giá trị xác định. Đối với những thuộc tính có miền giá trị lớn như native country, education, workclass, marital status, occupation chúng ta cần hạn chế miền giá trị bằng cách xác định một số giá trị thường xuyên xuất hiện nhất và kết hợp những thuộc tính còn lại vào trong một thuộc tính chung nhất.

Nguồn dữ liệu có chứa 7% giá trị không xác định (missing value). Với những giá trị không xác định, chúng ta gán cho chúng một giá trị xác định, trong trường hợp này, tác giả chọn giá trị unknown. Nhiệm vụ của phân lớp là phân lớp các bản ghi theo hai lớp: >50K (có thu nhập lớn hơn 50.000 USD), và <=50K (có thu nhập

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 55)

Tải bản đầy đủ (PDF)

(100 trang)