Sau khi thực hiện chương trình với dữ liệu huấn luyện gồm 11.500 bản ghi, cây bao trùm cực đại biểu diễn sự hỗ trợ thông tin của các thuộc tính được biểu diễn như sau (Hình 4.2).
Hình 4.2. Cây bao trùm cực đại được xây dựng trên nguồn dữ liệu ADULT.
Mô hình TANB cho nguồn dữ liệu ADULT
Dựa trên cây bao trùm cực đại đã được xây dựng ở bước trên, bằng cách thêm thuộc tính class và thêm các cung đi ra từ thuộc tính class, ta có được mô hình TANB cho nguồn dữ liệu ADULT (Hình 4.3)
Hình 4.3. Mô hình TANB cho nguồn dữ liệu ADULT
CARS
Sử dụng thuật toán Kruskal cho nguồn dữ liệu huấn luyện CARS, ta thu được cây bao trùm cực đại thể hiện mối liên hệ giữa các thuộc tính trong nguồn dữ liệu.
Hình 4.4. Cây trùm cực đại được xây dựng dựa trên nguồn dữ liệu CARS
Hình 4.5. Mô hình TANB cho nguồn dữ liệu CARS.
NURSERY
Thực hiện thuật toán Kruskal nhằm xây dựng cây bao trùm cực đại cho nguồn dữ liệu NURSERY với 8.640 bản ghi, kết quả như sau (Hình 4.6):
Hình 4.6. Cây bao trùm cực đại của nguồn dữ liệu NURSERY
Hình 4.7. Mô hình TANB cho nguồn dữ liệu NURSERY.
Phân lớp TANB cho các nguồn dữ liệu
Dựa trên mô hình TANB của các nguồn dữ liệu, tính xác suất của các lớp dữ liệu đối với các bản ghi kiểm thử. Một đặc điểm khác của TANB đối với Naive Bayes (đã được mô tả chi tiết ở trong chương 3) đó là các thuộc tính không chỉ phụ thuộc vào thuộc tính lớp mà còn phụ thuộc vào các thuộc tính khác.
Ví dụ 4.1:
Khi tính xác suất cho các thuộc tính class của nguồn dữ liệu CARS, ta thực hiện như sau (Hình 4.5):
1 2 3 4 5 6 1 2 1
3 2 4 6 5 6 6 1
P(C)×P(X ,X ,X ,X ,X ,X |C)= P(C)×P(X |C)×P(X |X ,C)
×P(X |X ,C)×P(X |X ,C)×P(X |X ,C)×P(X |X ,C)
Trong đó:
1 2 3
4 5 6
X : buying X : maint X : door X : person X : lugboot X : safety C = {unacc, acc, good, vgood}
Quá trình phân lớp dữ liệu dựa trên TANB tương tự với phương pháp dựa trên Naive Bayes, chỉ có khác ở công thức tính xác suất cho các giá trị thuộc tính lớp.
Kết quả của phân lớp tập trung TANB cho các nguồn dữ liệu được thể hiện chi tiết trong bảng 4.6. Trong đó, nguồn dữ liệu ADULT với dữ liệu huấn luyện gồm 11.500 bản ghi, dữ liệu kiểm thử gồm 1.532 bản ghi, phân lớp đúng được 1.200 bản ghi, phân lớp không đúng 332 bản ghi, đạt độ chính xác 78,36%.
Nguồn dữ liệu CARS, với dữ liệu huấn luyện gồm 1.152 bản ghi, dữ liệu kiểm thử gồm 576 bản ghi, phân lớp đúng được 377 bản ghi, phân lớp sai 199 bản ghi, đạt độ chính xác 65,56%. Nguồn dữ liệu NURSERY, với dữ liệu huấn luyện gồm 8.640 bản ghi, dữ liệu kiểm thử gồm 4.320 bản ghi, phân lớp đúng 3.102 bản ghi, phân lớp sai 1.218 bản ghi, đạt độ chính xác 71,80%.
Tên nguồn dữ liệu
Dữ liệu huấn luyện
Dữ liệu kiểm thử
Độ chính
xác (%) Đúng Không
đúng
ADULT 11.500 1.532 78,36 1.200 332
CARS 1.152 576 65,56 377 199
NURSERY 8.640 4.320 71,80 3.102 1.218
Bảng 4.6. Kết quả phân lớp TANB cho các nguồn dữ liệu.
4.4 Phân lớp dữ liệu phân tán 4.4.1 Phân lớp phân tán
Như đã trình bày ở mục 1, trong phần cài đặt thử nghiệm này, tác giả chỉ thực hiện cài đặt phân lớp phân tán dựa trên mô hình nguồn dữ liệu huấn luyện phân tán và nguồn dữ liệu kiểm thử tập trung. Như đã trình bày ở chương 1 dữ liệu thường được phân tán dưới hai dạng: phân tán phân mảnh ngang và phân tán phân mảnh dọc. Trong phạm vi luận văn này, tác giả thực hiện phân lớp dữ liệu với nguồn dữ liệu huấn luyện được lưu trữ ở dạng phân tán phân mảnh ngang.
Để thực hiện điều này, đối với mỗi nguồn dữ liệu, tác giả chia dữ liệu huấn luyện thành 2 phần theo phân mảnh ngang (mỗi phần đều có chứa toàn bộ tập thuộc tính của cả nguồn dữ liệu đó). Mỗi phần dữ liệu sẽ được lưu trữ tại các máy khác nhau. Dữ liệu huấn luyện của các nguồn được chia như sau:
Nguồn ADULT được chia thành 2 phần: phần 1 chứa 6.500 bản ghi, phần 2 chứa 5.000 bản ghi.
Nguồn CARS được chia thành 2 phần: phần 1 chứa 576 bản ghi, phần 2 chứa 576 bản ghi.
Nguồn NURSERY được chia thành 2 phần: phần 1 chứa 4.320 bản ghi, phần 2 chứa 4.320 bản ghi.
Để hỗ trợ việc truyền thông tin trong môi trường phân tán, tác giả sử dụng RMI/JAVA như một công cụ hỗ trợ lập trình phân tán.