Tải bản đầy đủ (.pdf) (74 trang)

PHƯƠNG PHÁP PHÂN lớp dựa TRÊN kết hợp TRỌNG yếu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (10.47 MB, 74 trang )

ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜ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


LỜI CÁM ƠN
Luậ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


LỜI CAM ĐOAN
Tô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


Mục lục
Số 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
3.1.2. Các quy tắc xây dựng dàn ........................................................................41
1


3.2. Xây dựng dàn theo chiều sâu ..........................................................................42
3.2.1. Phương pháp xây dựng dàn ......................................................................42
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

2


Danh mục các bảng
Bả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

3


Danh mục các hình vẽ, đồ thị
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
4


MỞ ĐẦ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.

5


Chương 1: Giới thiệu

Chươ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,
6


Chương 1: Giới thiệu
loạ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
phân lớp kết hợp là tìm ra bộ phân lớp (gồm các luật kết hợp) dùng để xác định nhãn
lớp cho các đối tượng dữ liệu chưa được phân lớp.
7


Chương 1: Giới thiệu

1.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ợ 𝑋.
𝑆𝑢𝑝𝑝(𝑅: 𝑋 → 𝑌) =

|𝑋 ∪ 𝑌|
|𝑇|

(1.1)

𝐶𝑜𝑛𝑓(𝑅: 𝑋 → 𝑌) =

|𝑋 ∪ 𝑌|
|𝑋 |

(1.2)

Trong đó:
-


|𝑇| là tổng số giao dịch có trong 𝑇

-

|𝑋 | là tổng số giao dịch có trong 𝑇 và hỗ trợ 𝑋

-

|𝑋 ∪ 𝑌| là tổng số giao dịch có trong 𝑇 và hỗ trợ 𝑋 ∪ 𝑌

8


Chương 1: Giới thiệu
Độ 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 độ
tin cậy của nó lớn hơn hoặc bằng minconf
9


Chương 1: Giới thiệu

1.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 𝑋 → 𝑐.

10


Chương 1: Giới thiệu
Đị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
𝑠𝑢𝑝𝑝(𝑋𝑐 ) = 𝑠𝑢𝑝𝑝(𝑅) =

|𝑋𝑐 |

|𝑇|

(1.3)

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à:
𝑐𝑜𝑛𝑓(𝑋𝑐 ) = 𝑐𝑜𝑛𝑓 (𝑅) =

|𝑋𝑐 |
|𝑋 |

(1.4)

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

11


Chương 2: Thuật toán phân lớp kết hợp

Chươ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,
12


Chương 2: Thuật toán phân lớp kết hợp
phâ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.

13


Chương 2: Thuật toán phân lớp kết hợp
Đị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
14


Chương 2: Thuật toán phân lớp kết hợp
hạ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 → 𝑐1 ; |𝑋1 | = 20; |𝑋1 𝑐1 | = 17; |𝑐1 | = 100;
𝑅2 : 𝑝1 , 𝑝4 → 𝑐2 ; |𝑋2 | = 21; |𝑋2 𝑐2 | = 17; |𝑐2 | = 50;
⟹ 𝑠𝑢𝑝𝑝(𝑅1 ) = 𝑠𝑢𝑝𝑝(𝑅2 )
⟹ 𝑐𝑜𝑛𝑓(𝑅1 ) =

17
17
> 𝑐𝑜𝑛𝑓(𝑅2 ) =
20
21

Kiểm tra bằng cách phân lớp đối tượng dữ liệu mới sau:
𝑡 = 𝑝1 , 𝑝2 , 𝑝3, 𝑝4 , 𝑐2
Nhậ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.

15


Chương 2: Thuật toán phân lớp kết hợp
Thê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 𝑅

𝐶𝑜𝑚𝑝(𝑅) =

|𝑋𝑐 |
|𝑐 |

(2.2)

Độ 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 𝑅
𝑃𝑟𝑖𝑛𝑐𝑖𝑝𝑎𝑙𝑖𝑡𝑦 = 𝜆 ∗ 𝑐𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒 + (1 − 𝜆)𝑐𝑜𝑚𝑝𝑙𝑒𝑡𝑒𝑛𝑒𝑠𝑠
⟺ 𝑃(𝑅) = 𝜆 ∗ 𝑐𝑜𝑛𝑓(𝑅) + (1 − 𝜆)𝑐𝑜𝑚𝑝(𝑅) = 𝜆 ∗

|𝑋𝑐 |
|𝑋𝑐 |
+ (1 − 𝜆 )
|𝑋 |
|𝑐 |

(2.3)

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:


16


Chương 2: Thuật toán phân lớp kết hợp
// 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).

17


Chương 2: Thuật toán phân lớp kết hợp
2.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.
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦(𝐴𝐶) =

𝑐𝑅𝑜𝑤𝑠
∗ 100%
wRows + cRows

(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


TID
1
2
3
4
5
6
7
8

A
a1
a1
a2
a3
a3
a3
a1
a2

B
b1
b2
b2
b3
b1
b3
b3
b2
18


C
c1
c1
c1
c1
c2
c1
c2
c2

Class
Y
N
N
Y
N
Y
Y
N


Chương 2: Thuật toán phân lớp kết hợp
Giai đ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

1

A

2

B

3

C

4

Class

Giá trị của thuộc tính

Item

a1
a2
a3
b1
b2
b3
c1

c2

[A=a1]
[A=a2]
[A=a3]
[B=b1]
[B=b2]
[B=b3]
[C=c1]
[C=c2]

Y
N

[Class=Y]
[Class=N]

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%
Ri

Luật

|Xc|

|X|


1

[A=a1]



[Class=Y]

2

3

2

[A=a3]



[Class=Y]

2

3

3

[B=b1]




[Class=Y]

1

2

4

[B=b3]



[Class=Y]

3

3

5

[C=c1]



[Class=Y]

3

5


6

[C=c2]



[Class=Y]

1

3

7

[A=a1],[B=b1]



[Class=Y]

1

1

8

[A=a1],[B=b3]




[Class=Y]

1

1

9

[A=a1],[C=c1]



[Class=Y]

1

2

19


Chương 2: Thuật toán phân lớp kết hợp
10

[A=a1],[C=c2]



[Class=Y]


1

1

11

[A=a3],[B=b3]



[Class=Y]

2

2

12

[A=a3],[C=c1]



[Class=Y]

2

2

13


[B=b1],[C=c1]



[Class=Y]

1

1

14

[B=b3],[C=c1]



[Class=Y]

2

2

15

[B=b3],[C=c2]



[Class=Y]


1

1

16

[A=a1],[B=b1],[C=c1]



[Class=Y]

1

1

17

[A=a1],[B=b3],[C=c2]



[Class=Y]

1

1

18


[A=a3],[B=b3],[C=c1]



[Class=Y]

2

2

19

[A=a1]



[Class=N]

1

3

20

[A=a2]



[Class=N]


2

2

21

[A=a3]



[Class=N]

1

3

22

[B=b1]



[Class=N]

1

2

23


[B=b2]



[Class=N]

3

3

24

[C=c1]



[Class=N]

2

5

25

[C=c2]



[Class=N]


2

3

26

[A=a1],[B=b2]



[Class=N]

1

1

27

[A=a1],[C=c1]



[Class=N]

1

2

28


[A=a2],[B=b2]



[Class=N]

2

2

29

[A=a2],[C=c1]



[Class=N]

1

1

30

[A=a2],[C=c2]



[Class=N]


1

1

31

[A=a3],[B=b1]



[Class=N]

1

1

32

[A=a3],[C=c2]



[Class=N]

1

1

33


[B=b1],[C=c2]



[Class=N]

1

1

34

[B=b2],[C=c1]



[Class=N]

2

2

35

[B=b2],[C=c2]



[Class=N]


1

1

36

[A=a1],[B=b2],[C=c1]



[Class=N]

1

1

37

[A=a2],[B=b2],[C=c1]



[Class=N]

1

1

38


[A=a2],[B=b2],[C=c2]



[Class=N]

1

1

39

[A=a3],[B=b1],[C=c2]



[Class=N]

1

1

20


Chương 2: Thuật toán phân lớp kết hợp
Giai đ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
Ri

Luật

|Xc|

|X|

1

[A=a1]



[Class=Y]

2

3


2

[A=a3]



[Class=Y]

2

3

3

[B=b1]



[Class=Y]

1

2

4

[B=b3]




[Class=Y]

3

3

5

[C=c1]



[Class=Y]

3

5

6

[A=a1],[B=b1]



[Class=Y]

1

1


7

[A=a1],[B=b3]



[Class=Y]

1

1

8

[A=a1],[C=c2]



[Class=Y]

1

1

9

[A=a3],[B=b3]




[Class=Y]

2

2

10

[A=a3],[C=c1]



[Class=Y]

2

2

11

[B=b1],[C=c1]



[Class=Y]

1

1


12

[B=b3],[C=c1]



[Class=Y]

2

2

13

[B=b3],[C=c2]



[Class=Y]

1

1

14

[A=a1],[B=b1],[C=c1]




[Class=Y]

1

1

15

[A=a1],[B=b3],[C=c2]



[Class=Y]

1

1

16

[A=a3],[B=b3],[C=c1]



[Class=Y]

2

2


17

[A=a2]



[Class=N]

2

2

18

[B=b1]



[Class=N]

1

2

19

[B=b2]




[Class=N]

3

3

20

[C=c2]



[Class=N]

2

3

21

[A=a1],[B=b2]



[Class=N]

1

1


22

[A=a1],[C=c1]



[Class=N]

1

2

21


Chương 2: Thuật toán phân lớp kết hợp
23

[A=a2],[B=b2]



[Class=N]

2

2

24


[A=a2],[C=c1]



[Class=N]

1

1

25

[A=a2],[C=c2]



[Class=N]

1

1

26

[A=a3],[B=b1]



[Class=N]


1

1

27

[A=a3],[C=c2]



[Class=N]

1

1

28

[B=b1],[C=c2]



[Class=N]

1

1

29


[B=b2],[C=c1]



[Class=N]

2

2

30

[B=b2],[C=c2]



[Class=N]

1

1

31

[A=a1],[B=b2],[C=c1]



[Class=N]


1

1

32

[A=a2],[B=b2],[C=c1]



[Class=N]

1

1

33

[A=a2],[B=b2],[C=c2]



[Class=N]

1

1

34


[A=a3],[B=b1],[C=c2]



[Class=N]

1

1

Giai đ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
Ri
1

[B=b3]

Luật


2

[B=b2]



[Class=N]


3

3

3

[A=a3],[B=b3],[C=c1]



[Class=Y]

2

2

4

[A=a3],[B=b3]



[Class=Y]

2

2

5


[A=a3],[C=c1]



[Class=Y]

2

2

6

[B=b3],[C=c1]



[Class=Y]

2

2

7

[A=a2],[B=b2]



[Class=N]


2

2

8

[B=b2],[C=c1]



[Class=N]

2

2

9

[A=a2]



[Class=N]

2

2

10


[A=a1],[B=b1],[C=c1]



[Class=Y]

1

1

11

[A=a1],[B=b3],[C=c2]



[Class=Y]

1

1

12

[A=a1],[B=b2],[C=c1]



[Class=N]


1

1

13

[A=a2],[B=b2],[C=c1]



[Class=N]

1

1

14

[A=a2],[B=b2],[C=c2]



[Class=N]

1

1

15


[A=a3],[B=b1],[C=c2]



[Class=N]

1

1

16

[A=a1],[B=b1]



[Class=Y]

1

1

22

|Xc|

|X|

[Class=Y]


3

3


×