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 đĩ tồ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
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 tố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 tố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 tốn để đưa ra kết quả cuối cùng cho việc đánh giá các mẫu dữ liệu. Thuật tố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 tồ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 tồ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 tồ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 đĩ tồ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 tố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 tố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 tố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. Ngồ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). Ngồ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><=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 bé hơn hoặc bằng 50.000 USD).
Tên thuộc tính Tập giá trị thuộc tính
Age continuous.
Workclass Private, Self-emp-not-inc, Self-emp-inc, Federal-gov, Local-gov,
State-gov, Without-pay, Never-worked.
Fnlwgt continuous.
Education
Bachelors, Some-college, 11th, HS-grad, Prof-school, Assoc- acdm, Assoc-voc, 9th, 7th-8th, 12th, Masters, 1st-4th, 10th, Doctorate, 5th-6th, Preschool.
Education num continuous.
Marital status Married-civ-spouse, Divorced, Never-married, Separated,
Widowed, Married-spouse-absent, Married-AF-spouse.
Occupation
Tech-support, Craft-repair, Other-service, Sales, Exec- managerial, Prof-specialty, Handlers-cleaners, Machine-op- inspct, Adm-clerical, Farming-fishing, Transport-moving, Priv- house-serv, Protective-serv, Armed-Forces.
Relationship Wife, Own-child, Husband, Not-in-family, Other-relative,
Unmarried.
Race White, Asian-Pac-Islander, Amer-Indian-Eskimo, Other, Black.
Sex Female, Male.
Capital gain continuous.
Capital loss continuous.
Hours per week continuous.
Native country
United-States, Cambodia, England, Puerto-Rico, Canada, Germany, Outlying-US(Guam-USVI-etc), India, Japan, Greece, South, China, Cuba, Iran, Honduras, Philippines, Italy, Poland, Jamaica, Vietnam, Mexico, Portugal, Ireland, France,
Dominican-Republic, Laos, Ecuador, Taiwan, Haiti, Columbia, Hungary, Guatemala, Nicaragua, Scotland, Thailand,
Yugoslavia, El-Salvador, Trinadad&Tobago, Peru, Hong, Holand-Netherlands.
Class >50K, <=50K
Tên thuộc tính Tập giá trị thuộc tính Age Min, 1st, Median, Mean, 3rd, Max
Workclass Private, Self-emp-not-inc, Local-gov, State-gov, Self-emp-inc,
Other, NA.
Fnlwgt Min, 1st, Median, Mean, 3rd, Max
Education HS-grad, Some-college, Bachelors, Masters, Assoc-voc, 11th,
Other.
Education num Min, 1st, Median, Mean, 3rd, Max
Marital status Divorced, Married-AF-spouse, Married-civ-spouse, Married-
spouse-absent, Never-married , Separated , Widowed
Occupation Prof-specialty, Craft-repair, Exec-managerial, Adm-clerical,
Sales, Other, NA.
Relationship Husband, Not-in-family, Other-relative, Own-child, Unmarried,
Wife.
Race Amer-Indian-Eskimo, Asian-Pac-Islander, Black, Other, White
Sex Male, Female
Capital gain Min, 1st, Median, Mean, 3rd, Max
Capital loss Min, 1st, Median, Mean, 3rd, Max
Native country United-States, Mexico, Philippines, Germany, Canada, Other,
NA
Hours per week Min, 1st, Median, Mean, 3rd, Max
Class >50K, <=50K
Bảng 4.2. Thuộc tính và các giá trị của thuộc tính sau khi đã rời rạc hĩa (ADULT).
CARS
Là nguồn dữ liệu về xe hơi. Nguồn dữ liệu bao gồm 1728 bản ghi, mỗi bản ghi cĩ 6 thuộc tính. Các thuộc tính đều là các thuộc tính rời rạc. Mỗi thuộc tính cĩ nhiều nhất là 4 giá trị. Giá trị của các thuộc tính được nhà cung cấp sắp xếp theo một thứ tự xác định và quyền ưu tiên được xác định theo thứ tự từ trên xuống dưới (theo thứ tự xuất hiện của các thuộc tính trong bảng 4.3). Nguồn dữ liệu khơng cĩ giá trị khơng xác định. Nhiệm vụ của phân lớp là xác định lớp cho các bản ghi của
Tên thuộc tính Tập giá trị thuộc tính Buying v-high, high, med, low
Maint v-high, high, med, low
Doors 2, 3, 4, 5-more
Persons 2, 4, more
Lug boot small, med, big
Safety low, med, high
Class unacc, acc, good, v-good
Bảng 4.3. Thuộc tính và các giá trị thuộc tính cĩ thể cĩ (CARS)
NURSERY
Nguồn dữ liệu được xây dựng nhằm hỗ trợ việc đưa ra các quyết định về việc