Để ý rằng, với một vài hiệu chỉnh nhỏ, cũng có thể sử dụng thuật toán MINWAL(O) cho việc khai phá luật kết hợp có trọng số chuẩn hóa. Tuy nhiên, sử dụng các tính chất của tập mục thường xuyên có trọng số chuẩn hóa nêu trong các Mệnh đề 2.1, 2.3 và 2.4, Cai, C. H. [6,7] đã đề xuất thuật toán hiệu quả hơn. Đó là thuật toán MINWAL(W) trình bày dưới đây.
Ký hiệu:
DT Cơ sở dữ liệu giao tác
w Tập các trọng số của các mục
size Độ dài lớn nhất của các giao tác
Ck Tập các k-tập mục ứng viên có thể là tập con của j-tập mục thường xuyên có trọng số chuẩn hóa, jk
Lk Tập các k-tập mục thường xuyên có trọng số chuẩn hóa
L Tập tất cả các tập mục thường xuyên có trọng số chuẩn hóa
SC(X) Số đếm hỗ trợ tập mục X trong DT
nwminsup Ngưỡng hỗ trợ tối thiểu
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Input: CSDL DT, tổng số giao tác N và tổng số mục M trong DT, ngưỡng hỗ trợ nwminsup, ngưỡng độ tin cậy minconf, trọng số của các mục w1, ... ,wM xếp theo thứ tự giảm dần.
Output: Tập các luật kết hợp có trọng số.
Thuật toán MINWAL(W)
1) Main Algorithm(wminsup, minconf, DT, w) 2) k =1 ;
3) C1I; ; 4) L
5) size = Search(DT) ; 6) L1 ;
7) For each transaction do
8) (SC, C1 , size) = Counting(DT, w,k) ; 9) L1 = Checking(C1 , DT) ; 10) L = L L1 ; 11) k++ ; 12) While Lk1 13) Ck = Join(Lk -1) ; 14) Ck = Prune(Ck) ; 15) for each transaction do
16) (SC, Ck , size) = Counting(DT, w,k) ; 17) Lk = Checking(Ck , DT) ;
18) L = L Lk; 19)Rules (L, minconf) 20) Ends;
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Các thủ tục con trong MINWAL(W) hoạt động như sau:
1. Search(DT): Duyệt CSDL DT, tìm độ dài cực đại của các giao tác trong DT, cho ra kết quả size.
2. Counting(DT,w): Duyệt CSDL DT xác định số đếm hỗ trợ của các k- tập mục thuộc Ck. Sau đó, tính độ hỗ trợ có trọng số chuẩn hóa của mỗi các tập mục này và lưu các tập mục có độ hỗ trợ có trọng số chuẩn hóa lớn hơn hoặc bằng wminsup vàoLk.
3. Join(Lk -1) (với k 2): Kết nối để tạo ra tập ứng viên Ck. Theo Mệnh đề 2.4, một k-tâp mục ứng viên chỉ có thể là tập mục thường xuyên có trọng số chuẩn hóa nếu nó là tập cha bậc thấp của một (k-1)-tập mục thường xuyên có trọng số chuẩn hóa. Vì thế, khi thủ tục con này thực hiện, nó sẽ kết nối mỗi tập mục thường xuyên có trọng số chuẩn hóa trong Lk1 với một mục có trọng số nhỏ hơn (không nhất thiết phải thuộcL1) để lập thành một tập cha bậc thấp và nhập vào Ck. Ví dụ, giả sử cơ sở dữ liệu có tập các mục I a b c d e, , , , , trong đó
...
a b e
w w w; c e, là tập mục thường xuyên có trọng số chuẩn hóa đã được phát hiện tại bước lặp k = 2. Khi đó, thủ tục kết nối Join sẽ chỉ kết nối c e, với a và với b để tạo ra các tập mục ứng viên a c e, , và b c e, , , rồi nhập các tập mục này vào tập C3. Với cách kết nối này, các tập con bậc cao của a c e, , , cũng như của b c e, , , là e và c e, , cả hai đều là những tập mục thường xuyên có trọng số chuẩn hóa.
4. Prune(Ck): Ước lượng số đếm hỗ trợ mỗi ứng viên X trong Ck bằng giá trị nhỏ hơn trong hai số đếm hỗ trợ hai tập mục đã kết nối tạo để ra X khi thực hiện Join(Lk -1). Sử dụng số đếm hỗ trợ ước lượng, tính độ hỗ trợ có trọng số ước lượng của X. Ứng viên X sẽ bị loại khỏi Ck
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
nếu có độ hỗ trợ trọng số chuẩn hóa ước lượng nhỏ hơn ngưỡng hỗ trợ tối thiểu wminsup (theo Mệnh đề 2.1).
5. Checking(C DTk, ): Thủ tục này thực hiện công việc kiểm tra. Checking (C DTk, ) duyệt CSDL xác định số đếm hỗ trợ thực tế của mỗi ứng viên trong Ck, tính độ hỗ trợ có trọng số chuẩn hóa của chúng và nhập các tập mục thường xuyên có trọng số chuẩn hóa tìm được vào tập Lk. Tập Lk này sẽ là tập các ứng viên được sử dụng để tạo các tập mục cha có khả năng là tập mục thường xuyên có trọng số chuẩn hóa tại vòng lặp tiếp theo.
6. Rules (L, minconf): Sinh luật kết hợp thỏa mãn độ tin cậy minconf từ mỗi tập mục thường xuyên có trọng số thuộc L.
Cấu trúc của thuật toán MINWAL(W) tương tự như thuật toán Apriori Gen, nhưng về chi tiết có một số khác biệt. Mặc dù các k-tập mục thường xuyên có trọng số chuẩn hóa cũng được sinh ra từ các k1-tập mục, nhưng không phải tất cả các tập con của một tập mục thường xuyên có trọng số chuẩn hóa cũng là tập mục thường xuyên có trọng số chuẩn hóa. Vì thế có sự khác biệt trong việc tạo ra các các tập ứng viên giữa MINWAL(W) và Apriori Gen. Trong Apriori Gen, các tập ứng viên trong Ck được sinh ra bằng việc kết nối các tập mục thường xuyên thuộc Lk1. Trong MINWAL(W), các tập ứng viên trong Ck được sinh ra bằng cách tạo ra các tập cha bậc thấp của các tập mục trong Lk1 (dựa theo Mệnh đề 2.4). Trong quá trình tỉa bớt các ứng viên giữa MINWAL(W) và Apriori Gen cũng có sự khác biệt. Việc tỉa bớt các ứng viên trong MINWAL(W) không thông qua việc kiểm tra các tập con của các tập mục thường xuyên có trọng số chuẩn hóa có phải là mục thường xuyên có trọng số chuẩn hóa hay không mà sử dụng các ước lượng độ hỗ trợ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
có trọng số chuẩn hóa. Theo Mệnh đề 2.1, độ hỗ trợ có trọng số chuẩn hóa
ước lượng sẽ lớn hơn độ hỗ trợ có trọng số chuẩn hóa chính xác của tập mục ứng viên, nên ứng viên nào có độ hỗ trợ có trọng số chuẩn hóa ước lượng lớn hơn ngưỡng nwminsup sẽ không thể là tập mục thường xuyên có trọng số chuẩn hóa.
Ví dụ 2.3: Xét CSDL DT Bảng 2.1 có trọng số của các mục cho trong Bảng 2.2. Giả sử ngưỡng nwminsup là 0.50 và ngưỡng minconf là 0.85. Ta cần tìm tất cả các tập mục thường xuyên có trọng số chuẩn hóa trong DT.
Giải: Duyệt CSDL DT, thu được độ dài nhất có thể có của tập mục trong DT
là 4.
Bƣớc lặp 1 (k =1).
- Cho C1I , L .
- Duyệt CSDL DT, thu được số đếm hỗ trợ mỗi mục trong C1 là: SC(e) = 7, SC(d) = 6, SC(c) = 2, SC(b) = 5, SC(a) = 4.
- Tính độ hỗ trợ có trọng số chuẩn hóa của các mục thuộc C1, thu được: 7 NWsup(e) 0.9 0.90 7 , NWsup(d) 0.8 6 0.68 7 2 NWsup(c) 0.4 0.11 7 , NWsup(b) 0.3 5 0.21 7 4 NWsup(a) 0.1 0.057 7 .
- Với nwminsup đã cho là 0.50, L1 d , e .
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Bƣớc lặp 2 (k =2).
- Thực hiện kết nối: Kết nối mỗi tập mục thường xuyên trong L1 với mỗi mục trong C1 có trọng số nhỏ hơn để lập thành một tập cha bậc thấp, thu được:
2
C e,d , e,c , e,b , e,a , d,c , d,b , d,a .
- Tỉa C2: Ước lượng cận trên cho cho số đếm độ hỗ trợ (ESC) của các tập mục trong C2 là:
e,d min e , d min 7,6 6
ESC SC SC ,
e,c min e , c min 7, 2 2
ESC SC SC ,
e,b min e , b min 7,5 5
ESC SC SC ,
e,a min e , a min 7, 4 4
ESC SC SC , d,c min d , c min 6, 2 2 ESC SC SC , d,b min d , b min 6,5 5 ESC SC SC .
d,a min d , a min 6, 4 4
ESC SC SC .
Với các ước lượng số đếm hỗ trợ, ta có các ước lượng cho độ hỗ trợ có trọng số chuẩn hóa của các tập mục trong C2 là:
0.9 0.8 6 ENWsup e,d 0.73 2 7 , ENWsup e,c 0.18,
ENWsup e,b 0.43, ENWsup e,a 0.28, ENWsup d,c 0.17, ENWsup d,b 0.39, ENWsup d,a 0.26.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Các tập mục e,c , e,b , e,a , d,c , d,b và d,a , có độ hỗ trợ có trọng số chuẩn hóa ước lượng nhỏ hơn nwminsup = 0.50, nên bị loại. Sau khi tỉa, còn lại C2 e,d .
Thực hiện kiểm tra: Duyệt CSDL DT, xác định số đếm hỗ trợ thực tế, rồi tính độ hỗ trợ có trọng số chuẩn hóa thực tế của e,d :
0.9 0.8 6
NWsup e,d sup e,d 0.73
2 2 7 e d w w nwminsup . Vậy, L2 e,d .
Sau bước lặp 2, L L L2 d , e , e,d .
Bƣớc lặp 3 (k =3).
Kết nối: Thực hiện kết nối các tập mục thường xuyên trong L2 với mỗi mục có trọng số nhỏ hơn để lập thành một tập cha bậc thấp, thu được:
3 e,d,a , e,d,b , e,d,c
C .
Tỉa C3: Ước lượng cận trên cho cho số đếm độ hỗ trợ của ba tập mục trong C3 trên đây, ta có:
e,d,a min e,d , min 6, 4 4
ESC SC SC a ,
e,d,b min e,d , b min 6,5 5
ESC SC SC ,
e,d,c min e,d , c min 6, 2 2
ESC SC SC .
Với các ước lượng số đếm hỗ trợ, ta có các ước lượng cho độ hỗ trợ có trọng số chuẩn hóa của các tập mục là:
0.9 0.8 0.1 4 ENWsupport e,d,a 0.34 3 7 ,
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
ENWsupport e,d,b 0.48, ENWsupporte,d,c0.20. Với nwminsup = 0.50 , cả ba tập e,d,a , e,d,b , e,d,c đều bị loại.
Sau khi tỉa, C3 . Do đó L3 , thuật toán dừng. Như vậy, sau ba bước lặp, L d , e , e,d .
Sinh luật kết hợp: Từ tập mục d e, có thể có hai luật kết hợp: conf(d e) = , SC d e SC d 6 1 6 , conf(ed) = , . SC d e SC e 6 0 87 7 .
Như vậy, với ngưỡng nwminsup là 0.50 và ngưỡng minconf là 0.80, có hai luật kết hợp có trọng số lớn là: d e, ed.
2.3.3. Lập trình và tính toán thử nghiệm
Thuật toán MINWAL(W) trên đây đã được chúng tôi lập trình bằng ngôn ngữ Java 1.6 và cho chạy thử trên máy tính Intel® Pentium®) CPU 2.70 GHz, RAM 2.0 Gigabyte trong môi trường Windows 7 professional. Mã nguồn chương trình được cho trong phụ lục 2 cuối luận văn.
Để có CSDL giao tác thử nghiệm, chúng tôi đã đã sử dụng phần mềm IBM Quest Market Synthetic Data Generator [11] lấy từ trang web
http://www.cs.loyola.edu/~cgiannel/assoc_gen.html Các tham số cần gán cho thủ tục tạo dữ liệu này là:
Số các mục trong cơ sở dữ liệu (M) Số các giao tác trong CSDL (N) Độ dài trung bình của các giao tác Độ dài trung bình của các tập mục.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Cơ sở dữ liệu giao tác mà chúng tôi tạo ra được đặt tên là DATA1, gồm 5 mục dữ liệu I 1 2 3 4 5, , , , với 100 giao tác.
Kết quả tính toán thử nghiệm cho thấy chương trình mô phỏng thuật toán MINWAL(W) lập được chạy ổn định với các tham số đầu vào khác nhau.
Độ hiệu quả của MINWAL(W) càng cao hơn khi độ hỗ trợ tối thiểu càng nhỏ. Nguyên nhân là vì để tìm được tất cả các tập mục thường xuyên có trọng số, thuật toán MINWAL(W) phải duyệt CSDL và sinh ra các ứng viên tại mỗi bước, mà khi độ hỗ trợ tối thiểu nhỏ thì số các tập mục ứng viên sẽ lớn, dẫn đến quá trình kết nối và tỉa các ứng viên sẽ tiêu tốn rất nhiều thời gian.
2.4. Kết luận chƣơng
Chương 2 luận văn đã trình bày hai mô hình mở rộng bài toán khai phá luật kết hợp nhị phân: Khai phá luật kết hợp có trọng số và Khai phá luật kết hợp có trọng số chuẩn hóa. Trong mỗi trường hợp mở rộng, sau phần phát biểu bài toán là phần trình bày cơ sở toán học của lời giải và thuật toán. Các thuật toán đều được minh họa bằng ví dụ cụ thể, được lập trình và chạy thử nghiệm trên cơ sở dữ liệu giao tác nhân tạo.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Chƣơng 3
KHAI PHÁ LUẬT KẾT HỢP CÓ TRỌNG SỐ BẰNG PHƢƠNG PHÁP CHỌN MẪU
Hai thuật toán MINWAL(O) và MINWAL(W) khai phá luật kết hợp có trọng số và trọng số chuẩn hóa trình bày trong chương 2 gặp phải hai chi phí lớn:
- Chi phí sinh ra số lượng khổng lồ các tập ứng viên, - Chi phí duyệt cơ sở dữ liệu nhiều lần.
Để khắc phục nhược điểm trên của MINWAL(O) và MINWAL(W), Cai, Chun Hing [6] đã đề xuất cách tiếp cận giải xấp xỉ bài toán khai phá luật kết hợp có trọng số bằng phương pháp chọn mẫu. Chương 3 này nhằm trình bày cách tiếp cận này cùng với thuật toán SRS.
3.1. Tổng thể và mẫu trong thống kê toán học
Tập tất cả các đối tượng cùng loại mà các nhà thống kê quan tâm nghiên cứu được gọi là tổng thể. Tổng thể thường bao gồm một số lượng lớn, có khi rất lớn các đối tượng. Nghiên cứu toàn bộ đối tượng trong tổng thể là việc làm khó khăn hoặc không thể thực hiện được, chưa kể là có khi không có nghĩa. Vì vậy người ta thường dùng phương pháp chọn mẫu, tức là từ một tổng thể có N đối tượng (N được gọi là kích thước của tổng thể) rút ra n đối tượng (n
được gọi là kích thước mẫu), tiến hành nghiên cứu trên mẫu đó rồi căn cứ vào kết quả thu được mà suy rộng ra cho tổng thể. Các kết quả suy rộng này không thể tránh khỏi những sai lệch. Độ lớn của các sai lệch phụ thuộc vào hai yếu tố cơ bản là phương pháp chọn mẫu và kích thước mẫu. Vì vậy, vấn đề quan trọng là làm sao đảm bảo cho mẫu phải phản ánh đúng đắn cấu trúc của tổng thể, tức là mẫu phải mang tính đại diện để cho sai lệch do chọn mẫu
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
càng nhỏ càng tốt. Kích thước mẫu càng lớn, thì tính đại diện của mẫu càng cao, tuy nhiên khi đó chi phí cũng sẽ càng lớn.
Trong thực hành, tùy vào tình huống cụ thể, người ta có thể áp dụng những phương pháp chọn mẫu khác nhau. Mỗi phương pháp đều có ưu điểm và nhược điểm riêng.
- Chọn mẫu ngẫu nhiên đơn giản (Simple Random Sampling): Đây là cách chọn mẫu đơn giản nhất. Để chọn mẫu cỡ n, ta chọn ngẫu nhiên n đối tượng từ quần thể gồm N đối tượng, sao cho xác suất mỗi mẫu cỡ n được