Luật kết hợp trả lời các câu hỏi dạng như “Nếu một khách hàng mua sản phẩm A, thì làm thế nào để họ mua sản phẩm B?” Hoặc “Những sản phẩm khách hàng sẽ mua nếu như đã mua sản phẩm C và D
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
LÊ HOÀNG VÂN
PHƯƠNG PHÁP PHÂN LỚP DỰA TRÊN KẾT HỢP TRỌNG YẾU
LUẬN VĂN THẠC SĨ CAO HỌC NGÀNH KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01
NGƯỜI HƯỚNG DẪN KHOA HỌC
PGS.TS LÊ HOÀI BẮC
TP HỒ CHÍ MINH – NĂM 2017
Trang 2Luận văn này là kết quả của quá trình cố gắng không ngừng của bản thân và được sự giúp đỡ, động viên khích lệ của các Thầy, bạn bè, đồng nghiệp và người thân Qua trang viết này tác giả xin gửi lời cảm ơn tới những người đã giúp đỡ tác giả trong thời gian học tập – nghiên cứu khoa học vừa qua
Tác giả xin được tỏ lòng kính trọng và biết ơn sâu sắc đối với người thầy giáo PGS.TS Lê Hoài Bắc đã trực tiếp hướng dẫn cũng như cung cấp tài liệu, thông tin khoa học cần thiết cho luận văn này
Tác giả đặc biệt thể hiện lòng mang ơn sâu sắc nhất đối với người thầy giáo PGS.TS Võ Đình Bảy và TS Nguyễn Quốc Huy đã tận tình giúp đỡ và động viên tác giả trong suốt nhiều tháng của quá trình thực hiện luận văn này
Tác giả xin chân thành cảm ơn Trường đại học Công Nghệ Thông Tin, khoa Khoa Học Máy Tính đã tạo điều kiện cho tác giả hoàn thành tốt việc học tập cũng như nghiên cứu khoa học
Cuối cùng tác giả xin chân thành cảm ơn đồng nghiệp, đơn vị công tác đã giúp
đỡ tác giả trong quá trình học tập và thực hiện luận văn
TP Hồ Chí Minh, ngày 03 tháng 03 năm 2017
Người thực hiện luận văn
Lê Hoàng Vân
Trang 3Tôi xin cam đoan đây là công trình nghiên cứu do chính tôi thực hiện Các số liệu, kết quả phân tích trong luận văn là hoàn toàn trung thực và chưa từng được ai công bố trong bất kỳ công trình nghiên cứu nào trước đây Mọi sự hướng dẫn, thông tin tham khảo cho việc thực hiện luận văn này đã thông tin đầy đủ và rõ ràng trong luận văn
TP Hồ Chí Minh, ngày 03 tháng 03 năm 2017
Người thực hiện luận văn
Lê Hoàng Vân
Trang 4Số trang
Mục lục 1
Danh mục các bảng 3
Danh mục các hình vẽ, đồ thị 4
MỞ ĐẦU 5
Chương 1 GIỚI THIỆU 6
1.1 Tổng quan 6
1.2 Bài toán khai thác luật kết hợp 8
1.2.1 Các định nghĩa 8
1.2.2 Các tính chất 9
1.2.3 Thuật toán Apriori 9
1.3 Bài toán Phân lớp kết hợp 10
1.3.1 Các định nghĩa 10
1.3.2 Các giai đoạn cơ bản 11
Chương 2 THUẬT TOÁN PHÂN LỚP KẾT HỢP 12
2.1 Thuật toán PAM 12
2.1.1 Tiền xử lý dữ liệu 12
2.1.2 Khai thác tập luật ứng viên 12
2.1.3 Xây dựng bộ phân lớp 14
2.1.4 Phân lớp cho dữ liệu mới 18
2.1.5 Ví dụ minh họa 18
2.2 Thuật toán CBA* 31
2.2.1 Xây dựng bộ phân lớp 31
2.2.2 Phân lớp cho dữ liệu mới [1] 33
2.2.3 Ví dụ minh họa 33
Chương 3 SỬ DỤNG DÀN TRONG KHAI THÁC TẬP LUẬT 39
3.1 Lý thuyết về dàn 39
3.1.1 Cấu trúc dàn 39
Trang 52
3.2.2 Chạy từng bước 44
3.3 Xây dựng dàn theo chiều rộng 51
3.3.1 Phương pháp xây dựng dàn 51
3.3.2 Chạy từng bước 54
Chương 4 THỰC NGHIỆM 58
4.1 Phương pháp đánh giá 58
4.2 Môi trường cài đặt 59
4.3 Các bộ dữ liệu 60
4.4 So sánh thuật toán PAM và CBA* 61
4.4.1 Độ chính xác phân lớp 61
4.4.2 Kích thước bộ phân lớp 63
4.5 Hiệu quả việc sử dụng dàn 65
Chương 5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 69
5.1 Kết luận 69
5.2 Hướng phát triển 70
TÀI LIỆU THAM KHẢO 71
Trang 6Bảng 2.1 Bộ dữ liệu huấn luyện T 18
Bảng 2.2 Các thuộc tính và item của bộ dữ liệu T 19
Bảng 2.3 Tập luật phổ biến với minsup = 20% 19
Bảng 2.4 Tập luật phổ biến đã loại bỏ luật thừa prunedCARs 21
Bảng 2.5 Tập luật prunedCARs được sắp theo độ ưu tiên giảm dần 22
Bảng 2.6 Tập luật prunedCARs có độ Trọng yếu (1) 24
Bảng 2.7 Bộ dữ liệu huấn luyện T (1) 25
Bảng 2.8 Tập luật prunedCARs có độ Trọng yếu (2) 26
Bảng 2.9 Bộ dữ liệu huấn luyện T (2) 27
Bảng 2.10 Tập luật prunedCARs có độ Trọng yếu (3) 27
Bảng 2.11 Bộ dữ liệu huấn luyện T (3) 28
Bảng 2.12 Tập luật prunedCARs có độ Trọng yếu (4) 28
Bảng 2.13 Bộ phân lớp AC của PAM 29
Bảng 2.14 Bộ dữ liệu kiểm tra T’ 29
Bảng 2.15 Bộ dữ liệu huấn luyện T 34
Bảng 2.16 Tập luật prunedCARs được sắp theo độ ưu tiên giảm dần 34
Bảng 2.17 Bộ phân lớp AC của CBA* 37
Bảng 4.1 Các bộ dữ liệu được sử dụng thực nghiệm 60
Bảng 4.2 Độ chính xác phân lớp với 𝜆 ∈ [0.55,1] 61
Bảng 4.3 Độ chính xác và kích thước bộ phân lớp 63
Bảng 4.4 Thời gian khai thác và số luật và tập luật ứng viên 66
Trang 74
Hình 2.1 Thủ tục xây dựng bộ phân lớp PAM_CB [3] 17
Hình 2.2 Thủ tục xây dựng bộ phân lớp CBA*_CB [1] 32
Hình 3.1 Cấu trúc của một đỉnh 39
Hình 3.2 Quan hệ cha con giữa các đỉnh 41
Hình 3.3 Một dàn đầy đủ được xây dựng theo chiều sâu với 4 item 43
Hình 3.4 Thủ tục khai thác và loại bỏ luật thừa PAM_RG (dàn sâu) 44
Hình 3.5 (a) Cấu trúc dàn sâu với nhãn lớp Y từ dữ liệu Bảng 2.1 45
Hình 3.6 (b) Cấu trúc dàn sâu với nhãn lớp Y từ dữ liệu Bảng 2.1 46
Hình 3.7 (c) Cấu trúc dàn sâu với nhãn lớp Y từ dữ liệu Bảng 2.1 47
Hình 3.8 (d) Cấu trúc dàn sâu với nhãn lớp Y từ dữ liệu Bảng 2.1 48
Hình 3.9 (e) Cấu trúc dàn sâu với nhãn lớp Y từ dữ liệu Bảng 2.1 48
Hình 3.10 (f) Cấu trúc dàn sâu với nhãn lớp Y từ dữ liệu Bảng 2.1 49
Hình 3.11 (g) Cấu trúc dàn sâu với nhãn lớp Y từ dữ liệu Bảng 2.1 50
Hình 3.12 Cấu trúc dàn sâu với nhãn lớp N từ dữ liệu Bảng 2.1 50
Hình 3.13 Kết quả giai đoạn 1 khi xây dựng dàn theo chiều rộng có 4 item 51
Hình 3.14 Một dàn đầy đủ được xây dựng theo chiều rộng với 4 item 52
Hình 3.15 Thủ tục khai thác và loại bỏ luật thừa PAM_RG (dàn rộng) 54
Hình 3.16 Cấu trúc dàn rộng với nhãn lớp Y từ dữ liệu Bảng 2.1 sau giai đoạn 1 55
Hình 3.17 Cấu trúc dàn rộng với nhãn lớp Y từ dữ liệu Bảng 2.1 sau giai đoạn 2 56
Hình 3.18 Cấu trúc dàn rộng với nhãn lớp N từ dữ liệu Bảng 2.1 sau giai đoạn 2 57
Hình 4.1 Phương pháp phân lớp chéo (10-fold cross validation) 58
Hình 4.2 Giao diện ứng dụng chạy thuật toán PAM 59
Hình 4.3 Giao diện ứng dụng chạy thuật toán CBA* 60
Hình 4.4 So sánh độ chính xác phân lớp giữa CBA* và PAM (λ=0.75) 62
Hình 4.5 Độ chính xác phân lớp khi λ thay đổi 62
Hình 4.6 Kích thước bộ phân lớp khi λ thay đổi (0 ≤ λ≤0.6) 64
Hình 4.7 Kích thước bộ phân lớp khi λ thay đổi (0.65 ≤ λ≤1.0) 64
Hình 4.8 So sánh số luật trong bộ phân lớp giữa CBA* và PAM (λ=0.75) 65
Hình 4.9 Tỷ lệ thời gian thực thi giữa Dàn sâu và PAM (minsup=1%) 67
Hình 4.10 Tỷ lệ thời gian thực thi giữa Dàn Rộng và PAM (minsup=1%) 68
Hình 4.11 Tỷ lệ thời gian thực thi giữa Dàn rộng và Dàn sâu (minsup=1%) 68
Trang 8MỞ ĐẦU
Phân lớp là một trong những nhiệm vụ quan trọng trong các bài toán khai thác
dữ liệu Trong đó, phân lớp kết hợp đã có nhiều nghiên cứu có ý nghĩa và đáng quan tâm trong những năm gần đây bởi vì độ chính xác cao Các thuật toán khai thác luật kết hợp truyền thống thường sinh ra nhiều luật phân lớp kết hợp dư thừa và đôi khi còn mâu thuẫn nhau Luận văn trình bày một phương pháp phân lớp kết hợp mới và hiệu quả Kết quả của phương pháp này là một bộ phân lớp đạt hiệu suất tốt và nhỏ
gọn Phương pháp này dựa trên độ đo mới, đặt tên là độ trọng yếu (Principality), dùng
để đo độ chính xác và độ bao phủ trong việc phân lớp của luật kết hợp Phương pháp phân lớp dựa trên kết hợp trọng yếu (Principal Association Mining - PAM) [3] được xác nhận là có hiệu quả trong việc cải thiện độ chính xác phân lớp cũng như giảm kích thước của bộ phân lớp bởi các thực nghiệm được tiến hành trên nhiều bộ dữ liệu của UCI
Quá trình khai thác tập luật phổ biến và loại bỏ các luật dư thừa luôn gây tốn nhiều thời gian trong các thuật toán khai thác dữ liệu vì các bộ dữ liệu ngày càng lớn
và có càng nhiều thuộc tính phức tạp Luận văn đề xuất phương pháp mới và hiệu quả
để cải thiện về mặt thời gian trong quá trình này Ý tưởng của phương pháp này là đánh dấu các luật cần loại bỏ ngay từ lúc khai thác dữ liệu để tìm ra tập luật phổ biến
Sẽ có 2 phương pháp khác nhau để thực hiện ý tưởng trên, đó là phương pháp xây dựng dàn theo chiều sâu và phương pháp xây dựng dàn theo chiều rộng Kết quả thực nghiệm cho thấy phương pháp mới có hiệu quả tốt hơn so với phương pháp nổi tiếng Apriori, được sử dụng trong PAM Ngoài ra, thực nghiệm cũng cho thấy phương pháp xây dựng dàn theo chiều rộng là tốt hơn so với theo chiều sâu
Trang 9Chương 1 GIỚI THIỆU
1.1 Tổng quan
Mục đích chính của khai thác dữ liệu là tìm ra các tri thức ẩn chứa bên trong các bộ dữ liệu lớn Các tri thức này sẽ được sử dụng trong nhiều lĩnh vực khác nhau, chẳng hạn như nghiên cứu khoa học hay thương mại điện tử, thị trường tài chính, dự báo xu thế và chấp nhận cho vay
Trong đó, khai thác luật kết hợp là một trong những hướng được nghiên cứu
từ lâu và đạt được nhiều kết quả tốt khi đem lại những tri thức tốt và dễ hiểu cho người sử dụng Khai thác luật kết hợp lần đầu tiên được đề xuất bởi Agrawal và các đồng sự [7], mục đích khai thác luật kết hợp là nhằm xác định kết quả hoặc tương quan giữa các yếu tố xảy ra đồng thời trong một tập dữ liệu Các mối quan hệ trong khai thác kết hợp được trình bày bằng tập các mẫu phổ biến và luật kết hợp Dạng chung của luật kết hợp là phép kéo theo X⇒Y, trong đó X và Y tương ứng là điều kiện và kết quả Luật kết hợp trả lời các câu hỏi dạng như “Nếu một khách hàng mua sản phẩm A, thì làm thế nào để họ mua sản phẩm B?” Hoặc “Những sản phẩm khách hàng sẽ mua nếu như đã mua sản phẩm C và D?”
Phương pháp phân lớp cũng là lĩnh vực đã được nghiên cứu sâu rộng với nhiều phương pháp khác nhau đã được đề xuất nhằm xây dựng bộ phân lớp như cây quyết định, luật quy nạp, mô hình Naive Bayes, mạng nơron, SVM,… Mục đích của của các phương pháp phân lớp này là tìm ra được bộ phân lớp để phân loại các dữ liệu mới Luật kết hợp mang tính diễn giải tốt nên việc tích hợp vào phương pháp phân lớp sẽ tạo ra bộ phân lớp "dễ hiểu" đối với con người, điều này sẽ ảnh hưởng tốt trong việc dự đoán cho dữ liệu mới
Trong thập kỷ qua, phân lớp dựa trên khai thác luật kết hợp hay phân lớp kết hợp đã nổi lên như là một cải tiến mạnh mẽ so với việc học dựa trên luật truyền thống Phân lớp kết hợp đã trở nên phổ biến trong những năm gần đây Một số phương pháp
đã được đề xuất nhằm xây dựng bộ phân lớp với các lớp luật kết hợp chất lượng cao như CBA [1], CMAR [8], MCAR [4], Những kỹ thuật này sử dụng những phương pháp tiếp cận khác nhau để khai thác các mẫu phổ biến, cách sinh luật, xếp hạng luật,
Trang 10loại bỏ luật dư thừa hay luật có hại (luật dẫn đến việc phân lớp không chính xác) và phân lớp các đối tượng dữ liệu mới
CBA (Classification Based on Associations) [1] đã giới thiệu ý tưởng của việc
sử dụng luật kết hợp để phân lớp, xây dựng bộ phân lớp kết hợp và dự đoán nhãn lớp theo độ đo tin cậy CBA dùng phương pháp nổi tiếng Apriori để tìm các mẫu phổ biến Những luật có độ tin cậy lớn hơn so với ngưỡng độ tin cậy do người dùng định nghĩa sẽ được phát sinh từ các mẫu phổ biến này Sau đó, một chiến lược thu gọn sẽ được áp dụng để loại bỏ các luật không sử dụng và không cần thiết Tất cả các luật phân lớp CAR (Class Associations Rule) được xếp hạng theo thứ tự giảm dần của độ tin cậy, độ hỗ trợ và thời gian phát sinh Việc phân lớp cho một đối tượng dữ liệu mới dựa trên luật có ưu tiên cao nhất và phù hợp với đối tượng đó
CBA2 [2] là thuật toán cải tiến của CBA CBA2 khắc phục được những điểm yếu của CBA là những hạn chế về độ hỗ trợ đơn và khai thác luật dài Hạn chế đầu tiên được giải quyết bằng cách sử dụng nhiều độ hỗ trợ tối thiểu, và hạn chế thứ hai giải quyết bằng cách tích hợp CBA với cây quyết định và phương pháp Naive Bayes
Nhiều phương pháp phân lớp kết hợp hoạt động với độ hỗ trợ và độ tin cậy,
và các ngưỡng tối thiểu được sử dụng để tạo ra các luật kết hợp Ví dụ, CBA2 loại bỏ những luật mà độ hỗ trợ hoặc độ tin cậy là thấp hơn ngưỡng tối thiểu cho trước Vì vậy, một số luật với độ tin cậy cao nhưng độ hỗ trợ thấp sẽ bị bỏ qua Luật dài và cụ thể thường có độ hỗ trợ thấp cũng bị bỏ qua Nhưng một bộ phân lớp kết hợp tốt nên
có cả luật tổng quát và luật cụ thể Nó cũng nên có những luật đặc biệt dành cho các đối tượng đặc biệt Ngoài độ hỗ trợ và độ tin cậy, nhiều nhà nghiên cứu tìm kiếm các tiêu chí thú vị khác để thử nghiệm Tuy nhiên, kết quả thực nghiệm cho thấy rằng các
kỹ thuật mới có hiệu quả và có thể đạt được độ chính xác cao hơn trong hầu hết các trường hợp, nhưng lại làm tiêu tốn nhiều thời gian hơn
Bài toán phân lớp kết hợp (phân lớp dựa trên luật kết hợp) có thể được xem như là một trường hợp đặc biệt của bài toán khai thác luật kết hợp Bài toán phân lớp kết hợp chỉ xem xét những luật kết hợp có chứa thuộc tính nhãn lớp Nhiệm vụ của
Trang 111.2 Bài toán khai thác luật kết hợp
Trong lĩnh vực khai thác dữ liệu, mục đích của bài toán khai thác luật kết hợp
là tìm ra các mối quan hệ giữa các đối tượng trong tập dữ liệu rất lớn Bài toán khai thác luật kết hợp có thể được tóm tắt như dưới đây
1.2.1 Các định nghĩa
Cho 𝐼 = {𝑖1, 𝑖2, 𝑖𝑚} là tập hợp của các phần tử (sau đây gọi là item) và cơ
sở dữ liệu giao dịch 𝑇; trong đó mỗi giao dịch 𝑡 ∈ 𝑇 là một tập hợp con của I và được gắn định danh duy nhất gọi là 𝑇𝐼𝐷
Một tập hợp gồm các item được gọi là tập phần tử (sau đây gọi là itemset) Một
giao dịch 𝑡 ∈ 𝑇 hỗ trợ itemset 𝑋 nếu 𝑋 ⊂ 𝑡; và 𝑋 được gọi là một k-itemset nếu 𝑋 chứa 𝑘 item Độ hỗ trợ của một itemset 𝑋, ký hiệu là 𝑆𝑢𝑝𝑝(𝑋), là tỷ lệ giao dịch hỗ trợ 𝑋 trong 𝑇
Một luật kết hợp là một phép kéo theo có dạng 𝑋 → 𝑌, trong đó 𝑋, 𝑌 ∈ 𝐼 và
𝑋 ∩ 𝑌 = 𝜙 Luật có nghĩa là nếu chúng ta tìm thấy tất cả các item trong X, thì khi đó chúng ta có một cơ hội tốt để tìm thấy các item trong Y
Đối với một luật kết hợp 𝑅: 𝑋 → 𝑌, độ hỗ trợ của 𝑅 là tỷ lệ của số giao dịch
hỗ trợ 𝑋 ∪ 𝑌 và tổng số giao dịch trong 𝑇 Còn độ tin cậy của 𝑅 là xác suất tìm thấy kết quả 𝑌 khi đã tìm thấy điều kiện 𝑋; tức là tỷ lệ của số giao dịch hỗ trợ 𝑋 ∪ 𝑌 và số giao dịch hỗ trợ 𝑋
Trang 12Độ hỗ trợ tối thiểu (minsup) là một giá trị cho trước bởi người dùng Một
itemset được gọi là phổ biến khi độ hỗ trợ của itemset này phải lớn hơn hoặc bằng độ
hỗ trợ tối thiểu minsup
Độ tin cậy tối thiểu (minconf) cũng là một giá trị cho trước bới người dùng
Một luật kết hợp được gọi là tin cậy (hay mạnh) khi độ tin cậy của luật này phải lớn
hơn hoặc bằng độ tin cậy tối thiểu minconf
1.2.2 Các tính chất
Tính chất 1: Độ hỗ trợ của tập con
Với A và B là itemset, nếu 𝐴 ⊆ 𝐵 𝑡ℎì 𝑠𝑢𝑝(𝐴) ≥ 𝑠𝑢𝑝(𝐵)
Điều này là rõ ràng vì tất cả các giao dịch của T hỗ trợ B thì cũng hỗ trợ A
Tính chất 2: Một itemset chứa một itemset không phổ biến thì cũng là itemset
không phổ biến
Nếu itemset B không thỏa độ hỗ trợ tối thiểu trên T nghĩa là 𝑠𝑢𝑝(𝐵) <
𝑚𝑖𝑛𝑠𝑢𝑝 thì itemset A chứa B sẽ không phải là một itemset phổ biến vì
𝑠𝑢𝑝(𝐴) ≤ 𝑠𝑢𝑝(𝐵) < 𝑚𝑖𝑛𝑠𝑢𝑝 (theo tính chất 1)
Tính chất 3: Các itemset con của itemset phổ biến cũng là itemset phổ biến
Nếu itemset B là phổ biến trên 𝑇, nghĩa là 𝑠𝑢𝑝(𝐵) ≥ 𝑚𝑖𝑛𝑠𝑢𝑝 thì mọi itemset con A của B là itemset phổ biến trên 𝑇 vì 𝑠𝑢𝑝(𝐴) ≥ 𝑠𝑢𝑝(𝐵) > 𝑚𝑖𝑛𝑠𝑢𝑝
1.2.3 Thuật toán Apriori
Thuật toán Apriori để khai thác luật kết hợp có thể chia thành 2 giai đoạn:
- Giai đoạn 1: Tìm tất cả các itemset phổ biến
1 Duyệt toàn bộ bộ dữ liệu T để tìm tập 1-itemset phổ biến (L1)
2 Sử dụng Lk-1 kết hợp Lk-1 để sinh ra tập ứng viên k-itemset Loại bỏ các
itemset không thỏa minsup và thu được Lk
3 Lặp lại từ bước 2 cho đến khi không tìm thấy itemset phổ biến nào nữa
- Giai đoạn 2: Tạo ra các luật kết hợp tin cậy từ các itemset phổ biến
1 Với mỗi itemset phổ biến I, sinh tất cả các tập con S không rỗng của I
2 Với mỗi tập con S không rỗng của I, sinh ra các luật 𝑆 → (𝐼 − 𝑆) nếu độ
Trang 131.3 Bài toán Phân lớp kết hợp
1.3.1 Các định nghĩa
Tập dữ liệu phân lớp 𝑇 là một tập hợp các đối tượng dữ liệu Mỗi đối tượng được mô tả bởi một số thuộc tính phân biệt 𝐴 = {𝐴1, 𝐴2, , 𝐴𝑚} và một thuộc tính nhãn lớp 𝐴𝑐𝑙𝑎𝑠𝑠 với các giá trị {𝑐1, 𝑐2, , 𝑐𝑔} Mỗi thuộc tính 𝐴𝑖 có thể rời rạc hoặc liên tục Bài toán khai thác luật kết hợp không xử lý các giá trị liên tục; vì vậy mỗi thuộc tính liên tục phải được rời rạc hóa Sau khi rời rạc, mỗi thuộc tính liên tục có thể được chuyển đổi thành các cặp <thuộc tính, giá trị> Khi đó, mỗi đối tượng trong
𝑇 có thể được mô tả như một sự kết hợp của các cặp <thuộc tính, giá trị> cộng thêm
một nhãn lớp Do đó, bản gốc của T sẽ được chuyển sang hình thức cơ sở dữ liệu giao
dịch giống như hình thức được sử dụng trong bài toán khai thác luật kết hợp
Định nghĩa 1.1 (item): Một item là một cặp (thuộc tính, giá trị) có dạng (𝐴𝑖, 𝑣𝑖), tức là 𝐴𝑖 là thuộc tính có giá trị 𝑣𝑖 Nhãn lớp được xem là item đặc biệt
Định nghĩa 1.2 (itemset): Một itemset X là một tập hợp các item, ký hiệu là
𝑋 = {𝑝1, 𝑝2, , 𝑝𝑘}
Cơ sơ dữ liệu giao dịch 𝑇 gồm có itemset 𝐼 = {𝑖1, 𝑖2, , 𝑖𝑛} Khi đó, mỗi giao dịch trong 𝑇 là một itemset 𝑡 = {𝑎1, 𝑎2, , 𝑎𝑘} sao cho 𝑎𝑖 ∈ 𝐼 và 𝑘 < 𝑛 Trong 𝑡 chỉ
có duy nhất một item nhãn lớp
Định nghĩa 1.3 (Luật phân lớp – CAR): Một luật phân lớp 𝑅 có dạng 𝑅: 𝑋 →
𝑐, trong đó 𝑋 là một itemset và 𝑐 là một nhãn lớp Luật kết hợp tương ứng của 𝑅 có
dạng: 𝑝1∧ 𝑝2∧ .∧ 𝑝𝑛 ⇒ 𝐴𝑐𝑙𝑎𝑠𝑠 = 𝑐 𝑋 được gọi là tiền đề hoặc điều kiện của 𝑅, và
𝑐 được gọi là kết quả Vì vậy có thể ký hiệu 𝑋𝑐 tương đương với luật phân lớp 𝑅
Nói chung, điều kiện (hoặc tiền đề) của một luật phân lớp là một tập hợp các cặp <thuộc tính, giá trị> (𝐴𝑖, 𝑣𝑖) Một đối tượng 𝑡 gọi là khớp với 𝑅 nếu và chỉ nếu 𝑡
có giá trị 𝑣𝑖 tại mỗi thuộc tính 𝐴𝑖 trong điều kiện của 𝑅 Một luật phân lớp là một hình thức đặc biệt của luật kết hợp với vế phải là một nhãn lớp Tức là để tìm ra tất
cả các luật phân lớp, chúng ta chỉ cần tìm ra những luật kết hợp có dạng 𝑋 → 𝑐
Trang 14Định nghĩa 1.4 (Độ hỗ trợ): Đối với một luật phân lớp 𝑅: 𝑋 → 𝑐, độ hỗ trợ
của 𝑅 là tỷ lệ giữa số đối tượng thỏa 𝑅 có nhãn lớp c và tổng số đối tượng trong T
𝑠𝑢𝑝𝑝(𝑋𝑐) = 𝑠𝑢𝑝𝑝(𝑅) = |𝑋𝑐|
Trong đó |𝑋𝑐| là số lượng các đối tượng trong T khớp với điều kiện X và thuộc về
lớp 𝑐; còn |𝑇| là số lượng các đối tượng trong bộ dữ liệu T
Định nghĩa 1.5 (Độ tin cậy) Đối với một luật phân lớp 𝑅: 𝑋 → 𝑐, độ tin cậy
của 𝑅 đo độ chính xác dự đoán của luật, và được định nghĩa là:
𝑐𝑜𝑛𝑓(𝑋𝑐) = 𝑐𝑜𝑛𝑓(𝑅) =|𝑋𝑐|
Trong đó |𝑋| là số lượng các đối tượng trong T khớp với điều kiện X
1.3.2 Các giai đoạn cơ bản
Bài toán phân lớp kết hợp tổng quát có thể chia thành các giai đoạn cơ bản như sau:
- Giai đoạn tiền xử lý: Xử lý dữ liệu đầu vào đúng với định dạng chuẩn của bài toán khai thác luật phân lớp kết hợp
- Giai đoạn khai thác tập luật ứng viên: Tìm các luật phổ biến, sau đó sẽ tiến hành loại bỏ bớt các luật thừa Các thuật toán khác nhau sẽ có các phương pháp khai thác khác nhau và tiêu chí loại bỏ luật thừa cũng khác nhau Kết quả
của giai đoạn này là tập luật CARs
- Giai đoạn xây dựng bộ phân lớp: Tiến hành chọn những luật tốt nhất từ tập luật CARs để đưa vào bộ phân lớp cuối cùng AC Bộ phân lớp AC thông thường sẽ gồm tập hợp các luật kết hợp được sắp xếp theo thứ tự ưu tiên giảm dần và một nhãn lớp mặc định
- Giai đoạn phân lớp cho dữ liệu mới: Gán nhãn lớp cho các đối tượng dữ liệu chưa được phân lớp
Mỗi thuật toán phân lớp kết hợp sẽ có những tiêu chí, chiến lược và hướng tiếp cận riêng để đạt được những kết quả khác nhau Tuy nhiên về tổng quát, các thuật toán đều sẽ thực hiện theo các giai đoạn trên Chương tiếp theo sẽ trình bày cụ thể thuật toán PAM (sử dụng độ đo trọng yếu) và thuật toán CBA* (dựa trên thuật toán CBA)
Trang 15Chương 2 THUẬT TOÁN PHÂN LỚP KẾT HỢP
Chương này sẽ trình bày cụ thể thuật toán PAM (sử dụng độ đo trọng yếu) và thuật toán CBA* (sử dụng độ đo tin cậy) Về cơ bản, các thuật toán đều tuân thủ các giai đoạn cơ bản của bài toán khai thác luật phân lớp kết hợp đã trình bày ở chương trước
2.1 Thuật toán PAM
2.1.1 Tiền xử lý dữ liệu
Trước khi khai thác tập luật phổ biến, cơ sở dữ liệu huấn luyện cần được tiền
xử lý như sau nếu cần thiết, đây là giai đoạn giống nhau cho cả thuật toán PAM và thuật toán CBA*
- Rời rạc hóa các thuộc tính có giá trị liên tục, có thể thực hiện bằng cách sử dụng phần mềm mã nguồn mở Weka
- Bổ sung các giá trị bị khuyết trong dữ liệu, các giá trị của thuộc tính còn thiếu
sẽ được thêm mới bằng giá trị xuất hiện nhiều nhất của thuộc tính đó
- Xáo trộn ngẫu nhiên các đối tượng trong bộ dữ liệu, điều này đã được chứng minh là tạo sự đánh giá độ chính xác thuật toán tốt hơn [5]
2.1.2 Khai thác tập luật ứng viên
Nhiệm vụ của giai đoạn này là khai thác được tập luật ứng viên để bước vào giai đoạn xây dựng bộ phân lớp Tập luật ứng viên bao gồm các luật phổ biến và đã loại bỏ các luật dư thừa Đây là giai đoạn giống nhau cho cả thuật toán PAM và thuật toán CBA*
2.1.2.1 Tìm tập luật phổ biến
Các phương pháp khai thác luật phổ biến được sử dụng rộng rãi nhất là Apriori
và FP-Growth Phương pháp Apriori làm việc theo cách thức là tạo ứng viên và kiểm
tra; tạo ra các k-itemset ứng viên bằng cách kết hợp hai (k-1)-itemset Tuy nhiên,
phương pháp tiếp cận như Apriori phải duyệt nhiều lần dữ liệu huấn luyện để tính độ
hỗ trợ của itemset ứng viên FP-Growth là cách tiếp cận khác dựa trên việc xây dựng
một cấu trúc cây gọi là FP-Tree, được sử dụng để lưu trữ thông tin tần số nén của
itemset phổ biến FP-Growth sử dụng phương pháp phân vùng chia để trị Tuy nhiên,
Trang 16phân lớp kết hợp thường là một quá trình khai thác tương tác, nơi mà người dùng có thể điều chỉnh các ngưỡng hỗ trợ để cố gắng đạt được tập luật phù hợp Thật không may, điều chỉnh các ngưỡng hỗ trợ dẫn đến tái phát sinh FP-Tree, đó là hạn chế của việc sử dụng môi trường tương tác
Dữ liệu huấn luyện có thể được định dạng ngang hoặc dọc Định dạng ngang bao gồm một tập hợp các giao dịch, trong đó mỗi giao dịch có một định danh duy
nhất, tiếp theo sau là một danh sách các item có trong giao dịch đó Định dạng dọc bao gồm một nhóm các item, mà mỗi item được theo sau là một danh sách các định danh của các giao dịch có chứa item đó Có nhiều hạn chế từ dữ liệu định dạng ngang
như phải quét nhiều lần bộ dữ liệu nên chi phí tính độ hỗ trợ cao khi khai thác các
itemset phổ biến Các nghiên cứu thực nghiệm đã cho thấy rằng việc bố trí dọc là hiệu
quả hơn [5]
Vì những lý do trên, thuật toán PAM sử dụng phương tiếp cận Apriori và định dạng dữ liệu huấn luyện theo chiều dọc để khai thác tập luật phổ biến
Đồng thời, thuật toán sẽ dùng độ hỗ trợ khác nhau cho từng nhãn lớp Với giá
trị minsup cho trước, một luật được xem là phổ biến khi có số đối tượng được hỗ trợ lớn hơn hoặc bằng số lượng tối thiểu minSC được tính như sau:
𝑚𝑖𝑛𝑆𝐶 = 𝑚𝑖𝑛𝑠𝑢𝑝 ∗ |𝑐| (2.1) Trong đó, minSC là viết tắt của minimum Support Count
2.1.2.2 Loại bỏ các luật dư thừa
Kết quả của giai đoạn trước là tập luật phổ biến Tuy nhiên, tập luật phổ biến này thường có số lượng rất lớn các luật, nên trước khi bước vào giai đoạn xây dựng
bộ phân lớp, chúng ta sẽ tiến hành loại bỏ bớt các luật dư thừa
Định nghĩa 2.1 (Luật mạnh) Đối với một luật phân lớp 𝑅: 𝑋 → 𝑐, 𝑅 gọi là
mạnh khi 𝑐𝑜𝑛𝑓(𝑅) phải lớn hơn hoặc bằng ngưỡng độ tin cậy tối thiểu minconf cho trước
Trang 17Định nghĩa 2.2 (Luật dư thừa) Xét 2 luật phân lớp có cùng nhãn lớp c:
𝑅1: 𝑋1 → 𝑐 và 𝑅2: 𝑋2 → 𝑐, 𝑅2 gọi dư thừa so với 𝑅1 nếu 𝑐𝑜𝑛𝑓(𝑅2) < 𝑐𝑜𝑛𝑓(𝑅1)
và |𝑋1| + 1 = |𝑋2|
Theo 2 định nghĩa trên, giai đoạn này sẽ tiến hành loại bỏ luật dư thừa như sau:
- Chỉ để lại những luật mạnh bằng cách loại bỏ tất cả các luật có độ tin cậy thấp
hơn ngưỡng độ tin cậy tối thiểu minconf cho trước theo định nghĩa 2.1
- Đối với các luật có cùng nhãn lớp ở về phải, tiến hành kiểm tra từng cặp luật
Ri và Rj và loại bỏ Rj nếu Rj là luật dư thừa so với Ri theo định nghĩa 2.2
Vì quá trình loại bỏ được thực hiện theo từng nhãn lớp nên các luật mâu thuẫn (các luật có cùng điều kiện mà kết quả nhãn lớp khác nhau) vẫn được giữ lại Thuật toán PAM vẫn giữ lại tất cả các luật mâu thuẫn bởi vì thuật toán này không dựa hoàn toàn vào độ đo tin cậy mà sử dụng độ đo trọng yếu
2.1.3 Xây dựng bộ phân lớp
Kết quả của giai đoạn trước là tập luật ứng viên, tập luật phổ biến đã loại bỏ bớt các luật dư thừa Tuy nhiên, kích thước của tập luật này vẫn rất lớn để có thể sử dụng như bộ phân lớp cho dữ liệu mới Chính vì vậy, cần có phương pháp để chọn ra được những luật tốt nhất cho bộ phân lớp
2.1.3.1 Các định nghĩa
Định nghĩa 2.3 (Xếp hạng luật) [3] Cho hai luật 𝑅𝑖 và 𝑅𝑗; 𝑅𝑖 ≻ 𝑅𝑗 tức là 𝑅𝑖
có thứ tự ưu tiên hơn 𝑅𝑗 nếu:
(1) 𝐶𝑜𝑛𝑓(𝑅𝑖) > 𝐶𝑜𝑛𝑓(𝑅𝑗) hoặc
(2) 𝐶𝑜𝑛𝑓(𝑅𝑖) = 𝐶𝑜𝑛𝑓(𝑅𝑗) ∧ 𝑆𝑢𝑝𝑝(𝑅𝑖) > 𝑆𝑢𝑝𝑝(𝑅𝑗) hoặc
(3) 𝐶𝑜𝑛𝑓(𝑅𝑖) = 𝐶𝑜𝑛𝑓(𝑅𝑗) ∧ 𝑆𝑢𝑝𝑝(𝑅𝑖) = 𝑆𝑢𝑝𝑝(𝑅𝑗) ∧ 𝑙𝑒𝑛(𝑅𝑖) > 𝑙𝑒𝑛(𝑅𝑗) hoặc (4) 𝐶𝑜𝑛𝑓(𝑅𝑖) = 𝐶𝑜𝑛𝑓(𝑅𝑗) ∧ 𝑆𝑢𝑝𝑝(𝑅𝑖) = 𝑆𝑢𝑝𝑝(𝑅𝑗) ∧ 𝑙𝑒𝑛(𝑅𝑖) = 𝑙𝑒𝑛(𝑅𝑗) ∧
𝑙𝑒𝑥(𝑅𝑖) > 𝑙𝑒𝑥(𝑅𝑗) Trong đó, điều kiện (3), ưu tiên luật dài hơn (luật cụ thể) hơn là những luật ngắn hơn (luật tổng quát) khi điều kiện (1) và (2) như nhau Điều này ngược lại với cách xếp
Trang 18hạng luật thường thấy trong các phương pháp truyền thống, chẳng hạn như CBA Lý
do ưu tiên luật dài hơn là vì cùng độ tin cậy và độ hỗ trợ, tức là cùng độ bao phủ dữ liệu huấn luyện nhưng luật dài hơn có nhiều ràng buộc hơn Còn ở điều kiện (4), khi
độ tin cậy, độ hỗ trợ và chiều dài luật giống nhau, chúng ta xếp hạng luật theo thứ tự
từ điển nào đó cho trước Cụ thể trong trường hợp này, đây chính là so sánh thứ tự
xuất hiện của giá trị item nhãn lớp, sau đó đến các item của thuộc tính khác
Một nhược điểm của phương pháp phân lớp dựa trên khai thác luật kết hợp là trong quá trình khai thác, người dùng phải định nghĩa một cách cảm tính 2 ngưỡng tối thiểu: ngưỡng hỗ trợ tối thiểu và ngưỡng tin cậy tối thiểu Sẽ có nhiều luật có độ tin cậy cao những vẫn bị bỏ qua vì không đáp ứng được ngưỡng hỗ trợ tối thiểu Chính điều này sẽ làm ảnh hướng không tốt đến việc xây dựng bộ phân lớp Vì vậy, cần có giải pháp để hạn chế khuyết điểm này Cụ thể hơn là giảm tầm quan trọng của
độ đo tin cậy trong việc quyết định chất lượng của một luật kết hợp Để hiểu rõ hơn, hãy xem xét ví dụ sau Giả sử, có 2 luật được khai thác từ dữ liệu huấn luyện như sau:
𝑡 = 𝑝1, 𝑝2, 𝑝3,𝑝4, 𝑐2Nhận xét rằng, nếu sử dụng độ đo tin cậy thì chắc chắn chúng ta sẽ chọn luật
𝑅1 vào bộ phân lớp vì có độ tin cậy cao hơn, dù cao hơn không nhiều so với 𝑅2 Khi
đó, 𝑅1 sẽ được dùng để phân lớp cho 𝑡, suy ra phân lớp không chính xác
Trong trường hợp này, dễ dàng thấy 𝑅1 và 𝑅2 có độ tin cậy xấp xỉ nhau và không hợp lý khi quyết định luật nào là phù hợp hơn để đưa vào bộ phân lớp cuối cùng mà chỉ dựa vào độ tin cậy
Trang 19Thêm nữa, có thể thấy rằng kết nối giữa 𝑋2 và 𝑐2 là mạnh hơn nhiều so với giữa 𝑋1 và 𝑐1 vì |𝑋2𝑐2|
|𝑐2| =17
50 lớn hơn |𝑋1𝑐1|
|𝑐1| = 17
100, điều này chỉ ra rằng luật 𝑅2 đến lớp
𝑐2 là quan trọng hơn luật 𝑅1 đến lớp 𝑐1 Nói cách khác, tỷ lệ đối tượng dữ liệu có thể được dự đoán một cách chính xác bởi các 𝑅2 là cao hơn so với 𝑅1 Vì vậy, có thể kết luận rằng, ngoài độ tin cậy, cần xem xét đến tỷ lệ |𝑋𝑖𝑐𝑖|
|𝑐𝑖| Tỷ lệ này được gọi là tính đầy
đủ của luật
Định nghĩa 2.4 (Tính đầy đủ) [3] Cho luật phân lớp 𝑅 có dạng 𝑅: 𝑋 → 𝑐, tính
đầy đủ của 𝑅 là tỷ lệ của các đối tượng trong lớp 𝑐 được dự đoán một cách chính xác bởi các luật 𝑅
𝐶𝑜𝑚𝑝(𝑅) =|𝑋𝑐|
Độ tin cậy đo độ dự đoán chính xác của một luật, trong khi tính đầy đủ đo độ bao phủ
và khả năng ứng dụng của luật cho một nhãn lớp cụ thể Như vậy, một độ đo luật nên
ưu tiên luật vừa chính xác nhất và vừa bao phủ tốt nhất Kết hợp 2 độ đo này với nhau
thành độ đo duy nhất và gọi là độ đo Trọng yếu
Định nghĩa 2.5 (Độ đo trọng yếu) [3] Cho luật phân lớp 𝑅 có dạng 𝑅: 𝑋 → 𝑐,
độ trọng yếu của 𝑅 có giá trị là sự kết hợp giữa độ tin cậy và tính đầy đủ của 𝑅
Trong đó, 𝑃(𝑅) là độ trọng yếu của luật R; |𝑐| là số lượng đối tượng dữ liệu thuộc
lớp 𝑐 trong tập dữ liệu huấn luyện 𝜆 là giá trị cho trước bởi người dùng và có giá trị trong đoạn [0,1]
2.1.3.2 Thủ tục xây dựng bộ phân lớp
Gọi tập luật thu được sau giai đoạn 2 là prunedCARs; bộ dữ liệu huấn luyện là T Thủ
tục xây dựng bộ phân lớp như sau:
Trang 20// input: tập luật prunedCARs và dữ liệu huấn luyện T
// output: Bộ phân lớp gồm tập luật AC và nhãn mặc định dc
1 Sắp xếp prunedCARs theo thự tự ưu tiên giảm dần
2 dc_temp = lấy nhãn xuất hiện nhiều nhất trong T
3 Lặp lại nếu (prunedCARs còn luật và T còn dữ liệu)
4 Tính lại và tìm luật đầu tiên có độ P cao nhất (maxRule)
5 Nếu P(maxRule)>0 (phân lớp đúng ít nhất 1 dòng)
6 Thêm maxRule vào cuối AC
7 Xóa tất cả các dòng thỏa điều kiện của maxRule
8 dc = nhãn nhiều nhất trong T (Nếu T rỗng dc=null)
9 Xóa luật maxRule khỏi prunedCARs
10 Ngược lại (P(maxRule)==0): dừng lặp
11 Nếu dc == null thì dc = dc_temp
Hình 2.1 Thủ tục xây dựng bộ phân lớp PAM_CB [3]
Đầu tiên, tập luật prunedCARs sẽ được sắp xếp theo thứ tự ưu tiên giảm dần (dòng 1); thứ tự ưu tiên được định nghĩa ở định nghĩa 2.3 Nhãn lớp mặc định ban đầu
dc_temp sẽ được lưu lại (dòng 2) vì bộ dữ liệu sẽ bị xóa từ từ cho đến hết ở cuối thủ
tục Nhãn mặc định là nhãn lớp có nhiều nhất trong dữ liệu hiện tại, nếu có nhiều hơn
2 nhãn lớp có số lượng bằng nhau thì lấy nhãn đầu tiên tìm thấy Vòng lặp sẽ bắt đầu
ở dòng 3 và lặp cho đến khi prunedCARs còn luật và T còn dữ liệu Với mỗi lần lặp,
cần tính lại các độ đo cho các luật và tìm luật có độ trọng yếu cao nhất, gọi là maxRule, lấy luật được xếp trước nếu độ trọng yếu bằng nhau (dòng 4) Nếu độ trọng yếu của maxRule bằng 0 tức là tất cả các luật trong prunedCARs hiện tại đều có độ trọng yếu bằng 0; điều này có nghĩa là không còn luật nào phân lớp đúng bất kỳ đối tượng dữ liệu nào nữa nên dừng vòng lặp ngay lúc này (dòng 10) Nếu độ trọng yếu của maxRule lớn hơn 0, tức là maxRule có phân lớp đúng ít nhất 1 đối tượng dữ liệu (dựa vào công thức 2.3 suy ra |𝑋𝑐| > 0), lúc này sẽ lần lượt thực hiện các công việc từ
dòng 6 đến 9 Thông thường, khi kết thúc vòng lặp, giá trị của dc nhận được là null bởi vì lúc này bộ dữ liệu T rỗng, khi đó, nhãn lớp mặc định của bộ phân lớp sẽ được gán bằng dc_temp (dòng 11)
Trang 212.1.4 Phân lớp cho dữ liệu mới
Bộ phân lớp cuối cùng là tập hợp các luật theo thứ tự ưu tiên (luật được đưa vào bộ phân lớp trước thì có độ ưu tiên cao hơn) và một nhãn lớp mặc định Để phân lớp cho một đối tượng dữ liệu mới 𝑡, ta làm như sau:
- Tìm luật khớp hoàn toàn với 𝑡 và dùng luật này phân lớp cho 𝑡 Luật khớp hoàn toàn là luật có số item bằng với đối tượng dữ liệu cần phân lớp và đối
tượng thỏa điều kiện của luật
- Nếu không có luật nào khớp hoàn toàn với 𝑡, tìm luật đầu tiên (có độ ưu tiên
cao nhất) mà khớp với 𝑡 và dùng luật này phân lớp cho 𝑡
- Nếu không có bất kỳ luật nào khớp với 𝑡 thì dùng nhãn mặc định để phân lớp cho 𝑡
Định nghĩa 2.6 (Độ chính xác của bộ phân lớp) Độ chính xác của bộ phân lớp AC
khi phân lớp cho một dữ liệu thử nghiệm là tỷ lệ giữa số đối tượng được phân lớp đúng với tổng số đối tượng đã phân lớp
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦(𝐴𝐶) = 𝑐𝑅𝑜𝑤𝑠
wRows + cRows∗ 100% (2.4) Trong đó,
- 𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦(𝐴𝐶) là độ chính xác của bộ phân lớp AC
- cRows: Số đối tượng dữ liệu được phân lớp đúng
- wRows: Số đối tượng dữ liệu được phân lớp sai
2.1.5 Ví dụ minh họa
Cho bộ dữ liệu huấn luyện T như sau:
Bảng 2.1 Bộ dữ liệu huấn luyện T
Trang 22Giai đoạn tiền xử lý, dữ liệu huấn luyện T là đầy đủ, không có giá trị nào bị
thiếu Đồng thời, giá trị của 4 thuộc tính đều rời rạc Tổng cộng bộ dữ liệu T có 10
item, trong đó 2 item là nhãn lớp Vì vậy, giai đoạn tiền xử lý đối với bộ dữ liệu T là
không cần thiết
Bảng 2.2 Các thuộc tính và item của bộ dữ liệu T
STT Tên thuộc tính Giá trị của thuộc tính Item
Giai đoạn tìm tập luật phổ biến với minsup = 20% Mỗi nhãn lớp sẽ có
minSC riêng tùy thuộc vào số dòng có nhãn lớp đó trong bộ dữ liệu huấn luyện Với nhãn lớp 𝐶𝑙𝑎𝑠𝑠 = 𝑌, có tất cả 4 dòng có nhãn lớp này, nên 𝑚𝑖𝑛𝑆𝐶𝑌 = 4 ∗ 0.2 =0.8 ≈ 1 Tương tự, 𝑚𝑖𝑛𝑆𝐶𝑁 = 1 Áp dụng hướng tiếp cập Apriori sẽ tìm được tập luật phổ biến ở Bảng 2.3
Bảng 2.3 Tập luật phổ biến với minsup = 20%
Trang 24Giai đoạn loại bỏ các luật dư thừa
- Loại bỏ các luật có độ tin cậy thấp hơn minconf=50% Ví dụ: luật R6 (luật ở
hàng số 6) ở Bảng 2.3, 𝑐𝑜𝑛𝑓(𝑅6) = 1/3 < 𝑚𝑖𝑛𝑐𝑜𝑛𝑓 nên sẽ loại bỏ luật R6
- Đối với các luật có cùng nhãn lớp, kiểm tra từng luật theo định nghĩa 2.2 Ví dụ: luật R9 ở Bảng 2.3, dễ dàng thấy rằng luật R9 là luật cụ thể của luật R5 và
conf(R9) < conf(R5) Suy ra, loại bỏ luật R9
Kết quả giai đoạn này tập luật ở Bảng 2.4
Bảng 2.4 Tập luật phổ biến đã loại bỏ luật thừa prunedCARs
Trang 25Giai đoạn xây dựng bộ phân lớp từ tập luật prunedCARs, bộ dữ liệu huấn
luyện T và giá trị lambda cho trước Đầu tiên, sắp xếp tập luật prunedCARs theo thứ
tự ưu tiên giảm dần Kết quả ở Bảng 2.5
Bảng 2.5 Tập luật prunedCARs được sắp theo độ ưu tiên giảm dần
Trang 26Tiếp theo, vòng lặp trong thủ tục xây dựng bộ phân lớp sẽ được thực thi bắt
đầu với tập luật prunedCARs ở Bảng 2.5, bộ dữ liệu huấn luyện T ở Bảng 2.1, giá trị
lambd= 0.75 và dc_temp=[Class=Y], nhãn lớp xuất hiện nhiều nhất trong T lúc này
Lần lặp 1: prunedCARs có 34 luật (Bảng 2.6) và T có 8 dòng (Bảng 2.1)
maxRule = R1: [B=b3][Class=Y] với P(R1)= 0.93750
Nếu P(R5)>0 đúng
Thêm R1 vào cuối AC
Xóa tất cả các dòng thỏa điều kiện của R1 (T lúc này là
Trang 27Thêm R9 vào cuối AC
Xóa tất cả các dòng thỏa điều kiện của R9 (T lúc này là
Thêm R1 vào cuối AC
Xóa tất cả các dòng thỏa điều kiện của R1 (T lúc này là
Trang 33Giai đoạn phân lớp cho dữ liệu mới Dùng bộ phân lớp ở Bảng 2.13 để phân lớp
cho bộ dữ liệu kiểm tra ở Bảng 2.14 Quá trình phân lớp sẽ tiến hành duyệt từng đối tượng của bộ dữ liệu kiểm tra, phân lớp cho đối tượng đó và kiểm tra việc phân lớp đúng hay sai
- Dòng 1: Luật R2 trong bộ phân lớp thỏa hoàn toàn, nên phân lớp Y cho đối tượng này phân lớp đúng
- Dòng 2: Không có luật nào thỏa hoàn toàn; R3 là luật đầu tiên thỏa nên phân lớp N cho đối tượng này phân lớp đúng
- Dòng 3: Không có luật nào thỏa hoàn toàn; R3 là luật đầu tiên thỏa nên phân lớp N cho đối tượng này phân lớp đúng
- Dòng 4: Không có luật nào thỏa hoàn toàn; R1 là luật đầu tiên thỏa nên phân lớp Y cho đối tượng này phân lớp đúng
- Dòng 5: Luật R4 trong bộ phân lớp thỏa hoàn toàn, nên phân lớp N cho đối tượng này phân lớp đúng
- Dòng 6: Không có luật nào thỏa hoàn toàn cũng không có luật nào thỏa, nên dùng nhãn mặc định Y phân lớp cho đối tượng này phân lớp sai
- Dòng 7: Luật R4 trong bộ phân lớp thỏa hoàn toàn, nên phân lớp N cho đối tượng này phân lớp sai
Như vậy, bộ phân lớp đã phân lớp cho 7 đối tượng, trong đó đã phân lớp đúng 5 đối tượng và phân lớp sai 2 đối tượng Áp dụng công thức (2.4) để tính độ chính xác phân lớp như sau:
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦(𝐴𝐶) = 𝑐𝑅𝑜𝑤𝑠
wRows + cRows∗ 100% =
5
2 + 5∗ 100% = 71.43%
Trang 342.2 Thuật toán CBA*
Thuật toán trình bày trong phần tạm gọi là CBA*, cơ bản vẫn dựa trên thuật toán CBA gốc Tuy nhiên, CBA* một vài sự khác biệt so với thuật toán gốc Sự thay đổi này nhằm mục đích tạo ra sự tương đối về hoàn cảnh để so sánh giữa 2 độ đo: độ
đo tin cậy và độ đo trọng yếu Thuật toán CBA* cũng có các giai đoạn như thuật toán PAM đã trình bày ở chương trước
- Giai đoạn tiền xử lý dữ liệu giống với thuật toán PAM
- Giai đoạn tìm tập luật ứng viên cũng giống với thuật toán PAM Tuy nhiên giai đoạn này lại khác với thuật toán CBA gốc ở 2 điểm sau:
o Không loại bỏ các luật mâu thuẫn có độ tin cậy thấp hơn (các luật có cùng điều kiện nhưng kết quả nhãn lớp khác nhau) Mặc dù vậy, việc không xử lý luật mâu thuẫn trong giai đoạn này cũng không gây ảnh hưởng đến bộ phân lớp cuối cùng (do thủ tục xây dựng bộ phân lớp của CBA* đã xử lý những luật này)
o Sử dụng ngưỡng hỗ trợ tối thiểu khác nhau ở từng nhãn lớp Điều này nhằm tạo cơ sở giống nhau để so sánh 2 thuật toán PAM và CBA*
- Giai đoạn xây dựng bộ phân lớp và giai đoạn phân lớp cho dữ liệu mới sẽ sử dụng gần giống như của thuật toán CBA gốc và sẽ được trình bày bên dưới Như vậy, so với thuật toán CBA gốc, thuật toán CBA* chỉ có duy nhất một thay đổi có thể gây ảnh hưởng đến độ chính xác của bộ phân lớp; đó là sử dụng đa ngưỡng hỗ trợ thay vì đơn ngưỡng hỗ trợ
2.2.1 Xây dựng bộ phân lớp
Giai đoạn này tương tự như ở thuật toán PAM, chỉ có 2 điểm khác là cách xếp hạng luật và thủ tục xây dựng bộ phân lớp
Định nghĩa 2.7 (Xếp hạng luật trong CBA) [1] Cho hai luật 𝑅𝑖 và 𝑅𝑗; 𝑅𝑖 ≻
𝑅𝑗 tức là 𝑅𝑖 có thứ tự ưu tiên hơn 𝑅𝑗 nếu:
(1) 𝐶𝑜𝑛𝑓(𝑅𝑖) > 𝐶𝑜𝑛𝑓(𝑅𝑗) hoặc
(2) 𝐶𝑜𝑛𝑓(𝑅 ) = 𝐶𝑜𝑛𝑓(𝑅 ) ∧ 𝑆𝑢𝑝𝑝(𝑅 ) > 𝑆𝑢𝑝𝑝(𝑅 ) hoặc
Trang 35Trong đó, điều kiện (3), ưu tiên luật có được phát sinh trước trong giai đoạn khai thác tập luật phổ biến, tức là ưu tiên luật ngắn (luật tổng quát) hơn
Định nghĩa trên là định nghĩa thứ tự ưu tiên giữa các luật trong thuật toán CBA gốc Ở đây, thuật toán CBA* có thay đổi nhỏ là: khi 2 luật có chiều dài bằng nhau thì
sẽ xếp luật theo thứ tự từ điển như thuật toán PAM, thay vì ưu tiên luật được phát sinh trước Định nghĩa thứ tự ưu tiên được định nghĩa như sau:
Định nghĩa 2.8 (Xếp hạng luật trong CBA*) [1] Cho hai luật 𝑅𝑖 và 𝑅𝑗; 𝑅𝑖 ≻
𝑅𝑗 tức là 𝑅𝑖 có thứ tự ưu tiên hơn 𝑅𝑗 nếu:
(1) 𝐶𝑜𝑛𝑓(𝑅𝑖) > 𝐶𝑜𝑛𝑓(𝑅𝑗) hoặc
(2) 𝐶𝑜𝑛𝑓(𝑅𝑖) = 𝐶𝑜𝑛𝑓(𝑅𝑗) ∧ 𝑆𝑢𝑝𝑝(𝑅𝑖) > 𝑆𝑢𝑝𝑝(𝑅𝑗) hoặc
(3) 𝐶𝑜𝑛𝑓(𝑅𝑖) = 𝐶𝑜𝑛𝑓(𝑅𝑗) ∧ 𝑆𝑢𝑝𝑝(𝑅𝑖) = 𝑆𝑢𝑝𝑝(𝑅𝑗) ∧ 𝑙𝑒𝑛(𝑅𝑖) < 𝑙𝑒𝑛(𝑅𝑗) hoặc (4) 𝐶𝑜𝑛𝑓(𝑅𝑖) = 𝐶𝑜𝑛𝑓(𝑅𝑗) ∧ 𝑆𝑢𝑝𝑝(𝑅𝑖) = 𝑆𝑢𝑝𝑝(𝑅𝑗) ∧ 𝑙𝑒𝑛(𝑅𝑖) = 𝑙𝑒𝑛(𝑅𝑗) ∧
𝑙𝑒𝑥(𝑅𝑖) > 𝑙𝑒𝑥(𝑅𝑗)
Thủ tục xây dựng bộ phân lớp với tập luật prunedCARs và bộ dữ liệu huấn luyện T
// input: tập luật prunedCARs và dữ liệu huấn luyện T
// output: Bộ phân lớp gồm tập luật AC và nhãn mặc định dc
1 Sắp xếp prunedCARs theo thự tự ưu tiên giảm dần
2 dc_temp = lấy nhãn xuất hiện nhiều nhất trong T
3 lsDC, lsError là tập nhãn lớp mặc định và tập số lỗi
4 Lặp lại nếu (prunedCARs còn luật và T còn dữ liệu)
5 Lấy luật đầu tiên maxRule (có ưu tiên cao nhất)
6 Nếu maxRule phân lớp đúng ít nhất 1 dòng
7 Thêm maxRule vào cuối AC
8 Xóa tất cả các dòng thỏa điều kiện của maxRule
9 Thêm nhãn nhiều nhất vào lsDC
10 Nếu T rỗng thêm dc_temp vào lsDC
11 Thêm số lỗi với AC hiện tại vào lsError
12 Xóa luật maxRule khỏi prunedCARs
Trang 36Đầu tiên, tập luật prunedCARs sẽ được sắp xếp theo thứ tự ưu tiên giảm dần (dòng 1); thứ tự ưu tiên được định nghĩa ở định nghĩa 2.8 Nhãn lớp mặc định ban đầu
dc_temp sẽ được lưu lại (dòng 2) vì bộ dữ liệu sẽ bị xóa từ từ cho đến hết ở cuối thủ
tục Nhãn mặc định là nhãn lớp có nhiều nhất trong dữ liệu hiện tại, nếu có nhiều hơn
2 nhãn lớp có số lượng bằng nhau thì lấy nhãn đầu tiên tìm thấy Khởi tạo danh sách nhãn mặc định lsDC rỗng (dòng 3) Vòng lặp sẽ bắt đầu ở dòng 4 và lặp cho đến khi
prunedCARs còn luật và T còn dữ liệu Với mỗi lần lặp, luật đầu tiên trong
prunedCARs là luật có độ ưu tiên cao nhất, gọi là maxRule (dòng 5) Nếu maxRule
có phân lớp đúng ít nhất 1 đối tượng dữ liệu, lúc này sẽ lần lượt thực hiện các công việc từ dòng 7 đến 12 Thêm maxRule vào cuối bộ phân lớp (dòng 7), sau đó xóa tất
cả những đối tượng dữ liệu thỏa điều kiện của maxRule (dòng 8) Tiếp theo, thêm
nhãn lớp còn nhiều nhất vào lsDC (dòng 9) Nếu T rỗng thì thêm dc_temp vào thay
nhãn null vừa thêm ở dòng 9 (dòng 10) Kế đến, xóa maxRule khỏi prunedCARs (dòng 11) Tính số lỗi với bộ phân lớp hiện tại (dòng 12) Khi kết thúc vòng lặp, tìm
vị trí p đầu tiên có số lỗi nhỏ nhất, sau đó xóa các luật phía sau vị trí p trong bộ phân lớp và nhãn lớp mặc định của bộ phân lớp là nhãn ở vị trí p (dòng 15)
2.2.2 Phân lớp cho dữ liệu mới [1]
Bộ phân lớp cuối cùng là tập hợp các luật theo thứ tự ưu tiên (luật được đưa vào bộ phân lớp trước thì có độ ưu tiên cao hơn) và một nhãn lớp mặc định Để phân lớp cho một đối tượng dữ liệu mới 𝑡, ta làm như sau:
- Tìm luật đầu tiên (có độ ưu tiên cao nhất) mà khớp với 𝑡 và dùng luật này phân lớp cho 𝑡
- Nếu không có bất kỳ luật nào khớp với 𝑡 thì dùng nhãn mặc định để phân lớp cho 𝑡
Cách đánh giá độ chính xác bộ phân lớp tương như cách đánh giá ở thuật toán PAM
2.2.3 Ví dụ minh họa
Sử dụng dữ liệu huấn luyện như ở ví dụ minh họa thuật toán PAM, bộ dữ liệu
ở Bảng 2.15 Giai đoạn khai thác tập luật ứng viên tương tự như thuật toán PAM Vì
Trang 37Bảng 2.15 Bộ dữ liệu huấn luyện T