khai thÁc t一p m影c trển c愛 sỞ d頴 liu s渦 l営ng cị s衛 phỂn c … · 2016. 4....
TRANSCRIPT
Đ萎I H窺C QU渦C GIA HÀ N浦I
TR姶云NG Đ萎I H窺C KHOA H窺C T衛 NHIểN
_______________________
NGUY右N DUY HÀM
PHỄT TRI韻N M浦T S渦 THU一T TOỄN HI烏U QU謂 KHAI THÁC T一P M影C TRểN C愛 SỞ D頴 LI烏U S渦 L姶営NG
Cị S衛 PHỂN C遺P CÁC M影C
D衛 TH謂O LU一N ỄN TI蔭N Sƾ TOỄN H窺C
HƠ N瓜i ậ 2016
Đ萎I H窺C QU渦C GIA HÀ N浦I
TR姶云NG Đ萎I H窺C KHOA H窺C T衛 NHIểN
_______________________
NGUY右N DUY HÀM
PHỄT TRI韻N M浦T S渦 THU一T TOỄN HI烏U QU謂 KHAI THỄC T一P M影C TRểN C愛 SỞ D頴 LI烏U S渦 L姶営NG
Cị S衛 PHỂN C遺P CÁC M影C
Chuyên ngành: C愛 S雲 TOỄN CHO TIN H窺C
Mư s嘘: 62.46.01.10
D衛 TH謂O LU一N ỄN TI蔭N Sƾ TOỄN H窺C
NG姶云I H姶閏NG D郁N KHOA H窺C:
1. TS.NGUY右N TH卯 H唄NG MINH
2. PGS.TS. VẪ ĐỊNH B謂Y
HƠ N瓜i ậ 2016
i
L云I CAM ĐOAN
Tôi xin cam đoan lu壱n án này là công trình nghiên cứu do tác gi違 th詠c
hiện d逢噂i s詠 h逢噂ng d磯n của t壱p th吋 cán b瓜 h逢噂ng d磯n. Lu壱n án có sử dụng
thông tin trích d磯n từ nhiều ngu欝n tham kh違o khác nhau, các thông tin trích
d磯n đều đ逢ợc ghi rõ ngu欝n g嘘c. Các s嘘 liệu th詠c nghiệm, k院t qu違 nghiên cứu
trình bày trong lu壱n án là hoàn toàn trung th詠c, ch逢a đ逢ợc công b嘘 b荏i tác gi違
nào hay trong bất kì công trình nào khác.
Tác gi違
Nguy宇n Duy Hàm
ii
L云I C謂M 愛N
Lu壱n án Ti院n sƿ nƠy đ逢ợc th詠c hiện t衣i tr逢運ng Đ衣i h丑c Khoa h丑c và T詠 nhiên
ậ Đ衣i h丑c Qu嘘c gia Hà N瓜i v噂i s詠 h逢噂ng d磯n khoa h丑c của TS. Nguy宇n Th鵜 H欝ng
Minh, PGS.TS.Võ Đình B違y và TS. Lê Quang Minh. Nghiên cứu sinh xin bày tỏ
lòng bi院t 挨n sơu sắc t噂i thầy giáo, cô giáo h逢噂ng d磯n đư đ鵜nh h逢噂ng khoa h丑c, t壱n
tơm giúp đỡ và ch雨 b違o t雨 m雨 trong su嘘t quá trình nghiên cứu m噂i có th吋 hoàn thiện
b違n lu壱n án này. Nghiên cứu sinh luôn ghi nh噂 công lao d衣y dỗ, dìu dắt vào con
đ逢運ng khoa h丑c của c嘘 PGS.TS Hoàng Chí Thành ậ ng逢運i đư h逢噂ng d磯n Nghiên
cứu sinh 荏 giai đo衣n đầu làm nghiên cứu khoa h丑c. Nghiên cứu sinh xin chân thành
c違m 挨n các nhƠ khoa h丑c, tác gi違 các công trình nghiên cứu đư đ逢ợc trích d磯n trong
lu壱n án vì đơy lƠ ngu欝n tài liệu quý báu đ吋 Nghiên cứu sinh phát tri吋n và hoàn thiện
các công b嘘 của mình.
Nghiên cứu sinh xin chân thành c違m 挨n Ban Giám hiệu, lãnh đ衣o Khoa Toán
ậ C挨 ậ Tin h丑c, các thầy cô, gi違ng viên B瓜 môn Tin h丑c ậ Tr逢運ng Đ衣i h丑c Khoa
h丑c T詠 nhiên ậ Đ衣i h丑c Qu嘘c gia Hà N瓜i đư t衣o nh英ng điều kiện thu壱n lợi nhất đ吋
Nghiên cứu sinh hoƠn thƠnh ch逢挨ng trình h丑c t壱p và th詠c hiện hoàn tất lu壱n án của
mình.
Nghiên cứu sinh xin chân thành c違m 挨n Ban Giám hiệu Tr逢運ng Đ衣i h丑c An
ninh nhân dân, t壱p th吋 giáo viên B瓜 môn Toán ậ Tin h丑c Tr逢運ng Đ衣i h丑c An ninh
nhơn dơn n挨i Nghiên cứu sinh công tác và các b衣n bè thân thi院t đư luôn t衣o điều
kiện, đ瓜ng viên, khuy院n khích và hỗ trợ t嘘i đa đ吋 Nghiên cứu sinh hoàn thành b違n
lu壱n án này.
Cu嘘i cùng, con xin c違m 挨n B嘘 Mẹ, đặc biệt là Mẹ ậ ng逢運i đư luôn hy sinh tất
c違 vì s詠 nghiệp h丑c t壱p của các con, rất ti院c mẹ đư không đợi đ逢ợc đ院n ngày con
hoàn thành lu壱n án. Xin c違m 挨n gゥ。@ģ↓ョィ, ch鵜 gái vƠ các em đư luôn đ欝ng hành,
đ瓜ng viên, chia sẻ giúp duy trì nhiệt huy院t và ngh鵜 l詠c đ吋 đi đ院n hoàn thành b違n
lu壱n án này./
TP.Hồ Chí Minh, tháng 04 năm 2016
iii
M影C L影C
L云I CAM ĐOAN....................................................................................... I
L云I C謂M 愛N ......................................................................................... II
M影C L影C ........................................................................................ III
DANH M影C B謂NG................................................................................ VI
DANH M影C CÁC HÌNH VẼ, Đ唄 TH卯 ............................................... VIII
DANH M影C CÁC KÍ HI烏U VÀ CH頴 VI蔭T T溢T ................................ XI
MỞ Đ井U .......................................................................................... 1
CH姶愛NG 1. T蔚NG QUAN V陰 KHAI THÁC T一P M影C .................... 7
1.1. Bài toán khai thác t壱p m映c .................................................................................... 7
1.1.1. M瓜t s嘘 đ 鵜 nh nghƿa .................................................................................................. 7
1.1.2. Bài toán khai thác FI............................................................................................ 14
1.2. Các ph逢挨ng pháp khai thác FI ...........................................................................15
1.2.1. Sh逢挨ng pháp khai thác FI trên CSDL ngang ...................................................... 15
1.2.2. Ph逢挨ng pháp khai thác FI trên CSDL d丑c d詠a trên ITậtree................................ 17
1.3. M瓜t s嘘 ph逢挨ng pháp khai thác FWI vƠ FWUI trên QDB ............................20
1.3.1. Gi噂i thiệu ............................................................................................................. 20
1.3.2. Khai thác FWI ..................................................................................................... 21
1.3.3. Khai thác FWUI .................................................................................................. 24
1.3.4. Khai thác TRFIk ................................................................................................... 26
1.4. Khai thác FI tr ên CSDL có s詠 phân c医p các m映c ..........................................27
1.5. Ti院p c壱n bitậvector tr ong khai thác FI .............................................................30
1.6. K院t lu壱n ch逢挨ng .....................................................................................................32
CH姶愛NG 2. KHAI THÁCT一P M影C PH蔚 BI蔭N TRểN C愛 SỞ D頴
LI烏U S渦 L姶営NG .................................................................................. 34
iv
2.1. Thu壱t toán khai thác t壱p F WI ............................................................................34
2.1.1. Gi噂i thiệu ............................................................................................................. 34
2.1.2. Thu壱t toán tính giao của hai IWS ........................................................................ 38
2.1.3. Thu壱t toán khai thác FWI .................................................................................... 40
2.1.4. K院t qu違 th詠c nghiệm............................................................................................ 46
2.2. Thu壱t toán khai thác F WUI ................................................................................51
2.2.1. Cấu trúc Multi bit segment .................................................................................. 51
2.2.2. Thu壱 t toán xác đ 鵜nh giao MBiS ........................................................................... 53
2.2.3. Thu壱t toán khai thác FWUI d詠a trên MBiSậtree ................................................ 54
2.2.4. K院t qu違 th詠c nghiệm............................................................................................ 56
2.3. Thu壱t toán khai thác TRF WUIk .........................................................................61
2.3.1. M瓜t s嘘 khái niệm ................................................................................................. 61
2.3.2. Cấu trúc DTab ..................................................................................................... 62
2.3.3. Cấu trúc TRậtree ................................................................................................. 62
2.3.4. Thu壱t toán khai thác TRFWUIk sử dụng cấu trúc d英 liệu DTab ......................... 63
2.3.5. Thu壱t toán khai thác nhanh TRFWUIk d詠a trên cấu trúc DHeap........................ 66
2.3.6. K院t qu違 th詠c nghiệm............................................................................................ 70
2.4. K院t lu壱n ch逢挨ng .....................................................................................................72
CH姶愛NG 3. KHAI THÁC T一P M影C PH蔚 BI蔭N TRÊN C愛 SỞ D頴
LI烏U S渦 L姶営NG CÓ S衛 PHÂN C遺P CÁC M影C ............................... 74
3.1. Gi噂i thi羽u bài toán .................................................................................................74
3.2. Thu壱t toán khai thác F WUI tr ên HQDB ..........................................................78
3.2.1. Thu壱t toán xác đ鵜nh weight cho các mục cha ...................................................... 78
3.2.2. Thu壱t toán thêm mục cha vào CSDL .................................................................. 79
3.2.3. Thu壱t toán khai thác FWUI ................................................................................. 80
3.3. M瓜t s嘘 c違i ti院n nâng cao hi羽u qu違 khai thác F WUI tr ên HQDB.................84
3.3.1. Cấu trúc EDBV.................................................................................................... 84
3.3.2. Tính tidset nút cha từ tidset nút con .................................................................... 89
3.3.3. Ki吋m tra m嘘i quan hệ cha con đ嘘i v噂i các mục trong t壱p mục ........................... 91
v
3.3.4. Thu壱t toán khai thác nhanh FWUI trên HQDB ................................................... 92
3.4. K院t qu違 th詠c nghi羽m .............................................................................................93
3.4.1. CSDL th詠c nghiệm .............................................................................................. 93
3.4.2. K院t qu違 th詠c nghiệm............................................................................................ 94
3.5. K院t lu壱n ch逢挨ng .................................................................................................. 100
K蔭T LU一N VÀ H姶閏NG PHÁT TRI韻N ............................................. 101
1. Các k院t qu違 đ衣t đ逢嬰c ......................................................................................... 101
2. H逢噂ng phát tr i吋n................................................................................................. 102
DANH M影C CÔNG TRÌNH KHOA H窺C C曳A TÁC GI謂 LIÊN QUAN
Đ蔭N LU一N ÁN .................................................................................... 103
TÀI LI烏U THAM KH謂O..................................................................... 104
vi
DANH M影C B謂NG
B違ng 1.1. Các giao d鵜ch của BDB DB .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 8
B違ng 1.2. Các giao d鵜ch của HDB DB .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 9
B違ng 1.3. ID của các mục của HBD DB.NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 9
B違ng 1.4. Các giao d鵜ch của HDB DB bằng ID. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN10
B違ng 1.5. Giao d鵜ch của QDB DB. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN11
B違ng 1.6. Tr丑ng s嘘 các mục của QDB DB. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN11
B違ng 1.7. Các giao d鵜ch của WDB DB .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN12
B違ng 1.8. Tr丑ng s嘘 của các mục của WDB DB. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN13
B違ng 1.9. BDB DB . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN14
B違ng 1.10. BDB DB theo chiều d丑c. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN19
B違ng 1.11. Giá tr鵜 tw của CSDL DB trong ví dụ 1.4 .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN23
B違ng 1.12. twu các giao d鵜ch của DB trong ví dụ 1.4 . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN25
B違ng 1.13. HDB DB trong Ví dụ 1.2 sau khi thêm mục cha .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN30
B違ng 2.1. Bitậvector. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN35
B違ng 2.2. DBV của bitậvector trong ví dụ 2.1 . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN35
B違ng 2.3. IWS từ bitậvector trong ví dụ 2.1 . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN35
B違ng 2.4. Ch雨 s嘘 các bit 1 của IWS(X) .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN38
B違ng 2.5. M違ng MAP . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN40
B違ng 2.6. IWS của các mục .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN44
B違ng 2.7. Mô t違 CSDL th詠c nghiệm.NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN47
B違ng 2.8. Bitậvector v噂i 96 phần tử .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN51
B違ng 2.9. MBiS từ bitậvector 荏 B違ng 2.8 . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN52
B違ng 2.10. Topậrankậk. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 62
B違ng 3.1. Giao d鵜ch của HD .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN75
B違ng 3.2. Tr丑ng s嘘 . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN75
B違ng 3.3. Tên mặt hàng của các mục .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN75
vii
B違ng 3.4. Giao d鵜chcủa HD........................................................................................82
B違ng 3.5. Tr丑ng s嘘 ......................................................................................................82
B違ng 3.6. twu của các giao d鵜ch.................................................................................82
B違ng 3.7. T壱p 1–itemset phổ bi院n .............................................................................83
B違ng 3.8. M違ng MAP v噂i65.535 phần tử ................................................................86
B違ng 3.9. Bi吋u di宇n s嘘 nguyên K d逢噂i d衣ng b嘘n đo衣n, mỗ i đo 衣n là m瓜t word ..86
B違ng 3.10. Mô t違 CSDL ...............................................................................................93
B違ng 3.11. Các mức trên cây phân cấp .......................................................................94
B違ng 3.12. So sánh b瓜 nh噂 và s嘘 l逢ợng các mục .....................................................94
B違ng 3.13. Th詠c nghiệm trên CSDL SALEậFACTậSYNC ....................................95
B違ng 3.14. So sánh th運i gian ch衣y trên CSDL SALEậFACTậ1997 ......................99
viii
DANH M影C CÁC HÌNH VẼ, Đ唄 TH卯
Hình 1.1. Cây phân cấp Tr .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 9
Hình 1.2. Cây phân cấp Tr bi吋u di宇n theo ID . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN10
Hình 1.3. Thu壱t toán Apriori trong khai thác t壱p mục phổ bi院n . NNNNNNNNNNNNNNNNNNNNNNNN16
Hình 1.4. Thu壱t toán FPậGrowth d詠a trên cấu trúc FPậtree .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN17
Hình 1.5. Thu壱t toán Eclat d詠a trên cấu trúc ITậtree . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN18
Hình 1.6. Cây IT tree v噂i minsup = 0,5 của CSDL DB. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN19
Hình 2.1. Thu壱t toán xác đ鵜 nh giao hai IWS . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN39
Hình 2.2. Thu壱t toán tính ws của t壱p mục X .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN T
Hình 2.3. Thu壱t toán xây d詠ng cây IWSậtree . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN43
Hình 2.4. Thu壱t toán khai thác FWI d詠a trên IWSậtreeNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNTS@@
Hình 2.5. IWSậtree v噂i nút A(minws = 0,4) .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 44
Hình 2.6. IWSậtree v噂i nútA vàB(minws = 0,4) . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN45 @
Hình 2.7. IWSậtree v噂i minws = 0,4 .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN46
Hình 2.8. So sánh th運i gian ch衣y v噂i CSDL RETAIL. . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN47
Hình 2.9. So sánh th運i gian ch衣y v噂i CSDL BMSậPOS. . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN47
Hình 2.10. So sánh th運i gian ch衣y v噂i CSDL SALEậFACTậ1997. . NNNNNNNNNNNNNNNNNNN48
Hình 2.11. So sánh th運i gian ch衣y v噂i CSDL SALEậFACTậ1997+1998. .NNNNNNNNN48
Hình 2.12. So sánh th運i gian ch衣y v噂i CSDL SALEậFACTậSYNC. NNNNNNNNNNNNNNNNNN48
Hình 2.13. So sánh th運i gian ch衣y v噂i CSDL CONNECT. . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN48
Hình 2.14. So sánh th運i gian ch衣y v噂i CSDL ACCIDENTS. .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN49
Hình 2.15. So sánh b瓜 nh噂 sử dụng v噂i CSDL RETAIL. . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN49
Hình 2.16. So sánh b瓜 nh噂 sử dụng v噂i CSDL BMSậPOS. .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN49
Hình 2.17. So sánh b瓜 nh噂 sử dụng v噂i CSDL SALEậFACTậ1997. . NNNNNNNNNNNNNNNNN49
ix
no
Hình 2.18. So sánh b瓜 nh噂 sử dụng v噂i CSDL SALEậFACTậ1997+1998. . NNNNNNN50
Hình 2.19. So sánh b瓜 nh噂 sử dụng v噂i CSDL SALEậFACTậSYNC. .NNNNNNNNNNNNNNN50
Hình 2.20. So sánh b瓜 nh噂 sử dụng v噂i CSDL CONNECT.NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN50
Hình 2.21. So sánh b瓜 nh噂 sử dụng v噂i CSDL ACCIDENT. .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNN50
Hình 2.22. Thu壱t toán xác đ鵜nh giao hai MBiS . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN53
Hình 2.23. Thu壱t toán tính wus d詠a trên MBiS . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN54
Hình 2.24. Thu壱t toán khai thác FWUI d詠a trên MBiSậtree.NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN56
Hình 2.25. So sánh th運i gian ch衣y trên CSDL RETAIL. . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN57
Hình 2.26. So sánh th運i gian ch衣y trên CSDL BMSậPOS. . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN57
Hình 2.27. So sánh th運i gian ch衣y trên CSDL SALEậFACTậ1997. . NNNNNNNNNNNNNNNNNN57
Hình 2.28. So sánh th運i gian ch衣y trên CSDL SALEậFACTậ1997+1998...........58
Hình 2.29. So sánh th運i gian ch衣y trên CSDL SALEậFACTậSYNC. NNNNNNNNNNNNNNNNN58
Hình 2.30. So sánh th運i gian ch衣y trên CSDL CONNECT. .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN58
Hình 2.31. So sánh th運i gian ch衣y trên CSDL ACCIDENTS. .NNNNNNNNNNNNNNNNNNNNNNNNNNNNN58
Hình 2.32. So sánh b瓜 nh噂 sử dụng trên CSDL RETAIL. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN58
Hình 2.33. So sánh b瓜 nh噂 sử dụng trên CSDL BMSậPOS. .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN59
Hình 2.34. So sánh b瓜 nh噂 sử dụng trên CSDL SALEậFACTậ1997. . NNNNNNNNNNNNNNNN59
Hình 2.35. So sánh b瓜 nh噂 sử dụng trên CSDL SALEậFACTậ1997+1998. . NNNNNN59
Hình 2.36. So sánh b瓜 nh噂 sử dụng trên CSDL SALEậFACTậSYNC. .NNNNNNNNNNNNNN59
Hình 2.37. So sánh b瓜 nh噂 sử dụng trên CSDL CONNECT. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN60
Hình 2.38. So sánh b瓜 nh噂 sử dụng trên CSDL ACCIDENT. .NNNNNNNNNNNNNNNNNNNNNNNNNNNNN60
Hình 2.39. DTab v噂i k = 5 .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN62
Hình 2.40. Thu壱t toán t衣o TRậtree sử dụng DTab.NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN64
Hình 2.41. Thu壱t toán l丑c ra TRFWUIk .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN66
Hình 2.42. DHeap v噂i k = 5 v噂i CSDL trong ví dụ 1.4. NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN66
x
Hình 2.43. Thu壱t toán chèn m瓜t nút m噂i vào DHeap . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN68
Hình 2.44. Thu壱t toán t衣o TRậtree sử dụng DHeap .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN69
Hình 2.45. Thu壱t toán l丑c ra TRFWUIk . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN 70
Hình 2.46. So sánh th運i gian ch衣y trên CSDL MBSậPOS . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN70
Hình 2.47. So sánh th運i gian ch衣y trên CSDL RETAIL . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN71
Hình 2.48. So sánh th運i gian ch衣y trên CSDL CONNECT . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN71
Hình 2.49. So sánh th運i gian trên CSDL SALEậFACTậ1997 .NNNNNNNNNNNNNNNNNNNNNNNNNNNNN71
Hình 2.50. So sánh th運i gian trên CSDL SALEậFACTậ1997+1998. NNNNNNNNNNNNNNNNNN71
Hình 2.51. So sánh th運i gian trên CSDL SALEậFACTậSYNC . NNNNNNNNNNNNNNNNNNNNNNNNNN72
Hình 3.1. T壱p các cây phân cấp Tr . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN75
Hình 3.2. Thu壱t toán tính weight cho các mục cha.NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN79
Hình 3.3. Thu壱t toán thêm mục cha vào CSDL .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN80
Hình 3.4. Thu壱t toán khai thác FWUI từ HQDB .NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN81
Hình 3.5. Cây HITậtree v噂i CSDL HD và minwus = 0,6 . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN83
Hình 3.6. Sử dụng các phép AND và d鵜ch bit đ吋 tách các đo衣n hai byte .NNNNNNNNNN87
Hình 3.7. Thu壱t toán tính nhanh wus của các t壱p mục . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN89
Hình 3.8. Thu壱t toán xác đ鵜nh tidset các mục và tính twu của các giao d鵜ch . NNNN90
Hình 3.9. Thu壱t toán khai thác nhanh FWUI trên HQDB . NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN93
Hình 3.10. So sánh th運i gian trên CSDL SALEậFACTậ1997 .NNNNNNNNNNNNNNNNNNNNNNNNNNNNN97
Hình 3.11. So sánh th運i gian trên CSDLSALEậFACTậ1997+1998. NNNNNNNNNNNNNNNNNNN97
Hình 3.12. So sánh th運i gian trên CSDL SALEậFACTậSYNC . NNNNNNNNNNNNNNNNNNNNNNNNNN97
Hình 3.13. So sánh th運i gian trên CSDL SALEậFACTậ1997 .NNNNNNNNNNNNNNNNNNNNNNNNNNNNN98
Hình 3.14. So sánh th運i gian trên CSDL SALEậFACTậ1997+1998. NNNNNNNNNNNNNNNNNN98
Hình 3.15. So sánh th運i gian trên CSDL SALEậFACTậSYNC . NNNNNNNNNNNNNNNNNNNNNNNNNN98
xi
DANH M影C CÁC KÍ HI烏U VÀ CH頴 VI蔭T T溢T
Stt Từ vi院t t逸t Thu壱t ng英 ti院ng Anh Thu壱t ng英 ti院ng Vi羽t
1. CSDL Database C挨 s荏 d英 liệu
2. DBV Dynamic bitậvector Bit đ瓜ng
3. EDBV Extended dynamic bitậvector Bit đ瓜ng m荏 r瓜ng
4. EIWS Extendedinterval word segment Các đo衣n word m荏 r瓜ng
5. FI Frequent itemset T壱p mục phổ bi院n
6. FPậtree Frequent PatternậTree Cây FP
7. FWI Frequent weighted itemset T壱p mục phổ bi院n có
tr丑ng s嘘
8. FWUI Frequent weighted utility itemset T壱p mục phổ bi院n tr丑ng
s嘘 h英u ích
9. HQDB Hierachy quantitative database C挨 s荏 d英 liệu s嘘 l逢ợng có
s詠 phân cấp các mục
10. ITậtree Itemset tidsetậtree Cây ITậtree
11. IWS Interval word segment Các đo衣n word
12. MBiS Multi bit segment Các đo衣n bit 1 liên ti院p
13. BDB Binary database C挨 s荏 d英 liệu nh鵜 phân
14. HDB Hierachical database C挨 s荏 d英 liệu có phân cấp
các mục
15. WDB Weighted database C挨 s荏 d英 liệu tr丑ng s嘘
16. MByS Multi byte segment Các đo衣n byte
17. QDB Quantitative database C挨 s荏 d英 liệu s嘘 l逢ợng
18. DTab Dynamic table B違ng đ瓜ng
19. TRFIk Topậrankậk frequent itemset K nhóm t壱p mục phổ bi院n
có thứ h衣ng cao nhất
20. TRFWUIk
Topậrankậk frequent weight
utility itemset
K nhóm t壱p mục phổ bi院n
tr丑ng s嘘 h英u ích có thứ
h衣ng k cao nhất
xii
21. DHeap Dynamic heap Heap đ瓜ng
22. Item Item Mục
23. Itemset Set of items T壱p mục
24. LI Large integer S嘘 nguyên l噂n (tám byte)
1
MỞ Đ井U
S詠 phát tri吋n m衣nh m胤 của Công nghệ thông tin trong nh英ng năm gần
đơy đư thúc đ育y s詠 phát tri吋n chung của toàn xã h瓜i. V噂i các ứng dụng của
Công nghệ thông tin, con ng逢運i đư có nh英ng “trợ thủ” đắc l詠c hỗ trợ mình
trong cu瓜c s嘘ng cũng nh逢 trong công việc. Công nghệ thông tin ứng dụng
trong rất nhiều lƿnh v詠c đ逢a đ院n s詠 tiện lợi và k院t n嘘i m丑i ng逢運i trên khắp th院gi噂i l衣i v噂i nhau. Các ứng dụng nh逢 ngơn hƠng điện tử, th逢挨ng m衣i điện tử,
v.v… đư giúp cho con ng逢運i ti院t kiệm rất nhiều th運i gian và công sức so v噂i
thao tác thủ công tr逢噂c đơy. Trong nh英ng ứng dụng đó, thông tin, d英 liệu
th逢運ng xuyên đ逢ợc đ逢a vƠo đ吋 các hệ th嘘ng thông tin l逢u tr英 và xử lý. Bên
c衣nh đó, m瓜t s嘘 l逢ợng l噂n các d英 liệu đ逢ợc c壱p nh壱t hàng ngày và t詠 đ瓜ng
l逢u tr英 thông qua các ho衣t đ瓜ng của con ng逢運i khi t逢挨ng tác v噂i các hệ
th嘘ng thông tin, m衣ng xã h瓜i, v.v…@lƠm cho d英 liệu càng ngày càng l噂n
và phức t衣p. Ngoài việc phục vụ cho các hệ th嘘ng thông tin ho衣t đ瓜ng theo chức năng
sẵn có thì m瓜t vấn đề đặt ra là làm sao có th吋 khai thác hiệu qu違 các lo衣i d英
liệu l逢u tr英 trong hệ th嘘ng, tìm ra các tri thức quan tr丑ng, các quy lu壱t của
d英 liệu phục vụ cho việc đ逢a ra các d詠 đoán, d詠 báo nhằm hỗ trợ ra quy院t
đ鵜nh và các nhu cầu liên quan khác. Ví dụ từ c挨 s荏 d英 liệu (CSDL) của hệ
th嘘ng bán hàng trong siêu th鵜 có th吋 tìm ra đ逢ợc quy lu壱t (thói quen) mua
hàng của các khách hàng. Khách hƠng th逢運ng mua các mặt hàng nào cùng v噂i
nhau? hay đ瓜 tuổi từ “A” đ院n “B” th逢運ng 逢a thích mặt hàng nào?, v.v... Từ
đó đ吋 giúp cho việc tri吋n khai các k院 ho衣ch phát tri吋n s違n ph育m hiệu qu違 h挨n
của các hệ th嘘ng bán hƠng nh逢 trung tơm th逢挨ng m衣i, siêu th鵜, v.v…
Khai thác tập mục phổ biến trên CSDL nhị phân
Từ nh英ng yêu cầu thi院t th詠c đó, lƿnh v詠c khai thác d英 liệu đư vƠ đang đ逢ợc phát tri吋n m衣nh trong th運i gian gần đơy. M瓜t trong nh英ng bài toán quan
tr丑ng trong khai thác d英 liệu đ逢ợc quan tâm nghiên cứu là khai thác t壱p mục
2
phổ bi院n (frequent itemsets ậ FI), từ FI có th吋 khai thác lu壱t k院t hợp, đ逢a ra nh英ng d詠 báo, d詠 đoán vƠ tìm ra quy lu壱t của d英 liệu nhằm phục vụ cho các
nhu cầu khác nhau của con ng逢運i.
Thu壱t toán đầu tiên đ逢ợc bi院t t噂i trong khai thác FI là đ逢ợc đề xuất b荏i
Agrawal và các đ欝ng s詠 [2] năm 1993 sau đó chính Agrawal đề xuất thu壱t
toán Apriori [1] năm 1994. Tuy nhiên thu壱t toán này s噂m b瓜c l瓜 h衣n ch院 về
th運i gian xử lý do đ丑c CSDL nhiều lần. Ti院p theo Han và các đ欝ng s詠 đề xuất
thu壱t toán FPậGrowth [20] vƠ Grahne cùng các đ欝ng s詠 đề xuất FP-Growth*
[16] d詠a trên việc nén d英 liệu lên cây FPậtree (frequent patternậtree) v噂i ch雨 hai lần đ丑c CSDL, đơy lƠ thu壱t toán hiệu qu違 về b瓜 nh噂 sử dụng, song l衣i t嘘n
th運i gian cho duyệt cây FPậtree đ吋 khai thác các FI. Ti院p đ院n Zaki và các
đ欝ng s詠 đề xuất thu壱t toán Eclat [54] d詠a trên cấu trúc ITậtree (Itemset
Tidsetậtree) v噂i ch雨 m瓜t lần đ丑c d英 liệu đ吋 chuy吋n CSDL ngang thành CSDL
d丑c v噂i các mục và tidset (set of transactions ậ t壱p các giao d鵜ch) của chúng.
Tuy nhiên, Eclat có h衣n ch院 là cần nhiều b瓜 nh噂 đ吋 l逢u tr英 tidset, do đó gián
ti院p 違nh h逢荏ng đ院n hiệu qu違 về mặt th運i gian của thu壱t toán này. Ti院p theo
Zaki và các đ欝ng s詠 [55] đề xuất cấu trúc diffset, v噂i t逢 t逢荏ng sử dụng phần
bù của tidset, nh逢ng cách lƠm nƠy ch雨 th詠c s詠 có hiệu qu違 trên CSDL dày.
Tuy nhiên, trong th詠c t院 CSDL th逢a m噂i là lo衣i CSDL phổ bi院n.
M瓜t s嘘 phát tri吋n gần đơy v噂i cấu trúc Nậlist [8, 9,10,11,12, 15, 28, 45]
là các nghiên cứu d詠a trên ti院p c壱n FPậGrowth nhằm gi違m b瓜 nh噂 giúp gián
ti院p c違i ti院n th運i gian khai thác của h逢噂ng ti院p c壱n này. Tuy nhiên, các nghiên
cứu này m噂i đề c壱p trên CSDL nh鵜 phơn, ch逢a đ逢ợc nghiên cứu áp dụng trên
CSDL s嘘 l逢ợng, do đặc thù của CSDL s嘘 l逢ợng cần tính tr丑ng s嘘 các giao
d鵜ch của các t壱p mục đ吋 xác đ鵜nh đ瓜 hỗ trợ của các t壱p mục, mƠ đơy lƠ m瓜t
khó khăn của ti院p c壱n FPậGrowth.
Khai thác tập mục phổ biến trên CSDL số lượng
Các chủ đề nghiên cứu trên CSDL s嘘 l逢ợng nh逢 khai thác t壱p mục phổ
bi院n có tr丑ng s嘘 (frequent weighted itemsetậFWI) [7, 23, 24, 27, 34, 37, 39,
3
42, 47, 48, 49, 50, 51, 52, 53] hay khai thác t壱p mục phổ bi院n tr丑ng s嘘 h英u ích
(frequent weighted utility itemset ậFWUI) [22, 35, 44 ], hay t壱p mục h英u ích
cao - hight utility item set [14, 25, 26, 31] đư đ逢ợc quan tâm nghiên cứu nh逢.
Rakumar và đ欝ng s詠 [23] đề xuất bài toán khai thác lu壱t k院t hợp tr丑ng
s嘘 và m瓜t framework đ吋 khai thác FWI. Sau đó Tao và đ欝ng s詠 [39] đề xuất
thu壱t toán khai thác FWI d詠a trên ti院p c壱n Apriori v噂i hai đ瓜 đo tr丑ng s嘘 giao
d鵜ch (transaction weight – tw) vƠ đ瓜 hỗ trợ tr丑ng s嘘 (weight support ậ ws), tuy
nhiên nh逢 đư trình bƠy 荏 trên cách ti院p c壱n này rất t嘘n th運i gian do quét
CSDL nhiều lần. Ti院p đ院n, Vo và các đ欝ng s詠 [42] đề xuất cấu trúc WITậtree
trong khai thác FWI và MWITậtree [44] trong khai thác FWUI theo ti院p c壱n
Eclat [54] v噂i ch雨 m瓜t lần quét CSDL. H衣n ch院 của các ph逢挨ng pháp nƠy lƠ
cần nhiều b瓜 nh噂 l逢u tr英 tidset của các t壱p mục bằng các danh sách, làm t嘘n
th運i gian xác đ鵜nh giao tidset của các t壱p mục, do đó th運i gian khai thác ch逢a
đ逢ợc t嘘i 逢u.
M瓜t bài toán m噂i đ逢ợc đặt ra và phát tri吋n gần đơy trong khai thác FI là
khai thác k nhóm t壱p mục phổ bi院n có thứ h衣ng cao nhất (Topậrankậk
frequent itemsetậTRFIk) [8, 11, 15, 28] Khai thác FI thông th逢運ng không
ki吋m soát đ逢ợc s嘘 l逢ợng các t壱p mục phổ bi院n tìm thấy. Trong nhiều tr逢運ng
hợp ch雨 cần quan tơm đ院n m瓜t s嘘 l逢ợng nhất đ鵜nh các FI, hay s嘘 l逢ợng các
nhóm FI có đ瓜 hỗ trợ l噂n nhất. Khai thác TRFIk gi違i quy院t đ逢ợc đòi hỏi này.
Bài toán khai thác TRFIk đư đ逢ợc Deng gi噂i thiệu vƠo năm 2007 [8] v噂i thu壱t
toán FAE, sau đó đ逢ợc Fang đề xuất thu壱t toán VTK [15] đ吋 gi違i quy院t. Ti院p
theo, Deng [11] đề xuất thu壱t toán NTK d詠a trên cây PPCậtree (Preậorder
Postậorder Code tree) và cấu trúc Nậlist. Gần đơy, Le vƠ các đ欝ng s詠 [28] đề
xuất thu壱t toán iNTK là m瓜t c違i ti院n của NTK. iNTK sử dụng cấu trúc Nậlist
v噂i khái niệm subsume đ逢ợc gi噂i thiệu trong [45]. Đây đ逢ợc xem là thu壱t
toán hiệu qu違 nhất cho đ院n hiện nay, mặc dù iNTK t嘘n th運i gian cho việc t衣o
cây PPCậtree. Tuy nhiên, các nghiên cứu trên m噂i ch雨 đề c壱p đ院n CSDL nh鵜
4
phân, còn trên CSDL s嘘 l逢ợng bài toán khai thác Topậrankậk v磯n ch逢a đ逢ợc
quan tâm nghiên cứu.
Khai thác tập mục phổ biến trên CSDL có sự phân cấp các mục
Bên c衣nh CSDL nh鵜 phân, CSDL s嘘 l逢ợng, thì CSDL có s詠 phân cấp các
mục là lo衣i CSDL có nhiều trong ứng dụng th詠c t院. CSDL có s詠 phân cấp các
mục là CSDL có th吋 hiện m嘘i quan hệ khách quan gi英a các mục d逢噂i d衣ng
cây phân cấp, các mục có mặt trong CSDL là các mục 荏 nút lá của cây phân
cấp. Năm 1995, Han vƠ các đ欝ng s詠 [21] lần đầu tiên đề c壱p t噂i bài toán khai
thác FI trên CSDL có s詠 phân cấp các mục. Ti院p theo, Liu và các đ欝ng s詠
[32] đề xuất bài toán khai thác FI v噂i nhiều ng逢ỡng hỗ trợ trên CSDL có s詠
phân cấp các mục, theo đó, mỗi mục có m瓜t ng逢ỡng hỗ trợ riêng biệt. Từ đó
đ院n nay đư có nhiều nghiên cứu liên quan đ院n bài toán này [4, 5, 6, 30, 32, 40,
41] . Tuy nhiên các ti院p c壱n hiện nay đ嘘i v噂i khai thác trên CSDL có s詠 phân
cấp các mục còn có nhiều h衣n ch院, trong đó đặc biệt là t嘘n th運i gian và b瓜
nh噂 đ吋 thêm các mục cha trên cây phân cấp vào CSDL. Ngoài ra các nghiên
cứu hiện t衣i ch逢a đề c壱p trên CSDL s嘘 l逢ợng có s詠 phân cấp các mục.
Động lực nghiên cứu của luận án
Bài toán khai thác FI trên m瓜t s嘘 lo衣i CSDL nh逢 đư phơn tích 荏 trên mặc
dù đư đ逢ợc quan tâm nghiên cứu nhiều, nh逢ng cho đ院n hiện nay các ph逢挨ng
pháp khai thác FI trên các lo衣i CSDL s嘘 l逢ợng còn h衣n ch院 là t嘘n b瓜 nh噂 và
th運i gian xử lý ch逢a đ逢ợc t嘘i 逢u. Mặt khác, khai thác FI trên CSDL s嘘 l逢ợng
có s詠 phân cấp các mục hiện nay ch逢a đ逢ợc quan tâm nghiên cứu, mặc dù
đơy lƠ lo衣i CSDL có nhiều trong các ứng dụng th詠c t院. Đ欝ng th運i, CSDL s嘘
l逢ợng có s詠 phân cấp các mục là s詠 k院t hợp gi英a CSDL s嘘 l逢ợng và CSDL có
s詠 phân cấp các mục. Do đó, đề xuất thu壱t toán khai thác hiệu qu違 FI trên
CSDL s嘘 l逢ợng có s詠 phân cấp các mục có th吋 áp dụng đ吋 khai thác hiệu qu違
FItrên các CSDL s嘘 l逢ợng và CSDL có s詠 phân cấp các mục, giúp c違i thiện
th運i gian và b瓜 nh噂 trong khai thác FI trên các hệ th嘘ng thông minh.
5
Trên c挨 s荏 đó, Nghiên cứu sinh ch丑n đề tƠi “PHÁT TRI韻N M浦T S渦
THU一T TOÁN HI烏U QU謂 KHAI THÁC T一P M影C TRÊN CSDL S渦
L姶営NG CÓ S衛 PHÂN C遺P CÁC M影C” lƠm đề tài nghiên cứu cho lu壱n
án Ti院n sƿ của mình. Lu壱n án h逢噂ng đ院n các mục tiêu sau:
1. Đề xuất một số cấu trúc dữ liệu mới, thuật toán mới để nâng cao hiệu
quả khai thác FWI và FWUI biến trên CSDL số lượng. Từ đó áp dụng cho
khai thác tập mục phổ biến trên CSDL số lượng có sự phân cấp các mục.
2. Đề xuất thuật toán hiệu quả để khai thác k nhóm tập mục phổ biến trọng
số hữu ích có thứ hạng cao nhất trên CSDL số lượng.
3. Đề xuất cấu trúc dữ liệu, thuật toán hiệu quả để khai thác FWUI trên
CSDL số lượng có sự phân cấp các mục.
Từ các mục tiêu nghiên cứu trên, lu壱n án đ逢ợc cấu trúc bao g欝m ngoài
phần m荏 đầu và phần k院t lu壱n, n瓜i dung lu壱n án đ逢ợc trình bày trong ba
ch逢挨ng:
Chương 1: “Tổng quan về khai thác t壱p mục” trình bƠy các khái niệm về
khai thác FI các ph逢挨ng pháp khai thác FI, FWI, FWUI và TRFIk. Phân tích
逢u đi吋m và h衣n ch院 của các ph逢挨ng pháp nƠy đ欝ng th運i đề xuất h逢噂ng nghiên
cứu của lu壱n án.
Chương 2: “Khai thác t壱p mục phổ bi院n trên c挨 s荏 d英 liệu s嘘 l逢ợng”
trình bày m瓜t s嘘 cấu trúc d英 liệu m噂i đ吋 bi吋u di宇n tidset của các t壱p mục, trên
c挨 s荏 đó đề xuất các ph逢挨ng pháp hiệu qu違 đ吋 khai thác nhanh FWI, FWUI
trên CSDL s嘘 l逢ợng. Đ欝ng th運i, trong ch逢挨ng nƠy cũng đề xuất bài toán khai
thác k nhóm t壱p mục phổ bi院n tr丑ng s嘘 h英u ích có thứ h衣ng cao nhất
(TRFWUIk) trên CSDL s嘘 l逢ợng và thu壱t toán hiệu qu違 đ吋 gi違i quy院t bài toán
này v噂i hai cấu trúc DTab và DHeap.
Chương 3: “Khai thác t壱p mục phổ bi院n trên c挨 s荏 d英 liệu s嘘 l逢ợng có
s詠 phân cấp các mục” đề xuất thu壱t toán khai thác FWUI trên CSDL s嘘 l逢ợng
6
có s詠 phân cấp các mục. Trình bày m瓜t m荏 r瓜ng của cấu trúc d英 liệu trong
ch逢挨ng 2 vƠ m瓜t s嘘 đề xuất nhằm c違i ti院n thu壱t toán khai thác hiệu qu違 FWUI
trên CSDL s嘘 l逢ợng có s詠 phân cấp các mục.
7
CH姶愛NG 1. T蔚NG QUAN V陰 KHAI THÁC T一P M影C
1.1. Bài toán khai thác t壱p m映c
Mục đích của việc khai thác t壱p mục lƠ đ吋 xác đ鵜nh nhóm các mục (item)
có tần suất xuất hiện thỏa mãn m瓜t ng逢ỡng nƠo đó của ng逢運i sử dụng đ逢a
vào. Trong đó, bƠi toán khai thác t壱p mục phổ bi院n là m瓜t bài toán con của
bài toán khai thác t壱p mục v噂i việc khai thác các t壱p mục có tần suất xuất
hiện nhiều trong CSDL. Tần suất xuất hiện này thỏa mưn ng逢ỡng do ng逢運i sử
dụng đ逢a vƠo (đ逢ợc g丑i lƠ ng逢ỡng phổ bi院n). Từ các FI khai thác đ逢ợc có th吋
sinh ra t壱p lu壱t k院t hợp nhằm khám phá m嘘i quan hệ tiềm 育n, h英u ích gi英a các
mục trong CSDL, phục vụ các yêu cầu xuất phát từ đòi hỏi của th詠c t院 của
ng逢運i sử dụng. Có th吋 nói, từ khi đ逢ợc gi噂i thiệu đ院n nay, đư có khá nhiều
công trình nghiên cứu liên quan nhằm mục đích gi違i quy院t t嘘t bài toán này.
Và hiện nay, bài toán khai thác t壱p mục đang đ逢ợc ti院p tục nghiên cứu đ吋 tìm
ra các gi違i pháp hiệu qu違 h挨n.
N瓜i dung ch逢挨ng 1 s胤 trình bày m瓜t s嘘 đ鵜nh nghƿa vƠ khái niệm liên
quan đ院n bài toán khai thác t壱p mục trên m瓜t CSDL nh逢 CSDL nh鵜 phân,
CSDL có s詠 phân cấp các mục, CSDL s嘘 l逢ợng và m瓜t bi院n th吋 của CSDL s嘘
l逢ợng là CSDL tr丑ng s嘘. Đ欝ng th運i ch逢挨ng 1 gi噂i thiệu tổng quát m瓜t s嘘 ti院p
c壱n chính cho bài toán khai thác t壱p mục trên các lo衣i CSDL đó.
1.1.1. Một số định nghĩa
Định nghĩa 1.1. CSDL nhị phân (Binary DatabaseậBDB) là m瓜t b瓜
g欝m hai thành phần: T, I trong đó:
T = {t1, t2, ..., tm} là t壱p g欝m m giao d鵜ch của CSDL
I = {i1, i2, ..., in} là t壱p g欝m n mục trong CSDL
Trong đó 建賃 ={捲賃迭 , 捲賃鉄 , … , 捲賃�} trong đó 捲賃日 = ど hoặc な v噂i i = [1, …,
n].
8
Ví dụ 1.1: Cho CSDL DB v噂i t壱p các mục I = {A, B, C, D, E} và t壱p các
giao d鵜ch T đ逢ợc bi吋u di宇n b荏i B違ng 1.1 nh逢 sau:
B違ng 1.1. Các giao d鵜ch của BDB DB
Mục
Giao d鵜ch A B C D E
t1 1 1 0 1 1
t2 0 1 1 1 0
t3 1 1 0 1 1
t4 1 1 1 0 1
t5 1 1 1 1 1
t6 0 1 1 0 1
Các mục xuất hiện trong m瓜t giao d鵜ch của CSDL t逢挨ng ứng có giá tr鵜 1,
ng逢ợc l衣i có giá tr鵜 0. Ví dụ giao d鵜ch t1 = {1, 1, 0, 1, 1} có nghƿa các mục A,
B, D, E có trong giao d鵜ch, mục C không có trong giao d鵜ch.
CSDL nh鵜 phân là CSDL bi吋u di宇n s詠 xuất hiện hay không của các mục
trong các giao d鵜ch. Trong nhiều tr逢運ng hợp, các mục trong CSDL có m嘘i
quan hệ v噂i nhau đ逢ợc th吋 hiện qua các cây phân cấp, ví dụ "computer" là
mức khái quát của "Desktop" và "Notebook", hay "Printer" là mức khái quát
của "Laser priter", "Ink-Jet printer", v.v… Nh英ng CSDL có th吋 hiện m嘘i quan
hệ của các mục thông qua cây phân cấp đ逢ợc CSDL nh鵜 phân có s詠 phân cấp
các mục.
Định nghĩa 1.2. CSDL nhị phân có sự phân cấp các mục
(Hierarchical Database–HDB) là m瓜t b瓜 g欝m ba thành phần: T, I, Tr, trong
đó:
T = {t1, t2, ..., tm} là t壱p g欝m m giao d鵜ch của CSDL
I = {i1, i2, ..., in} là t壱p g欝m n mục trong CSDL
9
Trong đó, 建賃 ={捲賃迭 , 捲賃鉄 , … , 捲賃�} trong đó 捲賃日 = ど hoặc な v噂i i = [1, …,
n].
Tr là cây phân cấp th吋 hiện m嘘i quan hệ của các mục trong CSDL.
Cho HDB DB có t壱p các mục I = {Desktop, Dot–matrix printer, Ink–jet
printer, Laser printer, Notebook, Scanner}, các giao d鵜ch T đ逢ợc bi吋u di宇n
nh逢 B違ng 1.2 và cây phân cấp th吋 hiện quan hệ các mục nh逢 Hình 1.1.
Hình 1.1. Cây phân cấp Tr
Đ吋 đ挨n gi違n, ta gán các mục trên cây phân cấp Tr bằng các ID nh逢 B違ng 1.3:
B違ng 1.3. ID các mục của HBD DB
ID mục Tên mục
A Desktop
B Inkậjet Printer
C Laser Printer
D Notebook
B違ng 1.2. Các giao d鵜ch của HDB DB
Giao d鵜ch Mục
t1 Notebook, Laser printer
t2 Scanner, Dot–matrix printer
t3 Dot–matrix printer, Ink–jet printer
t4 Notebook, Dot–matrix printer, Laser printer
t5 Scanner
t6 Desktop
Ink ậ jet
Scanner
Laser
Non ậ impact Dot ậ matrix
Printer
Desktop Notebook
Computer
10
E Scanner
F Dotậmatrix Printer
G Nonậimpact
H Computer
K Printer
Từ ID đ逢ợc đ鵜nh nghƿa trong B違ng 1.3, các giao d鵜ch trong B違ng 1.2 và
cây phân cấp Tr đ逢ợc bi吋u di宇n l衣i nh逢 trong B違ng 1.4 và Hình 1.2.
B違ng 1.4. Các giao d鵜ch của HDB DB bằng ID
Giao d鵜ch mục
t1 D, C
t2 E, F
t3 F, B
t4 D, F, C
t5 E
t6 A
Hình 1.2. Cây phân cấp Tr bi吋u di宇n theo ID
T壱p J = {G, K, H} là t壱p các mục cha của cây phân cấp không xuất hiện
trong các giao d鵜ch của CSDL DB. Tuy nhiên chúng có vai trò nhất đ鵜nh, th吋
hiện m嘘i quan hệ của các mục trong CSDL DB. Do đó, khi khai thác FI trên
CSDL phân cấp đòi hỏi ph違i khai thác c違 t壱p các mục trên cây phân cấp bao
g欝m (I 姦 J).
CSDL nh鵜 phân là CSDL th吋 hiện s詠 có mặt hay không của mục trong
các giao d鵜ch của CSDL mƠ không quan tơm đ院n giá tr鵜 (tr丑ng s嘘, lợi ích, s嘘
B
E
C
G F
K
A D
H
11
l逢ợng, v.v…) của các mục trong các giao d鵜ch. Trong nhiều ứng dụng th詠c t院
nh逢 CSDL bán hƠng trong siêu th鵜, CSDL đ挨n thu嘘c, v.v… mỗi mục trên mỗi
đ挨n hƠng th逢運ng kèm theo s嘘 l逢ợng và giá tr鵜 của chúng. Các CSDL d衣ng
nƠy đ逢ợc g丑i là CSDL s嘘 l逢ợng.
Định nghĩa 1.3. CSDL số lượng (Quantitative DatabaseậQDB) là m瓜t
b瓜 ba thành phần: T, I, W, trong đó:
T = {t1, t2, ..., tm} là t壱p g欝m m giao d鵜ch của CSDL
I = {i1, i2, ..., in} là t壱p g欝m n mục trong CSDL
W = {w1, w2, …, wn} là t壱p g欝m n tr丑ng s嘘 của các mục t逢挨ng ứng trong
t壱p I
Trong đó, tk = {捲賃迭, 捲賃鉄 , …,捲賃�} là giao d鵜ch thứ k, 捲賃日 là s嘘 nguyên ch雨
s嘘 l逢ợng của mục thứ i trong giao d鵜ch, k = 1.. m.
Ví dụ 1.2: Cho QDB DB v噂i t壱p các mục I = {A, B, C, D, E}, các giao
d鵜ch T đ逢ợc bi吋u di宇n trong B違ng 1.5, tr丑ng s嘘 các mục nh逢 trong b違ng 1.6.
B違ng 1.5. Giao d鵜ch của QDB BD
Giao d鵜ch A B C D E 建怠 1 1 0 4 1 建態 0 1 3 0 1 建戴 2 1 0 3 2 建替 3 1 1 0 1 建泰 1 2 2 1 3 建滞 0 1 1 1 0
B違ng 1.6. Tr丑ng s嘘 các mục trong QDB DB
Mục Tr丑ng s嘘
A 0,6
B 0,1
12
Theo B違ng 1.5, QDB DB có sáu giao d鵜ch {t1, t2, t3, t4, t5, t6}, ví dụ giao
d鵜ch 建怠 = {1, 1, 0, 4, 1} có nghƿa lƠ trong giao d鵜ch 建怠 có m瓜t mục A, m瓜t mục
B, b嘘n mục D, m瓜t mục E, không có mục C.
Trong nhiều ứng d詠ng th詠c t院, CSDL s嘘 l逢ợng có th吋 không quan tâm
đ院n s嘘 l逢ợng của các mục trong mỗi giao d鵜ch, mà ch雨 quan tơm đ院n tr丑ng s嘘
của chúng. Ví dụ CSDL vi ph衣m giao thông, ng逢運i ta ch雨 quan tơm lƠ ng逢運i
vi ph衣m lỗi gì và mức tiền ph衣t t逢挨ng ứng cho từng lỗi ấy, hay CSDL khám
bệnh, ng逢運i ta quan tơm đ院n bệnh nhân có nh英ng triệu chứng gì mức đ瓜 nặng
nhẹ (tr丑ng s嘘) của từng triệu chứng ấy, v.v… Các CSDL đó đ逢ợc g丑i là
CSDL có tr丑ng s嘘 hay CSDL tr丑ng s嘘 ậ m瓜t bi院n th吋 của CSDL s嘘 l逢ợng v噂i
s嘘 l逢ợng của các mục xuất hiện trong CSDL là 1.
Định nghĩa 1.4. CSDL trọng số (Weighted database –WDB) là m瓜t b瓜
g欝m ba thành phần: T, I, W, trong đó:
T = {t1, t2, ..., tm} là t壱p g欝m m giao d鵜ch của CSDL
I = {i1, i2,.., in} là t壱p g欝m n mục trong CSDL
W = {w1, w2, …, wn} là t壱p g欝m n tr丑ng s嘘 của các mục t逢挨ng ứng trong
t壱p I
Ví dụ 1.3: Cho WDB DB v噂i t壱p mục I = {A, B, C, D, E}, các giao d鵜ch
đ逢ợc bi吋u di宇n trong B違ng 1.7, tr丑ng s嘘 các mục đ逢ợc th吋 hiện trong B違ng
1.8.
C 0,3
D 0,9
E 0,2
B違ng 1.7. Các giao d鵜ch của WDB DB
Giao d鵜ch Mục 建怠 A, B, D, E 建態 B, C, E 建戴 A, B, D, E
13
B違ng 1.8. Tr丑ng s嘘 của các mục của WDB DB
mục Tr丑ng s嘘
A 0,6
B 0,1
C 0,3
D 0,9
E 0,2
Định nghĩa 1.5. T壱p g欝m nhiều mục của m瓜t CSDL đ逢ợc g丑i là t壱p
mục (itemset). X là t壱p mục n院u X I trong đó I là t壱p tất c違 các mục trong
CSDL và |X| >1.
Định nghĩa 1.6. Tidset của t壱p mục X là t壱p hợp các giao d鵜ch chứa X.
Nh逢 v壱y:
tidset(X) = {t|t ∈ T , X ∈ t}
Định nghĩa 1.7. Đ瓜 hỗ trợ của m瓜t t壱p mục (support) là tần suất xuất
hiện của t壱p mục đó trong CSDL vƠ đ逢ợc xác đ鵜nh theo công thức sau:
support(X) = 賃陳 × などど%
Trong đó:
- k là s嘘 giao d鵜ch chứa X
- m là s嘘 l逢ợng giao d鵜ch của CSDL
Ví dụ 1.4: D詠a vào CSDL B違ng 1.1, ta cósupport(A) = 替滞 × などど% ≈
66,7% (A xuất hiện trong b嘘n giao d鵜ch t1, t3, t4, t5). T逢挨ng t詠 ta có
support(AB) = 戴滞 × などど% = 50% (AB xuất hiện trong ba giao d鵜ch t1, t3, t5).
建替 A, B, C, E 建泰 A, B, C, D, E 建滞 B, C, D
14
Đ吋 khai thác FI, ng逢運i ta đ逢a vƠo m瓜t ng逢ỡng, g丑i lƠ ng逢ỡng phổ bi院n
(minsup), t壱p mục phổ bi院n theo ng逢ỡng minsup là t壱p mục có support 半 minsup. Nh逢 v壱y t壱p mục phổ bi院n ậ FI đ逢ợc xác đ鵜nh nh逢 sau:
FI = {X I| support(X) 半 minsup}
Định nghĩa 1.8. FI g欝m k phần tử theo ng逢ỡng minsup cho tr逢噂c g丑i là
k–itemset.
Định nghĩa 1.9. Rank của m瓜t t壱p mục X, kí hiệu là RX là thứ h衣ng của
t壱p mục đó theo đ瓜 phổ bi院n (support) của t壱p mục đó.
RX = |{Y I | support(Y) 半 support(X)}|
Định nghĩa 1.10. Cho m瓜t giá tr鵜 nguyên k và CSDL DB, TRFIk của
CSDL DB đ逢ợc xác đ鵜nh nh逢 sau:
TRFIk = {X I| Rx 判 k}
1.1.2. Bài toán khai thác FI
Bài toán khai thác FI trên CSDL DB cho tr逢噂c là bài toán tìm tất c違 các
t壱p mục của CSDL có tần s嘘 xuất hiện trong các giao d鵜ch thỏa mưn ng逢ỡng
minsup do ng逢運i dùng xác đ鵜nh tr逢噂c. Các t壱p mục đ逢ợc khai thác theo
ng逢ỡng minsup đ逢ợc g丑i là FI của DB.
Ví dụ 1.5: Xét CSDL trong B違ng 1.1. g欝m sáu giao d鵜ch đ逢ợc mô t違 l衣i
nh逢 B違ng 1.9:
B違ng 1.9. BDB DB
Giao d鵜ch Các mục trong các giao d鵜ch
t1 A, B, D, E
t2 B, C, E
t3 A, B, D, E
t4 A, B, C, E
t5 A, B, C, D, E
t6 B, C, D
15
FI của DB v噂i minsup = 0,5 nh逢 sau:
FI = {A, B, C, D, E, AB, AD, AE, BC, BD, BE, DE, ABD, ABE, BDE,
ABDE}
Bài toán khai thác FI là bài toán tìm tất c違 các t壱p mục của CSDL có tấn
suất xuất hiện thõa mưn ng逢ỡng minsup cho tr逢噂c.
1.2. Các ph逢挨ng pháp khai thác FI
1.2.1. Phương pháp khai thác FI trên CSDL ngang
CSDL ngang đ逢ợc hi吋u là CSDL giao d鵜ch đ逢ợc mô t違 nh逢 các đ鵜nh
nghƿa về các lo衣i CSDL đư nêu 荏 trên (Đ鵜nh nghƿa 1.1, đ院n Đ鵜nh nghƿa 1.4).
Có hai ph逢挨ng pháp chính khai thác FI trên CSDL ngang đó lƠ Apriori vƠ FP-
Growth.
1.2.1.1. Thuật toán Apriori
Thu壱t toán Apriori [1] do Agrawal vƠ các đ欝ng s詠 đề xuất năm 1994.
Thu壱t toán này khai thác FI bằng cách quét CSDL nhiều lần. Ý t逢荏ng nh逢
sau: Thu壱t toán quét CSDL lần thứ nhất đ吋 sinh ra t壱p1–itemset phổ bi院n, từ
t壱p 1-itemset phổ bi院n quét CSDL lần thứ hai đ吋 sinh ra t壱p 2–itemset phổ
bi院n, v.v… cho đ院n khi không tìm đ逢ợc bất kì t壱p phổ bi院n nào n英a thì dừng.
Thu壱t toán Apriori d詠a trên tính chất đ逢ợc đặt tên là tính chất Apriori (còn
đ逢ợc g丑i là tính chất bao đóng gi違m) nh逢 sau:
Cho hai t壱p mục X và Y của CSDL DB:
N院u X Y ⟹ support(X) 半 support(Y)
Do đó:
N院u support(X) < minsup ⟹Y X, support(Y) < minsup
N院u (Y) > minsup ⟹X Y, support(X)> minsup
D詠a vào tính chất trên, thu壱t toán Apriori đ逢ợc mô t違 nh逢 trong Hình
1.3:
16
Thuật toán 1.1: Apriori
Input: CSDL DB và một ngưỡng minsup
Output: Các FI của DB thỏa minsup
1. Quét CSDL để tính support của các 1 – itemset, so sánh support với
minsup để lọc ra FI gồm 1–itemset (L1) thỏa mãn minsup
2. Quét CSDL và sử dụng Lk–1 để sinh ra ứng viên k–itemset. Loại bỏ các k–itemset không phải là FI thu được k–itemset phổ biến (Lk).
3. Lặp lại bước に cho đến khi không tạo ra ứng viên nào nữa. FI khai thác được = L1 姦 L2...
Hình 1.3. Thuật toán Apriori trong khai thác FI
Ngày nay các CSDL th詠c t院 có xu h逢噂ng tăng rất nhanh về dung l逢ợng,
b荏i v壱y việc quét CSDL nhiều lần là không kh違 thi do rất t嘘n th運i gian. Đ欝ng
th運i việc sinh ra t壱p các ứng viên 荏 mỗi b逢噂c quét CSDL cần l逢ợng b瓜 nh噂
l噂n đ吋 l逢u tr英. Do đó thu壱t toán Apriori ít đ逢ợc quan tâm nghiên cứu và sử
dụng trong th運i gian gần đơy.
1.2.1.2. Thuật toán FP–Growth với cấu trúc FP–tree
Thu壱t toán FPậGrowth [21] do Han và đ欝ng s詠 đề xuất năm 2000 đư
phần nào gi違i quy院t các h衣n ch院 của Apriori về c違 th運i gian xử lý và b瓜 nh噂
sử dụng. Ti院p sau đó Grahne vƠ đ欝ng s詠 đề xuất FPậGrowth* [17]. Đơy là
m瓜t ti院p c壱n thú v鵜 v噂i việc sử dụng cấu trúc cây FPậtree (Frequent Parternậtree) đ吋 nén toàn b瓜 CSDL v噂i mỗi nút trên FPậtree là các mục của CSDL
ban đầu. Đ欝ng th運i, thu壱t toán FPậGrowth ch雨 cần hai lần quét CSDL, gi違m
đáng k吋 th運i gian so v噂i thu壱t toán Apriori, đặc biệt lƠ trong các tr逢運ng hợp
CSDL l噂n.
B逢噂c đầu tiên, thu壱t toán FPậGrowth quét CSDL và sắp x院p l衣i tr壱t t詠
các mục theo thứ t詠 tần suất xuất hiện gi違m dần trên mỗi giao d鵜ch. B逢噂c thứ
2, FPậGrowth quét CSDL và nén toàn b瓜 d英 liệu lên cây FPậtree. B逢噂c thứ 3,
duyệt FPậtree đ吋 khai thác các FI:
17
Thu壱t toán FPậGrowth đ逢ợc mô t違 nh逢 trong Hình 1.4
Thuật toán 1.2: FP–Growth
Input: CSDL DB và một ngưỡng minsup
Output: Các FI của DB thỏa minsup
1. Quét toàn bộ CSDL DB và tính support của từng danh mục. Sau đó xác định những danh mục có support lớn hơn minsup và sắp xếp giảm dần
theo support vào trong f_list.
2. Tạo cây FP–tree chỉ có một nút gốc được gán nhãn là ╉null╊, ký hiệu root.
a. Với mỗi giao dịch trong DB được thể hiện như sau: chọn và sắp xếp
những danh mục phổ biến theo thứ tự giảm dần trong f_list.
b. Quét CSDL và nén chúng lên cây FP–tree
3. Duyệt cây FP–tree để khai thác các FI thỏa mãn minsup
Hình 1.4. Thuật toán FP–Growth khai thác FI dựa trên cấu trúc FP–tree
H衣n ch院 của thu壱t toán này là quét CSDL đ院n hai lần và đặc biệt là t嘘n
th運i gian trong duyệt cây FPậtree đ吋 xây d詠ng các FI.
1.2.2. Phương pháp khai thác FI trên CSDL dọc dựa trên IT–tree
Thu壱t toán Eclat [54] đ逢ợc đề xuất b荏i Zaki sử dụng cấu trúc ITậtree
(Tidset Itemsetậtree) đ吋 l逢u tidset của các t壱p mục trên mỗi nút vƠ đ逢a ra khái niệm l噂p t逢挨ng đ逢挨ng đ吋 k院t n嘘i các t壱p mục trong cùng m瓜t l噂p t逢挨ng
đ逢挨ng đ吋 t衣o ra t壱p mục m噂i. Thu壱t toán Eclat v噂i ch雨 m瓜t lần quét CSDL là
m瓜t ti院p c壱n hiện đ衣i, ti院t kiệm th運i gian xử lý và có th吋 áp dụng khai thác FI
trên nhiều lo衣i CSDL m瓜t cách hiệu qu違. Trong đó, nhiều nghiên cứu đư m荏
r瓜ng và bi院n đổi cấu trúc ITậtree m瓜t cách phù hợp đ吋 áp dụng khai thác FI
trên nhiều lo衣i CSDL khác nh逢 khai thác trên CSDL tr丑ng s嘘 [42] CSDL s嘘
l逢ợng [44] và CSDL có s詠 phân cấp các mục [41] m瓜t cách hiệu qu違 h挨n.
Ti院p c壱n Eclat sử dụng tính chất Apriori đ吋 cắt nhánh các t壱p mục không
thỏa ng逢ỡng phổ bi院n. Do v壱y các t壱p mục trên ITậtree là các FI thỏa mãn
ng逢ỡng minsup.
Nh逢 v壱y n院u t壱p mục X không thỏa mưn ng逢ỡng minsup thì các t壱p mục
là phủ của X cũng không thỏa ng逢ỡng minsup, do v壱y ta không cần xét nhánh
18
do t壱p mục X t衣o ra. Áp dụng tính chất bao đóng gi違m trên cây ITậtree s胤 cắt
nhánh đ逢ợc tất c違 các nhánh chắc chắn không chứa FI và các t壱p mục trên
ITậtree chính là FI cần khai thác.
1.2.2.1. Cấu trúc IT–tree
ITậtree có cấu trúc g欝m nhiều mức, mỗi mức g欝m nhiều l噂p t逢挨ng
đ逢挨ng. Mỗi l噂p t逢挨ng đ逢挨ng g欝m các nút có cùng nút cha 荏 mức trên. Mỗi
nút g欝m hai thành phần:
- T壱p mục X
- Tidset của X
Mỗi l噂p t逢挨ng đ逢挨ng đ逢ợc t衣o ra từ m瓜t mục cha 荏 mức trên k院t hợp lần
l逢ợt các nút phía sau nó trong cùng m瓜t l噂p t逢挨ng đ逢挨ng. Do v壱y các nút
trong cùng m瓜t l噂p t逢挨ng đ逢挨ng có cùng s嘘 l逢ợng phần tử ch雨 khác nhau
phần tử cu嘘i cùng. M瓜t nút m噂i đ逢ợc chèn vào ITậtree n院u đ瓜 hỗ trợ
(support) của nó thỏa mãn ng逢ỡng phổ bi院n (minsup) do đó các nút trên ITậ
tree sau khi xây d詠ng xong chính là các FI cần khai thác.
1.2.2.2. Thuật toán Eclat
Thuật toán 1.3: Eclat
Input: CSDL DB và một ngưỡng minsup
Output: Các FI của DB thỏa minsup
Method: Eclat
1. Quét toàn bộ CSDL DB xác định tidset của các mục. Chọn các mục có
support thỏa ngưỡng minsup (1–itemset).
2. Chèn 1–itemset vào mức 1 của IT–tree
3. Mỗi nút ở mức k – 1 kết hợp với các nút có cùng nút chavới nó tạo ra các
nút ở mức k nếu support của các nút này thỏa ngưỡng minsup.
4. Lặp lại bước 3 cho đến khi không thể tạo thêm nút mới trên IT–tree.
5. Duyệt cây IT–tree để lấy ra các FI (Tất cả các nút trên IT–tree là FI).
Hình 1.5. Thuật toán Eclat dựa trên cấu trúc IT–tree
Ví dụ 1.6: Cho CSDL BDB DB trong ví dụ 1.1 và minsup = 0,5:
19
Bước 1: Quét CSDL chuy吋n sang CSDL theo chiều d丑c nh逢 trong B違ng
1.10
B違ng 1.10. BDB DB theo chiều d丑c
Mục Tidset
A 1, 3, 4, 5
B 1, 2, 3, 4, 5, 6
C 2, 4, 5, 6
D 1, 3, 5, 6
E 1, 2, 3, 4, 5
Bước 2 và 3: ITậtree đ逢ợc xây d詠ng v噂i ng逢ỡng minsup = 0,5.
Hình 1.6. Cây IT tree v噂i minsup = 0,5 của CSDL DB
Đầu tiên, t壱p 1–itemset đ逢ợc đ逢a vƠo mức đầu tiên của cây ITậtree. Sau
đó, các cặp nút trong cùng m瓜t l噂p t逢挨ng đ逢挨ng đ逢ợc k院t n嘘i v噂i nhau đ吋 t衣o
ra các t壱p mục m噂i 荏 mức ti院p theo n院u t壱p mục m噂i thỏa mưn ng逢ỡng
minsup nh逢 trên Hình 1.4.
Bước 4: Các FI khai thác đ逢ợc: {A, B, C, D, E, AB, AB, AE, BC, BD,
BE, DE, ABD, ABE, ADE, BCE, BDE, ABDE}
Thu壱t toán Eclat v噂i cấu trúc ITậtree lƠ h逢噂ng ti院p c壱n t嘘t nhất đ逢ợc bi院t
đ院n hiện nay v噂i ch雨 m瓜t lần quét CSDL. Tuy nhiên, ph逢挨ng pháp nƠy có
A1,3,4,5
AB1,3,4,5
ABD1,3,5 ABE1,3,4,5
AD1,3,5 AE1,3,4,5
ADE1,3,5 BCE2,4,5 BDE1,3,5
BC2,4,5,6 BD1,3,5,6
B1,2,3,4,5,6 C2,4,5,6 D1,3,5,6 E1,2,3,4,5
BE1,2,3,4,5 DE1,3,5
{}
ABDE1,3,5
20
nh逢ợc đi吋m l噂n là t嘘n b瓜 nh噂 sử dụng đ吋 l逢u tidset của các t壱p mục, do mỗi
giao d鵜ch chứa t壱p mục cần m瓜t ô nh噂. Đ欝ng th運i b瓜 nh噂 t衣m cần thi院t trong
quá trình tính toán trung gian cũng rất l噂n. Các h衣n ch院 này làm cho th運i gian
tính toán của thu壱t toán Eclat ch逢a đ逢ợc t嘘i 逢u. Do đó, nghiên cứu đề xuất
các ph逢挨ng pháp m噂i nhằm t嘘i 逢u b瓜 nh噂 đ吋 nâng cao hiệu qu違 khai thác FI
trên các lo衣i CSDL theo h逢噂ng ti院p c壱n này có tính th詠c t院 cao. Đơy cũng
chính là m瓜t trong nh英ng mục tiêu nghiên cứu của lu壱n án.
1.3. M瓜t s嘘 ph逢挨ng pháp khai thác FWI và FWUI trên QDB
1.3.1. Giới thiệu
QDB theo Đ鵜nh nghƿa 1.3 là CSDL đ逢ợc xuất hiện nhiều trong th詠c t院,
ví dụ CSDL giao d鵜ch bán hàng trong các siêu th鵜, CSDL các đ挨n thu嘘c,
v.v…Trong đó các giao d鵜ch có s嘘 l逢ợng các mặt hàng cùng lợi nhu壱n (lợi
ích) của các mặt hàng đó. Do đó, bài toán khai thác FWI và FWUI từ QDB
đ逢ợc nhiều ng逢運i quan tâm nghiên cứu.
M瓜t d衣ng rút g丑n của QDB là CSDL tr丑ng s嘘 (Đ鵜nh nghƿa 1.4) v噂i các
giao d鵜ch nh鵜 phân, tức là các mục xuất hiện trong giao d鵜ch là 1, các mục
không xuất hiện là 0, mỗi mục có m瓜t tr丑ng s嘘 xác đ鵜nh. CSDL tr丑ng s嘘 cũng
là CSDL đ逢ợc sử dụng nhiều trong các ứng dụng th詠c t院. V噂i CSDL tr丑ng s嘘,
ng逢運i ta không quan tơm đ院n s嘘 l逢ợng mỗi mục trong các giao d鵜ch, mà quan
tơm đ院n mục đó có xuất hiện hay không và tr丑ng s嘘 của nó. Ví dụ CSDL tai
n衣n giao thông, v噂i mỗi vụ tai n衣n giao thông ng逢運i ta ch雨 cần bi院t có lỗi A,
lỗi B và mức ph衣t của các lỗi ấy, hay CSDL bệnh nhân, mỗi ng逢運i bệnh có
m瓜t s嘘 triệu chứng và các triệu chứng đó nặng hay nhẹ, 荏 mức đ瓜 nào, v.v…
Do đó, bên c衣nh khai thác FWUI trên QDB thì khai thác FWI trên CSDL
tr丑ng s嘘 cũng đ逢ợc quan tâm khai thác từ nhiều nhóm nghiên cứu về khai
thác d英 liệu trên th院 gi噂i [7, 23, 24, 27, 34, 37, 39, 42, 47, 48, 49, 50, 51, 52,
53].
21
1.3.2. Khai thác FWI
1.3.2.1. Giới thiệu
Bài toán khai thác FWI đ逢ợc đề xuất lần đầu tiên b荏i Ramkumar và
đ欝ng s詠 [37], trong nghiên cứu này, các tác gi違 đư đ逢a ra mô hình mô t違 khái
niệm về lu壱t k院t hợp có tr丑ng s嘘, trong đó đề xuất thu壱t toán WIS đ吋 khai thác
FWI. Sau đó, việc nghiên cứu bài toán khai thác FWI đ逢ợc chia làm hai
h逢噂ng ti院p c壱n riêng biệt d詠a theo các cách thức xác đ鵜nh đ瓜 đo hỗ trợ tr丑ng
s嘘 (weight support ậ ws) khác nhau.
H逢噂ng ti院p c壱n thứ nhất kh荏i đầu b荏i Yun vƠ đ欝ng s詠 [50] sử dụng m瓜t
hƠm trung bình đ吋 tính tr丑ng s嘘 của t壱p mục, từ đó tính ws của t壱p mục bằng
tích của tr丑ng s嘘 và đ瓜 hỗ trợ của t壱p mục đó. Do tính tr丑ng s嘘 của t壱p mục
bằng hàm trung bình nên m瓜t t壱p mục có th吋 nh壱n giá tr鵜 tr丑ng s嘘 l噂n h挨n khi
thêm vào m瓜t mục m噂i, điều nƠy không đ違m b違o tính chất bao đóng gi違m. Đ吋
gi違i quy院t vấn đề, Yun & Leggett [51] đề xuất thu壱t toán WSPAN sử dụng
mô hình maximumậweightedậupperậbound, trong đó các mục đ逢ợc gán các
giá tr鵜 khác nhau trong ph衣m vi weight ậ range đ逢ợc đ鵜nh nghƿa tr逢噂c. Sau
đó, Lan vƠ các đ欝ng s詠 [24] (t逢挨ng t詠 [52, 53]) đề xuất ti院p mô hình sequenc
ậmaximumậweight đ吋 rút g丑n l衣i upperậbound của các ws nhằm gi違m b噂t s嘘
l逢ợng ứng viên trong quá trình khai thác. Cách ti院p c壱n theo h逢噂ng này xem
xét song song tr丑ng s嘘 và đ瓜 hỗ trợ của t壱p mục trong quá trình khai thác.
Thêm n英a, theo cách tính ws của cách ti院p c壱n này, m瓜t t壱p mục xuất hiện
trong giao d鵜ch ti cũng t逢挨ng đ逢挨ng v噂i xuất hiện trong giao d鵜ch tj, điều này
không ph違n ánh đ逢ợc tầm quan tr丑ng khác nhau của các giao d鵜ch trong
CSDL th詠c t院.
H逢噂ng ti院p c壱n thứ hai đ逢ợc đề xuất lần đầu tiên b荏i Tao vƠ đ欝ng s詠
[39] d詠a trên đ瓜 đo tr丑ng s嘘 giao d鵜ch (transaction weight ậ tw) đ逢ợc tính
bằng trung bình c瓜ng các tr丑ng s嘘 của các mục có trong giao d鵜ch và giá tr鵜
ws của m瓜t t壱p mục đ逢ợc xác đ鵜nh bằng t雨 s嘘 gi英a tổng các tw của các giao
22
d鵜ch có chứa t壱p mục đó và cho tổng tw của tất c違 giao d鵜ch. Theo cách ti院p
c壱n này thì giá tr鵜 ws của t壱p mục vừa ph違n ánh đ逢ợc mức đ瓜 xuất hiện của
t壱p mục trong các giao d鵜ch, vừa th吋 hiện đ逢ợc mức đ瓜 quan tr丑ng khác nhau
của các giao d鵜ch. M瓜t 逢u đi吋m n英a của cách ti院p c壱n này là thỏa mãn tính
chất bao đóng gi違m m瓜t cách t詠 nhiên. Tuy nhiên, thu壱t toán do Tao vƠ đ欝ng
s詠 đề xuất d詠a vào việc sinh ứng viên theo ph逢挨ng pháp Apriori nên cần đ丑c
CSDL nhiều lần, d磯n đ院n t嘘n th運i gian xử lý và c違 b瓜 nh噂 l逢u tr英. Ti院p theo,
Le [27] (Vo vƠ các đ欝ng s詠 [42]) đề xuất cách thức l逢u tr英 tr丑ng s嘘 trên cây
WITậtree, m瓜t m荏 r瓜ng của cây ITậtree. Do ch雨 cần quét CSDL m瓜t lần,
cùng v噂i áp dụng chi院n l逢ợc Diffset đ吋 khai thác FWI trên cây WITậtree, nên
ph逢挨ng pháp nƠy tỏ ra hiệu qu違 h挨n ph逢挨ng pháp theo h逢噂ng ti院p c壱n Apriori
tr逢噂c đó. H衣n ch院 của ph逢挨ng pháp nƠy lƠ 荏 chỗ t嘘n b瓜 nh噂 đ吋 l逢u tr英 tidset,
đó cũng lƠ nguyên nhơn lƠm cho th運i gian xử lý ch逢a đ逢ợc t嘘i 逢u.
Theo h逢噂ng ti院p c壱n thứ hai này, Tao [39] vƠ các đ欝ng s詠 đ逢a ra công thức tính các đ衣i l逢ợng tr丑ng s嘘 giao d鵜ch (transaction weight ậ tw) vƠ đ瓜 hỗ
trợ tr丑ng s嘘 (weight support ậ ws), trong đó tw của m瓜t giao d鵜ch là trung
bình c瓜ng của tr丑ng s嘘 của các mục trong giao d鵜ch đó, còn ws của m瓜t t壱p
mục lƠ th逢挨ng của tổng tw của các giao d鵜ch ch逢a t壱p mục đó v噂i tổng tw của
CSDL. Cách tính này đ逢ợc th吋 hiện qua hai đ鵜nh nghƿa 1.15 vƠ 1.16 nh逢 sau:
Định nghĩa 1.11. Tr丑ng s嘘 giao d鵜ch của các giao d鵜ch tw đ逢ợc xác
đ鵜nh nh逢 công thức 1.1:
tw(tk) =
∑ 栂日乳日乳(�入)鎚岫痛入岻 (1.1)
V噂i:
ậ tw(建賃) là tr丑ng s嘘 giao d鵜ch của 建賃
ậ 拳沈乳 là tr丑ng s嘘 của mục �珍 trong 建賃
ậ 嫌岫建賃岻 là s嘘 các mục có mặt trong 建賃
Từ WDB DB trong ví dụ 1.4, ta có giá tr鵜 tw của các giao d鵜ch đ逢ợc tính
nh逢 trong B違ng 1.11:
23
B違ng 1.11. 鵜 ủ ụ
Giao dịch tw
t1 tw(t1) = 岫待,滞 + 待,怠 + 待,苔 + 待,態岻替 = 0,45
t2 tw(t2) = 岫待,怠 + 待,戴 + 待,態岻戴 = 0,20
t3 tw(t3) = 岫待,滞 + 待,怠 + 待,苔 + 待,態岻替 = 0,45
t4 tw(t4) = 岫待,滞 + 待,怠 + 待,戴 + 待,態岻替 = 0,30
t5 tw(t5) = 岫待,滞 + 待,怠 + 待,戴 + 待,苔 + 待,態岻泰 = 0,42
t6 tw(t6) = 岫待,怠 + 待,戴 + 待,苔岻戴 = 0,43
Sum_tw 0,45+0,20+0,45+0,30+0,42+0,43 = 2,25
Định nghĩa 1.12. Đ瓜 hỗ trợ tr丑ng s嘘 (ws) của t壱p mục X đ逢ợc tính
nh逢 công thức 1.2: 拳嫌岫隙岻 = ∑ 建拳岫建賃岻痛入∈痛岫�岻嫌憲兼_建拳 (1.2)
Trong đó, t(X) là t壱p các giao d鵜ch chứa t壱p mục X và sum_tw = ∑ 建拳岫建賃岻陳賃=怠
V噂i t壱p mục BD trong DB 荏 ví dụ 1.4 đ逢ợc xác đ鵜nh nh逢 sau:
ws(BD) = 痛栂岫痛迭岻+痛栂岫痛典岻+痛栂岫痛天岻+痛栂岫痛展岻痛栂岫痛迭岻+ 痛栂岫痛鉄岻+ 痛栂岫痛典岻+ 痛栂岫痛填岻+痛栂岫痛天岻+痛栂岫痛展岻 = 待,替泰+待,替泰+待,替態+待,替戴態,態泰 ≈0,78.
T壱p mục X đ逢ợc g丑i là phổ bi院n n院u và ch雨 n院u ws(X) 半 minws, v噂i
minws đ逢ợc xác đ鵜nh b荏i ng逢運i sử dụng. Bài toán khai thác FWI trên CSDL
tr丑ng s嘘 là bài toán tìm tất c違 các t壱p mục X (X I) thỏa mãn ws(X) 半 minws.
1.3.2.2. Một số nghiên cứu liên quan
Ramkumar vƠ các đ欝ng s詠 [37] đ逢a ra bƠi toán khai thác FWI trên CSDL tr丑ng s嘘. Sau đó, Tao vƠ đ欝ng s詠 [39] đề xuất mô hình gi違i quy院t bài
toán này d詠a trên hai đ衣i l逢ợng tr丑ng s嘘 giao d鵜ch (tw) vƠ đ瓜 hỗ trợ tr丑ng
s嘘 (ws) v噂i công thức tính nh逢 trên trong đ鵜nh nghƿa 1.15 vƠ đ鵜nh nghƿa 1.16.
24
Le và các đ欝ng s詠 [27] (Vo vƠ các đ欝ng s詠 [42]) đề xuất cấu trúc WITậ
tree là m瓜t m荏 r瓜ng của ITậtree [54]. Mỗi nút trên WITậtree g欝m ba thành
phần ws, itemset, tidset. S詠 k院t n嘘i hai nút trong cùng m瓜t l噂p t逢挨ng đ逢挨ng
荏 mức k t衣o ra nút m噂i 荏 mức k+1, n院u ws của t壱p mục m噂i t衣o thành này
thỏa ng逢ỡng minws, t壱p mục 荏 nút m噂i chính là hợp từ hai t壱p mục của hai
nút phía trên và tidset m噂i chính là giao của hai tidset của hai nút đó. Sau khi
xây d詠ng xong WITậtree, các t壱p mục trên cây chính là tất c違 các FWI thỏa
ng逢ỡng khai thác minws.
Vo vƠ các đ欝ng s詠 [43] sử dụng cấu trúc d英 liệu WITậtree vƠ đề xuất
thu壱t toán khai thác FWI v噂i m瓜t c違i ti院n m噂i lƠ đ逢a ra ph逢挨ng pháp xác đ鵜nh
nhanh ws của các t壱p mục m噂i t衣o thành từ ws của các t壱p mục tr逢噂c đó vƠ áp
dụng kƿ thu壱t diffset [55] thay cho tidset của t壱p mục trong quá trình tính
toán. C違i ti院n này của nhóm tác gi違 đư c違i ti院n rõ rệt về mặt th運i gian so v噂i
các gi違i pháp tr逢噂c đó. Tuy nhiên các ti院p c壱n theo diffset không hiệu qu違
trên các CSDL th逢a.
1.3.3. Khai thác FWUI
Bên c衣nh khai thác FWI, bài toán khai thác FWUI trên QDB cũng nh壱n
đ逢ợc m瓜t s嘘 quan tâm nghiên cứu [22, 35, 44 ]. Việc khai thác FWUI liên
quan đ院n việc xác đ鵜nh tr丑ng s嘘 h英u ích của các giao d鵜ch twu (transaction
weight utility) vƠ đ瓜 hỗ trợ tr丑ng s嘘 h英u ích wus (weight utility support).
Khan và đ欝ng s詠 [22] đư đ逢a ra đ鵜nh nghƿa hai đ衣i l逢ợng là tr丑ng s嘘 h英u
ích của giao d鵜ch ậ transaction weight utility (twu) vƠ đ瓜 hỗ trợ tr丑ng s嘘 h英u
ích ậ weight utility support (wus) đ逢ợc bi吋u di宇n l衣i nh逢 sau:
Định nghĩa 1.13. Tr丑ng s嘘 h英u ích của các giao d鵜ch twu đ逢ợc đ鵜nh
nghƿa nh逢 công thức 1.3:
V噂i:
twu(建賃) = ∑ 岫栂日 × 掴入日岻�日=迭鎚岫痛入岻 (1.3)
25
– twu(建賃) là tr丑ng s嘘 h英u ích của 建賃;
ậ 捲賃日 là s嘘 l逢ợng mục thứ i trong 建賃, i {1,…, n};
ậ 拳沈 là tr丑ng s嘘 của mục i;
ậ s(建賃岻 là tổng các mục trong 建賃
B違ng 1.12 là giá tr鵜 twu của các giao d鵜ch của CSDL DB đ逢ợc cho trong
ví dụ 1.4
B違ng 1.12. twu các giao d鵜ch của DB trong ví dụ 1.4
Tid Twu
t1 ど,は + ど,な + ど,ひ × ね + ど,にば = 1,13
t2 ど,な + ど,ぬ × ぬ + ど,にの = 0,4
t3 ど,は × に + ど,な + ど,ひ × ぬ + ど,に × にぱ = 1,1
t4 ど,は × ぬ + ど,な + ど,ぬ + ど,には = 0,6
t5 ど,は + ど,な × に + ど,ぬ × に + ど,ひ + ど,に × ぬひ = 0,58
t6 ど,な + ど,ぬ + ど,ひぬ = 0,43
Sum_twu 1,13 + 0,4 + 1,1 + 0,6 + 0,58 + 0,43 = 4,24
Định nghĩa 1.14. Đ瓜 hỗ trợ tr丑ng s嘘 h英u ích của các t壱p mục wus đ逢ợc
đ鵜nh nghƿa nh逢 công thức 1.4:
wus(X) = ∑ 痛栂通岫痛入岻�入�岫�岻聴通陳 _痛栂通 (1.4)
Trong đó, T(X) là t壱p các giao d鵜ch chứa t壱p mục X và sum_twu = ∑ 建拳憲岫建賃 岻陳賃=怠 .
M瓜t t壱p mục X đ逢ợc g丑i là phổ bi院n v噂i ng逢ỡng minwus (do ng逢運i sử
dụng đ逢a vƠo) n院u wus(X) 半 minwus. BƠi toán xác đ鵜nh t壱p mục phổ bi院n trên
QDB lƠ bƠi toán xác đ鵜nh tất c違 các t壱p X sao cho X I và wus(X) 半 minwus.
26
Các t壱p mục phổ bi院n xác đ鵜nh theo minwus thỏa ng逢ỡng tính chất bao
đóng gi違m, điều nƠy đư đ逢ợc chứng minh trong [44].
Khan và các đ欝ng s詠 [22] đề xuất bài toán khai thác FWUI bằng việc đề
xuất hai đ瓜 đo trong khai thác FWUI là tr丑ng s嘘 h英u ích của giao d鵜ch ậ twu
vƠ đ瓜 hỗ trợ tr丑ng s嘘 h英u ích ậ wus, đ欝ng th運i đề xuất m瓜t “framework” trong
việc gi違i quy院t bài toán khai thác FWUI trên QDB d詠a trên hai đ瓜 đo nƠy.
Vo và các đ欝ng s詠 đề xuất m瓜t cấu trúc d英 liệu có tên MWITậtree [45]
là m瓜t m荏 r瓜ng khác của ITậtree đ吋 khai thác FWUI v噂i ch雨 m瓜t lần quét d英
liệu d詠a trên tính chất bao đóng gi違m của wus. Cấu trúc này g欝m nhiều nút
mỗi nút g欝m ba thành phần {X, t(X), wus(X)} trong đó X là t壱p mục, t(X) là
tidset(X) và wus(X) lƠ đ瓜 hỗ trợ tr丑ng s嘘 h英u ích của X. Tuy nhiên ti院p c壱n
này có h衣n ch院 là b瓜 nh噂 sử dụng l逢u tr英 tidset của các t壱p mục còn rất l噂n,
điều này 違nh h逢荏ng đ院n th運i gian khai thác FWUI.
1.3.4. Khai thác TRFIk
Khai thác FI là bài toán tr丑ng tâm trong khai thác d英 liệu đ逢ợc nhiều
nhóm nghiên cứu quan tâm. Tuy nhiên, trong nhiều tr逢運ng hợp khai thác FI
v噂i ng逢ỡng cho tr逢噂c không đáp ứng đ逢ợc các đòi hỏi th詠c t院. Ví dụ, v噂i
ng逢ỡng minsup đ逢a vƠo thì s嘘 l逢ợng các FI khai thác đ逢ợc quá nhiều hoặc
quá ít, nghƿa lƠ ng逢運i sử dụng không ki吋m soát đ逢ợc s嘘 l逢ợng các FI tìm
thấy, v.v… Trong nh英ng tr逢運ng hợp nh逢 v壱y khai thác TRFIk s胤 gi違i quy院t
đ逢ợc yêu cầu trên.
Fang và các đ欝ng s詠 [15] đư đề xuất thu壱t toán VTK đ吋 khai thác TRFIk
trên CSDL nh鵜 phân. Thu壱t toán VTK khai thác d英 liệu theo chiều d丑c g欝m
hai b逢噂c. Đầu tiên VTK quét CSDL đ吋 chuy吋n d英 liệu sang chiều d丑c và tính
support của các 1–itemset vƠ đ逢a chúng vƠo TRFIậTable theo thứ t詠 gi違m
dần của support. Mỗi thành phần trên TRFIậTable g欝m hai thành phần, m瓜t
là count (support của t壱p mục) hai là danh sách các t壱p mục có cùng support.
27
B逢噂c thứ 2, các l–itemset trong TRFIậTable đ逢ợc k院t n嘘i v噂i nhau đ吋 t衣o ra
các (l+1)–itemset, các t壱p mục m噂i đ逢ợc t衣o thành s胤 đ逢ợc chèn vào TRFIậTable n院u support của nó l噂n h挨n giá tr鵜 t衣i ch雨 s嘘 k của TRFIậTable (phần tử
cu嘘i của TRFIậTable). Thu壱t toán k院t thúc khi không còn t壱p mục nƠo đ逢ợc
c壱p nh壱t vào TRFIậTable. VTK là m瓜t thu壱t toán khá hiệu qu違 song nó có
m瓜t s嘘 đi吋m y院u nh逢:
- B瓜 nh噂 sử dụng l噂n trong l逢u tr英 tidset của các t壱p mục.
- T嘘n nhiều th運i gian th詠c hiện k院t n嘘i các l–itemset đ吋 t衣o ra (l+1)–
itemset từ TRFIậTable, do ph違i xét 系陳態 cặp v噂i m là s嘘 l逢ợng các t壱p
mục trong TRFIậTable.
Deng và các đ欝ng s詠 [8,10] đư đề xuất thu壱t toán NTK d詠a trên cấu trúc
Nậlist đ吋 ti院t kiệm b瓜 nh噂, gi違m th運i gian tính toán trong khai thác TRFIk.
NTK t衣o ra cây PPCậtree gi嘘ng v噂i cây FPậtree. D詠a trên PPCậtree sinh ra
Nậlist của các 1–itemset, từ đó khai thác TRFIk. NTK tuy đư c違i thiện đ逢ợc
b瓜 nh噂 l逢u tr英 tidset của các t壱p mục, song v磯n t嘘n th運i gian nhiều do quét
CSDL hai lần đ吋 t衣o ra PPCậtree.
Le cùng các đ欝ng s詠 [28] đ逢a ra m瓜t c違i ti院n của NTK v噂i thu壱t toán
iNTK d詠a trên cấu trúc Nậlist giúp gi違m th運i gian trong tính giao các Nậlist
của các t壱p mục. Tuy nhiên cũng nh逢 NTK thu壱t toán iNTK v磯n ph違i quét
CSDL hai lần đ吋 t衣o cây PPCậtree và t嘘n th運i gian duyệt cơy đ吋 t衣o Nậlist
của 1–itemset.
Hai thu壱t toán NTK và iNTK c違i ti院n đ逢ợc b瓜 nh噂 nh逢ng v磯n gặp ph違i
h衣n ch院 thứ hai của VTK đã nêu 荏 trên.
1.4. Khai thác FI trên CSDL có s詠 phân c医p các m映c
CSDL có s詠 phân cấp các mục theo Đ鵜nh nghƿa 1.2 là CSDL có nhiều
trong các ứng dụng th詠c t院, trong đó các mục trong CSDL có m嘘i quan hệ
nhất đ鵜nh v噂i nhau thông qua cây phân cấp, các mục t衣i nút lá là các mục có
28
mặt trong các giao d鵜ch trong CSDL, các mục 荏 nút cha trên cây phân cấp là
các mục 荏 mức khái quát của các mục nút lá.
M瓜t s嘘 đ鵜nh nghƿa liên quan đ院n khai thác FI trên CSDL có s詠 phân cấp
các mục đ逢ợc trình bày trong [32]:
Định nghĩa 1.15. M瓜t giao d鵜ch t = tid, X v噂i X ∈ (I 姦 J), X = (Y 姦 Z)
là t壱p các mục có trong giao d鵜ch (Y) và các mục cha của Y trên cây phân cấp
(Z).
Định nghĩa 1.16. T壱p X là FI thì support(X) 半 minsup, đ欝ng th運i trong
X không t欝n t衣i m瓜t cặp mục nào có quan hệ cha con, nh逢 v壱y X là phổ bi院n
khi: { �憲喧喧剣堅建岫隙岻 半 兼�券嫌憲喧 ∀隙沈 , 隙珍 ∈ 隙, 隙沈 ≠ �欠堅�券建岫隙珍 岻
Có hai ti院p c壱n khai thác FI trên CSDL có s詠 phân cấp các mục, đó lƠ
khai thác v噂i m瓜t ng逢ỡng phổ bi院n và khai thác v噂i nhiều ng逢ỡng phổ bi院n.
Các ng逢ỡng phổ bi院n khác nhau đ嘘i v噂i mỗi cấp trên cây phân cấp.
Khai thác với một ngưỡng phổ biến
Khai thác FI trên CSDL phân cấp sử dụng cùng m瓜t ng逢ỡng phổ bi院n là
việc coi các mục cha trên cấp phân cấp và các mục con (là các mục trong
CSDL) có cùng m瓜t vai trò nh逢 nhau, đ逢ợc khai thác v噂i cùng m瓜t ng逢ỡng
phổ bi院n. M瓜t s嘘 nghiên cứu theo ti院p c壱n nƠy nh逢 [21]. Tuy nhiên h逢噂ng
ti院p c壱n này s噂m b瓜c l瓜 nhiều h衣n ch院 do các mục tuy ít xuất hiện nh逢ng l衣i
quan tr丑ng và cần đ逢ợc quan tơm h挨n các mục khác. Đ欝ng th運i các mục cha
trên cây phân cấp s胤 có tần suất xuất hiện nhiều h挨n sau khi đ逢ợc thêm vào
CSDL đ吋 khai thác. Do đó, khi khai thác nhiều kh違 năng s胤 ít xuất hiện các
mục con trong các t壱p mục phổ bi院n tìm thấy. Do v壱y cần đặt ra nhiều
ng逢ỡng phổ bi院n đ吋 có th吋 l丑c đ逢ợc các t壱p mục phổ bi院n đáp ứng đ逢ợc nhu
cầu của ng逢運i sử dụng.
29
Khai thác với nhiều ngưỡng phổ biến
Khai thác t壱p mục phổ bi院n trên CSDL phân cấp mà mỗi mục đ逢ợc xác
đ鵜nh m瓜t ng逢ỡng hỗ trợ khác nhau, điều này giúp cho việc khai thác các lu壱t
k院t hợp thú v鵜 từ các mục ít xuất hiện trong CSDL nh逢ng l衣i có tầm quan
tr丑ng cao h挨n các mục khác. M瓜t s嘘 nghiên cứu theo h逢噂ng này [32, 40] đư
cho rằng việc khai thác t壱p mục phổ bi院n v噂i nhiều ng逢ỡng hỗ trợ là cần thi院t
và cần đ逢ợc đầu t逢 nghiên cứu h挨n n英a trên nhiều lo衣i CSDL khác nhau.
Định nghĩa 1.17. ms(x) lƠ đ瓜 hỗ trợ nhỏ nhất của mục x ∈ (I 姦 J), m瓜t
t壱p mục X = {x1, x2, …, xk} v噂i xi ∈ (I 姦 J) và 1 判 i 判 � đ逢ợc g丑i là phổ bi院n
n院u:
support(X) 半 兼�券掴日∈�ms(xi)
Liu và các đ欝ng s詠 [32] đề xuất bài toán khai thác t壱p mục phổ bi院n trên
CSDL có s詠 phân cấp các mục v噂i nhiều ng逢ỡng hỗ trợ theo ti院p c壱n Apriori.
Ti院p đ院n, Tseng và đ欝ng s詠 [40] đ逢a ra các công thức xác đ鵜nh các ng逢ỡng
hỗ trợ t嘘i thi吋u đ嘘i v噂i các mục, từ đó đ逢a ra công thức tính ng逢ỡng hỗ trợ
cho các t壱p mục. Sau đó sử dụng ph逢挨ng pháp sinh ứng viên theo h逢噂ng ti院p
c壱n Apriori đ吋 khai thác FI. Ph逢挨ng pháp nƠy có đặc đi吋m ng逢運i sử dụng t詠
đ逢a ra các ng逢ỡng t嘘i thi吋u cho các mục theo quan đi吋m cá nhơn đ吋 có th吋
khai thác đ逢ợc các lu壱t thú v鵜, tuy nhiên chính điều nƠy cũng lƠm khó khăn
cho ng逢運i sử dụng khi s嘘 l逢ợng các mục cần quan tâm l噂n. Đ欝ng th運i cách
ti院p c壱n Apriori t嘘n nhiều th運i gian khai thác do quét CSDL nhiều lần.
K院 thừa các công thức từ [40], Vo và các đ欝ng s詠 [41] sử dụng h逢噂ng
ti院p c壱n theo thu壱t toán Eclat [54] v噂i việc đề xuất cấu trúc d英 liệu GITậtree
là m瓜t m荏 r瓜ng của ITậtree. Tuy nhiên, h衣n ch院 của nghiên cứu này là việc
thêm các mục cha trên cây phân cấp vào các giao d鵜ch của CSDL, thao tác
nƠy lƠm tăng b瓜 nh噂 l逢u tr英 CSDL d磯n đ院n tăng th運i gian khai thác do ph違i
phai thác trên CSDL l噂n h挨n.
30
V噂i HDB DB trong Ví dụ 1.2, sau khi thêm các mục cha vào các giao
d鵜ch có chứa nút con, CSDL m噂i s胤 g欝m các giao d鵜ch nh逢 B違ng 1.13:
B違ng 1.13. HDB DB trong Ví dụ 1.2 sau khi thêm mục cha
Giao d鵜ch Mục
t1 D, C, G, K, H
t2 E, F, K
t3 F, B, G, K
t4 D, F, C, G, K, H
t5 E
t6 A, H
Nh逢 v壱y, HDB DB bao g欝m sáu giao d鵜ch tổng c瓜ng m逢運i m瓜t mục nh逢
trong B違ng 1.4, sau khi thêm các mục cha vào các giao d鵜ch có chứa mục con
ta có CSDL DB m噂i g欝m sáu giao d鵜ch vƠ hai m逢挨i m嘘t mục nh逢 trong B違ng
1.13.
1.5. Ti院p c壱n bitậvector trong khai thác FI
Các thu壱t toán khai thác FI d詠a trên ITậtree trên CSDL nh鵜 phân hay các
m荏 r瓜ng của ITậtree đ吋 khai thác trên các lo衣i CSDL khác nh逢: cấu trúc
GITậtree khai thác FI trên CSDL nh鵜 phân có s詠 phân cấp các mục, cấu trúc
WITậtree dùng trong khai thác FWI trên CSDL tr丑ng s嘘, hay MWITậtree
dùng trong khai thác FWUI trên CSDL s嘘 l逢ợng, v.v… cho thấy hiệu qu違 cao
về mặt th運i gian do ch雨 cần duyệt d英 liệu m瓜t lần. Tuy nhiên nh逢 đư phân tích
荏 trên, b瓜 nh噂 sử dụng l逢u tidset của các t壱p mục là rất l噂n.
Đư có m瓜t s嘘 nghiên cứu nhằm t嘘i 逢u hóa b瓜 nh噂 đ吋 nâng cao hiệu qu違
của các ph逢挨ng pháp d詠a trên ITậtree. M瓜t trong s嘘 đó lƠ thu壱t toán dEclat
[56] do Zaki và đ欝ng s詠 đề xuất v噂i cấu trúc diffset thay vì tidset. Tuy nhiên
diffset ch雨 có hiệu qu違 trên CSDL dày (là CSDL có nhiều mục trên mỗi giao
d鵜ch). Trong khi th詠c t院 CSDL th逢a l衣i rất phổ bi院n.
31
M瓜t h逢噂ng hiệu qu違 là sử dụng ph逢挨ng pháp bitậvector do ti院t kiệm
đ逢ợc b瓜 nh噂 l逢u tr英 tidset (mỗi giao d鵜ch ch雨 cần m瓜t bit), đ欝ng th運i t壱n dụng
đ逢ợc t嘘c đ瓜 cao của các phép toán trên bit (bitwise).
Đầu tiên, Luoie & Liu [33] đề xuất sử dụng bitậvector trong bi吋u di宇u
tidset của các t壱p mục và sau đó Dong & Han [13] (Song vƠ các đ欝ng s詠 [39])
cụ th吋 hóa bằng đề xuất cấu trúc BitTable, v噂i việc sử dụng bitậvector bằng
m違ng các byte đ吋 ghi nh壱n các giao d鵜ch của t壱p mục. BitTable ch雨 cần sử
dụng (|脹|腿 +1) byte cho mỗi t壱p mục đ吋 l逢u tidset (T là s嘘 l逢ợng giao d鵜ch trong
CSDL), đ欝ng th運i sử dụng phép toán AND trên bit đ吋 tính giao hai tidset
nhằm xác đ鵜nh tidset của t壱p mục m噂i từ hai t壱p mục đư có.
Tuy nhiên, v噂i CSDL có s嘘 l逢ợng các giao d鵜ch l噂n, việc bi吋u di宇n trên
BitTable có th吋 ch逢a hiệu qu違 b荏i BitTable chứa nhiều byte có giá tr鵜 = 0, (do
BitTable của mỗi t壱p mục sử dụng l逢ợng b瓜 nh噂 bằng nhau là (|脹|腿 +1) byte).
Điều nƠy lƠm cho ph逢挨ng pháp sử dụng BitTable trong bi吋u di宇n tidset lãng
phí b瓜 nh噂, đ欝ng th運i d磯n đ院n t嘘n th運i gian trong xác đ鵜nh giao của hai
BitTable.
Ti院p đ院n, Vo và các đ欝ng s詠 đề xuất cấu trúc DBV (Dynamic bitậvector)
[43] là m瓜t c違i ti院n của BitTable v噂i việc lo衣i bỏ các byte có giá tr鵜 bằng 0 荏
đầu và cu嘘i trong bi吋u di宇n tidset trên m違ng byte.
Tuy nhiên DBV còn chứa nhiều byte có giá tr鵜 bằng 0 “荏 gi英a”, điều này
làm cho cấu trúc DBV ch逢a th壱t s詠 t嘘i 逢u về b瓜 nh噂, do đó t嘘n th運i gian khi
tính toán trên các byte có giá tr鵜 bằng 0. Đặc biệt trên các CSDL th逢a, s嘘
l逢ợng các byte có giá tr鵜 bằng 0 rất l噂n.
Ngoài ra, cấu trúc BitTable và DBV sử dụng m違ng byte, nghƿa là mỗi
phần tử có đ瓜 l噂n m瓜t byte. Do đó, s嘘 l逢ợng các phần tử của mỗi DBV là rất
l噂n, nhất là trên các CSDL có s嘘 l逢ợng giao d鵜ch nhiều. Nghiên cứu sử dụng
các phần tử là các s嘘 nguyên l噂n nh逢 b嘘n byte hay tám byte s胤 tăng t嘘c tính
32
toán trên DBV lên rất nhiều do hiện nay các th院 hệ máy tính hỗ trợ 64 bit là
phổ bi院n. Tuy nhiên, khó khăn khi sử dụng các s嘘 nguyên l噂n là việc xác đ鵜nh
tidset của các t壱p mục đ吋 tính các giá tr鵜 twu, wus trong khai thác FWUI trên
QDB và tw, ws trong khai thác FWI trên CSDL tr丑ng s嘘.
1.6. K院t lu壱n ch逢挨ng
Có th吋 nói, khai thác FI là m瓜t khâu rất quan tr丑ng trong khai thác d英
liệu, phục vụ cho việc khai thác lu壱t k院t hợp và các yêu cầu khác nhằm ch雨 ra
m嘘i quan hệ, quy lu壱t gi英a các mục trong CSDL. Vì v壱y, bƠi toán nƠy đư thu
hút đ逢ợc nhiều nhóm nghiên cứu trên th院 gi噂i quan tâm nghiên cứu. Từ thu壱t
toán Apriori v噂i nhiều lần quét CSDL, đ院n thu壱t toán FPậGrowth v噂i ch雨 hai
lần quét CSDL và duyệt cây FPậtree. Ti院p đ院n Zaki v噂i ti院p c壱n theo d英 liệu
d丑c đư đề xuất khai thác FI v噂i ch雨 m瓜t lần quét CSDL.
Bên c衣nh CSDL nh鵜 phân, khai thác t壱p mục phổ bi院n trên QDB cũng đư
nh壱n đ逢ợc nhiều quan tâm từ các nhóm nghiên cứu về khai thác d英 liệu trên
th院 gi噂i. Trong đó, khai thác FWI v噂i hai đ瓜 đo tw và ws trên CSDL tr丑ng s嘘
là m瓜t tr逢運ng hợp riêng của QDB đ逢ợc quan tâm từ rất s噂m v噂i việc áp dụng
các thu壱t toán Apriori, FPậGrowth hay Eclat. Cùng v噂i đó lƠ khai thác FWUI
trên QDB v噂i đ瓜 đo twu của các giao d鵜ch và wus của các t壱p mục đ逢ợc bi院t
đ院n lần đầu tiên v噂i nghiên cứu của Khan và đ欝ng s詠. Ph逢挨ng pháp khai thác
FWI và FWUI từ QDB t嘘t nhất đ院n hiện nay lƠ ph逢挨ng pháp ti院p c壱n quét
CSDL m瓜t lần sử dụng cấu trúc MWITậtree [44]. Tuy nhiên, nh逢 đư phơn tích 荏 trên, các cấu trúc d英 liệu hiện t衣i sử dụng trong các thu壱t toán còn
nhiều h衣n ch院. Do đó, cần phát tri吋n các cấu trúc m噂i đ吋 c違i thiện về b瓜 nh噂
và th運i gian khai thác của các thu壱t toán hiện t衣i.
CSDL có s詠 phân cấp các mục là CSDL có mặt nhiều trong các ứng
dụng th詠c t院. Do đó, th運i gian gần đơy khai thác FI trên lo衣i CSDL nƠy đư
nh壱n đ逢ợc nhiều quan tâm nghiên cứu. Từ việc khai thác cùng m瓜t ng逢ỡng hỗ
trợ, ti院p đ院n là khai thác trên nhiều ng逢ỡng hỗ trợ, mỗi mục có m瓜t ng逢ỡng
33
hỗ trợ riêng vƠ qua đó xơy d詠ng các công thức xác đ鵜nh đ瓜 hỗ trợ t嘘i thi吋u
cho các t壱p mục. Tuy nhiên, các nghiên cứu hiện t衣i còn có nhiều h衣n ch院,
th運i gian và b瓜 nh噂 sử dụng còn l噂n, nhiều t欝n t衣i cần đ逢ợc nghiên cứu khắc
phục đ吋 có th吋 khai thác hiệu qu違 h挨n trên lo衣i CSDL này. M瓜t trong s嘘 đó lƠ
việc thêm các mục nút cha trên các cây phân cấp vào các giao d鵜ch có chứa
các mục con của nó trong CSDL là m瓜t h衣n ch院 l噂n, có th吋 s胤 gây ra s詠 bùng
nổ về dung l逢ợng CSDL, nhất là trên các CSDL có nhiều cây phân cấp hay
các cây phân cấp có đ瓜 cao l噂n. Đơy lƠ các đi吋m h衣n ch院 cần đ逢ợc c違i ti院n đ吋
gi違m th運i gian khai thác và dung l逢ợng b瓜 nh噂 sử dụng.
CSDL s嘘 l逢ợng có s詠 phân cấp các mục là lo衣i CSDL có s詠 khác biệt
nhiều so v噂i các CSDL hiện có, đơy lƠ s詠 k院t hợp gi英a CSDL s嘘 l逢ợng và
CSDL có s詠 phân cấp các mục. Do đó việc khai thác cần có các ph逢挨ng pháp
riêng biệt, đặc thù. Tuy nhiên, hiện nay nghiên cứu khai thác t壱p mục trên
CSDL s嘘 l逢ợng có s詠 phân cấp các mục ch逢a đ逢ợc quan tâm. Do v壱y, bài
toán khai thác t壱p mục trên CSDL s嘘 l逢ợng có s詠 phân cấp các mục cần đ逢ợc
đặt ra nghiên cứu. Đề xuất thu壱t toán khai thác hiệu qu違 trên CSDL s嘘 l逢ợng
có s詠 phân cấp các mục có th吋 đ逢ợc áp dụng vào khai thác hiệu qu違 trên
CSDL s嘘 l逢ợng và CSDL có s詠 phân cấp, khắc phục nh英ng h衣n ch院 hiện t衣i
của các thu壱t toán khai thác t壱p mục phổ bi院n trên hai lo衣i CSDL nƠy nh逢 đư
phân tích 荏 trên là các mục tiêu của lu壱n án.
34
CH姶愛NG 2. KHAI THÁCT一P M影C PH蔚 BI蔭N TRÊN C愛 SỞ
D頴 LI烏U S渦 L姶営NG
Ti院p c壱n bitậvector trong bi吋u di宇n tidset của các t壱p mục là m瓜t h逢噂ng
phát tri吋n hiệu qu違, do t壱n dụng đ逢ợc t嘘c đ瓜 tính toán của các phép toán trên
bit, đ欝ng th運i ti院t kiệm đ逢ợc b瓜 nh噂 l逢u tr英 tidset do mỗi giao d鵜ch ch雨 cần
đánh dấu b荏i m瓜t bit. Các nghiên cứu đư có nh逢 sử dụng ph逢挨ng pháp bit
[33], BitTable [13] hay DBV [43] còn có nhiều h衣n ch院 nh逢 đư phơn tích 荏
ch逢挨ng m瓜t. Trong ch逢挨ng nƠy, lu壱n án trình bày m瓜t s嘘 c違i ti院n theo h逢噂ng
ti院p c壱n này v噂i việc đề xuất hai cấu trúc d英 liệu IWS và MBiS sử dụng trong
thu壱t toán khai thác t壱p phổ bi院n. Đ欝ng th運i, ch逢挨ng 2 cũng trình bƠy về m瓜t
đề xuất hiệu qu違 cho bài toán khai thác hiệu qu違 FWUIk trên CSDL s嘘 l逢ợng
v噂i hai cấu trúc DTab và DHeap.
2.1. Thu壱t toán khai thác t壱p FWI
Phần này lu壱n án trình bày về cấu trúc Interval word segment - IWS là
m瓜t c違i ti院n của BDV, đư đ逢ợc công b嘘 t衣i h瓜i th違o qu嘘c t院 SMC 2015 [34] ,
sau đó đ逢ợc phát tri吋n m荏 r瓜ng, thử nghiệm trên nhiều b瓜 d英 liệu h挨n vƠ công
b嘘 t衣i [36].
2.1.1. Giới thiệu
Định nghĩa 2.1. Interval word segment (IWS) của m瓜t t壱p mục X thu瓜c
CSDL DB là m瓜t cấu trúc g欝m nhiều đo衣n, trong đó mỗi đo衣n là các word
(hai byte) liên ti院p khác 0 trên bitậvector bi吋u di宇n tidset của t壱p mục X.
Mỗi đo衣n g欝m hai thành phần:
Start: V鵜 trí word đầu tiên của đo衣n trên bitậvector.
Word list: Danh sách giá tr鵜 các word liên ti院p khác 0.
Ví dụ 2.1: Cho t壱p mục X của CSDL DB bi吋u di宇n b荏i m瓜t bitậvector
đ逢ợc cho d逢噂i d衣ng các byte nh逢 b違ng 2.1
35
B違ng 2.1. Bitậvector
Ch雨 s嘘 byte 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
Giá tr鵜 0 0 0 0 6 9 0 0 0 1 5 1 4 6 0 0 0 0 0 0 0 0 0 1 5 4 6 0 0 0 0 0
Bitậvector trong B違ng 2.1 (còn đ逢ợc g丑i là BitTable) g欝m 21 byte có
giá tr鵜 bằng 0, bitậvector trên đ逢ợc bi吋u di宇n qua cấu trúc DBV [43] trong
B違ng 2.2 nh逢 sau:
B違ng 2.2. DBV của bitậvector trong ví dụ 2.1
Ch雨 s嘘 byte 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
Giá tr鵜 6 9 0 0 0 1 5 1 4 6 0 0 0 0 0 0 0 0 0 1 5 4 6
DBV 5(6, 9, 0, 0, 0, 1, 5, 1, 4, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 5, 4, 6)
DBV lo衣i bỏ các byte có giá tr鵜 bằng 0 荏 đầu và cu嘘i của bitậvector, do
đó trong nhiều tr逢運ng hợp DBV ti院t kiệm b瓜 nh噂 khá t嘘t, nh運 v壱y tăng t嘘c đ瓜
tính toán trong khai thác FI. Tuy nhiên trong cấu trúc DBV v磯n còn t欝n t衣i
các byte bằng 0, nhất lƠ trên các CSDL th逢a thì s嘘 byte bằng 0 càng nhiều. Do
đó cấu trúc DBV v磯n ch逢a t嘘i 逢u đ逢ợc b瓜 nh噂.
Cấu trúc MByS [16] sử dụng trong khai thác nhanh FWUI trên QDB v噂i
mỗi phần tử có đ瓜 l噂n m瓜t byte. MByS là cấu trúc lo衣i bỏ các byte có giá tr鵜
bằng 0 trên DBV, do đó MByS bao g欝m nhiều đo衣n, mỗi đo衣n là m瓜t dãy
byte có giá tr鵜 khác 0 liên ti院p.
Cấu trúc IWS đ逢ợc đề xuất trong [34] là m瓜t m荏 r瓜ng của MByS, v噂i
mỗi phần tử là m瓜t word (hai byte). IWS lo衣i bỏ hoàn toàn các word có giá tr鵜
bằng 0 khỏi DBV, bằng cách này đư gi違i quy院t đ逢ợc h衣n ch院 về lãng phí b瓜
nh噂 của DBV.
B違ng 2.3. IWS từ bitậvector trong ví dụ 2.1
Ch雨 s嘘 word 3 5 6 7 12 13 14
Giá tr鵜 các byte 6 9 0 1 5 1 4 6 0 1 5 4 6 0
Giá tr鵜 các word 1545 1 1281 1030 1 1284 1536
IWS {3(1545), 5(1, 1281, 1030), 12(1, 1284, 1536)}
36
IWS đ逢ợc bi吋u di宇n nh逢 trong B違ng 2.3 có ba đo衣n, đo衣n thứ nhất từ
word có ch雨 s嘘 là 3, giá tr鵜 lƠ 1545. Đo衣n thứ hai bắt đầu từ word ch雨 s嘘 là 5
v噂i ba phần tử là 1, 1281 và 1030, v.v… Nh逢 v壱y, cấu trúc IWS đư lo衣i bỏ
hoàn toàn các word bằng 0, ch雨 l逢u gi英 các đo衣n word liên ti院p có giá tr鵜 khác
0.
Mệnh đề 2.1. Đo衣n Sx = 嫌掴(欠鎚猫 ,欠鎚猫+怠 , … , 欠�猫 ) đ逢ợc g丑i lƠ đo衣n con
của đo衣n Sy = 嫌槻 岾欠鎚熱 , 欠鎚熱+怠 , … , 欠�熱 峇 n院u thỏa mãn ba điều kiện sau:
1. 嫌掴 = 嫌槻 + 建岫 建 半 ど岻 2. �掴 判 �槻
3. 欠鎚猫 = 欠鎚熱+痛 , 欠鎚猫+怠 = 欠鎚熱+痛+怠 , … , 欠�猫 = 欠鎚熱+痛+�猫
Chứng minh: Từ 欠鎚猫= 欠鎚熱 + 痛,欠鎚猫 + 怠 = 欠鎚熱 + 痛 + 怠, …, 欠�猫 = 欠鎚熱 +痛+�猫 , Sx
thay bằng Sx = 嫌槻+痛 岾欠鎚熱 +痛 , 欠鎚熱 +痛+怠 … , 欠鎚熱+痛+�猫 峇 Sy. Do đó, Sx đ逢ợc g丑i là
đo衣n con của Sy.
Ví dụ 2.2: Sx = 6(1281, 1030) v噂i sx = 6 là m瓜t đo衣n con của Sy = 5(1,
1281, 1030) v噂i sy =5. B荏i vì, v噂i t = 1 ta có:
1. 嫌掴 = 嫌槻 + 建 岫建 = な岻
2. �掴 = ば, �槻 = ば ⟹ �掴 判 �槻
3. 欠滞 = 決滞 = 1281, 欠胎= 決胎 = 1030
Mệnh đề 2.2. 嫌掴岫捲怠 , 捲態 … , 捲賃 岻 ∈ IWS(X) n院u và ch雨 n院u
嫌掴岫捲怠 ,捲態 … , 捲賃 岻 lƠ đo衣n con của m瓜t đo衣n thu瓜c IWS(X).
Ví dụ 2.3: Cho IWS(X) = {3(1545), 5(1, 1281, 1030), 12(1, 1284,
1536)}. Đo衣n 6(1281, 1030) ∈ IWS(X) b荏i vì 6(1281, 1030) lƠ đo衣n con
của đo衣n 5(1, 1281, 1030) thu瓜c IWS(X) theo ví dụ 2.2.
Định nghĩa 2.2. Giao gi英a hai đo衣n Sx = 嫌掴岫捲怠 , 捲態 … , 捲賃 岻 và Sy =
嫌槻岫検怠 , 検態 … , 検鎮岻 lƠ đo衣n Sz, kí hiệu là Sz = Sx 堪 Sy,
V噂i:
sz = max(sx, sy)
37
m = min(k+sx, l+sy)
Sz = 嫌佃(権鎚年 , 権鎚年+迭 … , 権陳), v噂i: 権鎚年= 捲鎚年& 検鎚年;権鎚猫+迭= 捲鎚年+怠 & 検鎚年+怠; …;権陳= 捲陳 & 検陳.
Trong đó “&” lƠ phép AND trên bit.
Ví dụ 2.4: Cho hai đo衣n �掴=5(1, 1281, 1030), k = 2 và �槻= 6(3220,
8726, 3104), l = 2. Ta có: 嫌佃= max(5, 6) = 6;
m = min((5+2), (6+2)) = 7; ⟹ �佃 = は岫権滞 , 権胎岻 v噂i: 権滞 =@捲滞&検滞 = 1281 & 3220 = 1024 権胎 = 捲胎 & 検胎 = 1030 & 8725 = 6
Do đó, giao của �掴 và �槻 là �佃=6(1024, 6). Định nghĩa 2.3. Giao của IWS(X) và IWS(Y) đ逢ợc đ鵜nh nghƿa là
IWS(X姦Y) = IWS(X) 堪 IWS(Y). IWS(X姦Y) chứa các đo衣n, mỗi đo衣n là
giao của các đo衣n trên IWS(X) và IWS(Y) theo Đ鵜nh nghƿa 2.2.
Ví dụ 2.5:
IWS(X) = {3(1545), 5(1, 1281, 1030), 12(1, 1284, 1536)}
IWS(Y) = {6(3220, 8726, 3104), 10(1242, 8721, 6527,6)} ⟹ IWS(X姦Y) = {6(1024, 6), 12(1, 4)} 1281
Định lý 2.1. Cho đo衣n Si = si(欠鎚日 , 欠鎚日+怠 , …, 欠�日 ) ∈ IWS(X), l là ch雨 s嘘 bit
1 của 欠鎚乳 (từ trái sang ph違i) v噂i si 判 sj判 ei. l đ逢ợc ánh x衣 lên bitậvector
theo công thức 2.1:
k = (sj – 1) × 16 + l (2.1)
Trong đó, k ch雨 s嘘 bit 1 trên bitậvector của bit có ch雨 s嘘 l của a sj.
Chứng minh: sj là ch雨 s嘘 của 欠鎚乳 trên wordậvector. Nh逢 v壱y có (sj ậ 1)
word tr逢噂c 欠鎚乳. Điều nƠy có nghƿa lƠ có [(sj ậ 1) × 16] bit tr逢噂c 欠鎚乳trên bitậ
vector (mỗi word có 16 bit). Do đó, bit có v鵜 trí l trong word thứ sj đ逢ợc ánh
x衣 lên bitậvector v噂i v鵜 trí k theo công thức:
38
k = (sj – 1) × 16 + l.
Ví dụ 2.6: Cho IWS(X) = {3(1545)}, ch雨 s嘘 các bit 1 của X đ逢ợc xác
đ鵜nh nh逢 trong B違ng 2.4:
B違ng 2.4. Ch雨 s嘘 các bit 1 của IWS(X)
Ch雨 s嘘 bit 1 trên word 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
Giá tr鵜 các bit 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1
Giá tr鵜 word 1545
Ch雨 s嘘 bit 1 trong word {6,7,13,16}
Ta thấy IWS(X) ch雨 có m瓜t đo衣n v噂i m瓜t phần tử, do v壱y start của
IWS(X) = 3, nên có (3 ậ 1) ×16 = 32 bit tr逢噂c IWS(X). D詠a trên công thức 2.1
và B違ng 2.4 ta có ch雨 s嘘 các bit 1 của IWS(X) trên bitậvector lần l逢ợt là:
32 + 6 = 38;
32 + 7 = 39;
32 + 13 = 45;
32 + 16 = 48;
Do đó, tidset(X) = {38, 39, 45, 48}
Định nghĩa 2.4. Cho t壱p mục X của CSDL DB, các ch雨 s嘘 bit 1 trong
IWS(X) là các giao d鵜ch trong CSDL DB, công thức 1.2 đ逢ợc đ鵜nh nghƿa l衣i
nh逢 công thức 2.2:
ws(X) = ∑ 建拳岫痛日岻� ∈�激�岫隙岻�憲兼_建拳 (2.2)
Trong đó: Sum_tw = ∑ 建拳岫建賃岻陳賃 = 怠 v噂i m là s嘘 l逢ợng các giao d鵜ch trong
CSDL DB.
2.1.2. Thuật toán tính giao của hai IWS
Khai thác FWI v噂i đ鵜nh d衣ng d英 liệu d丑c theo ti院p c壱n Eclat [5] đòi hỏi
ph違i tính giao các tidset đ吋 xác đ鵜nh t壱p mục m噂i đ逢ợc t衣o thành từ hai t壱p
mục cũ. Điều nƠy đ欝ng nghƿa v噂i việc tính giao của hai IWS của hai t壱p mục
t逢挨ng ứng theo Đ鵜nh nghƿa 2.3.
39
Thu壱t toán xác đ鵜nh giao của hai IWS đ逢ợc trình bƠy nh逢 Hình 2.1
Thuật toán 2.1: INTERSECTION_IWS
Input:
- IWS(X) gồmn1 đoạn, đoạn thứ I có start là IWS(X) [i].start
- IWS(Y) gồmm1đoạn, đoạn thứjcóstart là IWS(Y) [j].start
Output: Z = IWS(X) 堪 IWS(Y)
Method name: INTERSECTION_IWS()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
INTERSECTION_IWS (IWS(X), IWS(Y))
i = 1; j = 1; Z = ;
while (i 判 n1 and j 判 m1)
4oạn i1 của IWS(X岻 và đoạn j1 của IWS(Y岻 là các đoạn giao đầu tiên
của IWS(X) và IWS(Y) tính từ đoạn i (IWS(X岻岻 và đoạn j (IWS(Y))
S = ;
Start = max(IWS(X) [i1].start, IWS(Y) [j1].start);
End = min(IWS(X) [i1].end, IWS(Y) [j1].end);
for all k ∈ [Start, End] do
S = S 姦 {IWS(X) [k] 堪 IWS(Y) [k]};
Loại bỏ các Word = 0 trong S và thêm S vào Z
if (End = IWS(X) [i1].end) then
i = i1 + 1;
j = j1;
if (End = IWS(Y) [i1].end) then
j = j1+ 1;
i = i1;
Return Z
Hình 2.1. Thuật toán xác định giao hai IWS
Đầu vào của thu壱t toán là IWS(X) và IWS(Y). Trong đó, IWS(X) có n1
đo衣n. IWS(Y) có m1 đo衣n. Đầu ra là Z là m瓜t IWS. Dòng 4, xác đ鵜nh đo衣n giao
ti院p theo của IWS(X) và IWS(Y). Dòng 5 và 6, tính đầu và cu嘘i đo衣n giao k院t
qu違. Dòng 7 đ院n 9, tính S lƠ đo衣n giao k院t qu違. Dòng 10, lo衣i các word có giá
40
tr鵜 bằng 0 khỏi S (có th吋 t衣o ra nhiều đo衣n m噂i). Dòng 10 đ院n dòng 15, xác
đ鵜nh đo衣n giao ti院p theo trên IWS(X) và IWS(Y).
D宇 nh壱n thấy đ瓜 phức t衣p thu壱t toán là O(n1+ m1), v噂i n1 và m1 lần l逢ợt là
s嘘 l逢ợng các đo衣n của IWS(X) và IWS(Y).
2.1.3. Thuật toán khai thác FWI
a. Cấu trúc IWSậtree
Từ cấu trúc IWS lu壱n án đề xuất cấu trúc IWSậtree đ吋 khai thác FWI
theo d英 liệu d丑c. Mỗi nút của IWSậtree g欝m ba thành phần:
ậ X là m瓜t t壱p mục,
– IWS(X) là IWS của X,
– ws(X) là giá tr鵜 ws của X.
Các nút của IWSậtree 荏 mức thứ nhất là các 1–itemset, từ mức thứ hai,
các nút 荏 mức d逢噂i đ逢ợc t衣o thành từ s詠 k院t hợp của hai nút 荏 mức trên v噂i
các điều kiện sau:
- Hai nút cùng s嘘 l逢ợng phần tử và ch雨 khác nhau phần tử cu嘘i cùng.
- wus của t壱p mục t衣o thành thỏa mưn ng逢ỡng minwus do ng逢運i sử
dụng đ逢a vƠo. b. Thuật toán tính nhanh wus dựa trên IWS
Khai thác FWI trên CSDL tr丑ng s嘘 là ph違i xác đ鵜nh ws của các t壱p mục
theo công thức 2.2. Do đó cần xác đ鵜nh v鵜 trí các bit 1 của IWS của các t壱p
mục, điều nƠy đ欝ng nghƿa v噂i việc xác đ鵜nh tidset của các t壱p mục. Đ吋 gi違i
quy院t hiệu qu違 vấn đề này, lu壱n án đề xuất sử dụng m瓜t m違ng MAP g欝m
65.535 phần tử nh逢 trong B違ng 2.5. Phần tử thứ i của m違ng MAP chứa m瓜t
danh sách các bit 1 trong bi吋u di宇n nh鵜 phân của i. D詠a trên m違ng MAP ta có
th吋 tính đ逢ợc v鵜 trí các bit 1 của IWS trên bitậvector.
B違ng 2.5. M違ng MAP
Ch雨 s嘘 m違ng 1 2 … 65.534 65.535
Giá tr鵜 nh鵜 phân 0000000000000001 0000000000000010 … 1111111111111110 1111111111111111
MAP 16 15 … 1, 2, …, 14, 15 1, 2, …, 15, 16
41
Thu壱t toán tính ws của t壱p mục X đ逢ợc trình bƠy trong Hình 2.2. B逢噂c thứ
nhất tidset của các t壱p mục đ逢ợc xây d詠ng theo Đ鵜nh lý 2.1 d詠a trên công
thức 2.1 và m違ng MAP. B逢噂c thứ 2 tính ws theo công thức 2.2.
Thuật toán 2.2: CALCULATION_WS
Input: IWS(X)
- Output: ws của tập mục X
- Method name: CALCULATION_WS()
1
2
3
4
5
6
7
8
9
CALCULATION_WS(IWS(X))
tidset(X) = ;
for all i IWS(X) do
for all j MAP [i] do
tidset(X) (si – 1) × 16 + j; y = 0;
for all i ∈ tidset(X) do
y = y + tw(建沈);
ws = y/sum_tw;
return ws
Hình 2.2. Thuật toán tính ws của tập mục X
Đầu vào của thu壱t toán là IWS của t壱p mục X, đầu ra là ws(X). Dòng 1
đ院n dòng 4, xây d詠ng tidset của X d詠a trên công thức 2.1 và m違ng MAP.
Dòng 5 đ院n dòng 8, tính ws(X) theo công thức 2.2. Cu嘘i cùng, dòng 9 tr違 vềgiá tr鵜 ws của X.
V噂i m違ng MAP việc tính toán ws là khá đ挨n gi違n và ti院t kiệm th運i gian
tính toán. Vì ch雨 cần O(1) đ吋 xác đ鵜nh v鵜 trí m瓜t bit 1 trên bitậvector.
Do đó, đ瓜 phức t衣p thu壱t toán là O(k) v噂i k là s嘘 các giao d鵜ch chứa t壱p
mục X.
42
c. Thuật toán
Lu壱n án đề xuất thu壱t toán IWSậFWI [34, 36] khai thác FWI trên CSDL
tr丑ng s嘘 d詠a trên cấu trúc IWSậtree v噂i l逢ợng ti院p c壱n d英 liệu d丑c. IWSậtree
đ逢ợc t衣o ra nh逢 sau:
Tr逢噂c h院t, mức thứ nhất của cây bao g欝m các nút chứa các 1–itemset có
đ瓜 đo ws thỏa ng逢ỡng minws. Tất c違 các nút 荏 mức thứ nhất cùng thu瓜c m瓜t
l噂p t逢挨ng đ逢挨ng. Mỗi nút khi k院t n嘘i v噂i lần l逢ợt từng nút phía sau nó trong
cùng m瓜t l噂p t逢挨ng đ逢挨ng t衣o ra các nút cùng m瓜t l噂p t逢挨ng đ逢挨ng 荏 mức
d逢噂i. Hai nút chứa hai t壱p mục X1X2…XkY1 và X1X2…XkY2 thu瓜c cùng m瓜t
l噂p t逢挨ng đ逢挨ng k院t n嘘i v噂i nhau (các t壱p mục thu瓜c các nút trong cùng m瓜t
l噂p t逢挨ng đ逢挨ng có cùng đ瓜 dài và khác nhau phần tử cu嘘i cùng):
- T衣o ra nút m噂i X1X2…XkY1Y2
- ws(X1X2…XkY1Y2) 半 minws
Nh逢 v壱y các k–itemset đ逢ợc t衣o thành từ các (kậ1)–itemset 荏 cùng m瓜t
l噂p t逢挨ng đ逢挨ng 荏 mức trên v噂i điều kiện t壱p mục m噂i t衣o thành thỏa mãn
ng逢ỡng minws do ng逢運i sử dụng đ逢a vƠo. Do đó, các t壱p mục trên các nút
của IWSậtree chính là các FWI cần khai thác.
Thu壱t toán đệ quy t衣o IWSậtree đ逢ợc trình bƠy nh逢 Hình 2.3.
Thuật toán 2.3: CREATE_IWS–tree
Input: tậpP (tập 1–itemset) và minws;
Output: Tập P chứa tất cả FWI của CSDL DB với ngưỡng minws
Method name: CREATE_IWS_Tree()
1
2
3
4
5
CREATE_IWS_Tree(P)
IWS–tree =
for all li ∈ [P] do
[Pi] = ;
for all lj ∈ [P], (vớij >i) do
X = li 姦 lj;
43
6
7
8
9
10
11
Y = INTERSECTION_IWS(IWS(li), IWS(lj));
ws_X= CALCULATION_WS(Y);//ws của tập mục X
if (ws_X 半 minws) then
[Pi] = [Pi] 姦 {(X, Y, ws_X};
IWS–tree = IWS–tree 姦Pi;
CREATE_IWS_Tree( [Pi])
Hình 2.3. Thuật toán xây dựng IWS–tree
Đầu vào của thu壱t toán là l噂p t逢挨ng đ逢挨ng P (chứa các t壱p mục có cùng
đ瓜 dài ch雨 khác nhau phần tử cu嘘i và thỏa mãn minws). Dòng 1 đ院n dòng 4,
v噂i mỗi t壱p mục li k院t n嘘i v噂i tất c違 các t壱p mục lj đứng phía sau li thu瓜c cùng
l噂p t逢挨ng đ逢挨ng P t衣o ra X là t壱p mục m噂i. Dòng 6 tính Y = IWS(X) theo
thu壱t toán INTERSECTION_IWS trong Hình 2.1. Dòng 7, tính ws(Y) là ws
của t壱p mục X. N院u ws(X) thỏa ng逢ỡng minws thêm {X, Y, ws_X} vào P i t衣i
dòng 9. Sau khi xây d詠ng xong l噂p t逢挨ng đ逢挨ng P i, P i đ逢ợc thêm vào IWSậ
tree t衣i dòng 10. Cu嘘i cùng g丑i đệ quy v噂i l噂p t逢挨ng đ逢挨ng m噂i P i sau khi k院t
n嘘i li v噂i tất c違 các lj sau nó 荏 dòng 11.
Thu壱t toán IWS_FWI khai thác FWIs trên CSDL tr丑ng s嘘 đ逢ợc trình bày
trong Hình 2.4
Thuật toán 2.4: IWS_FWIs
Input: QDB DB và minws;
Output: IWS–tree chứa các FWI của DB theo ngưỡng minws
Method name: IWS_FWIs()
1
2
3
4
5
IWS_FWIs(minws)
P = ;
for all iI do
if (CALCULATION_WS(i) 半 minws) then
P = P姦 {i};
CREATE_IWS_TREE(P);
Hình 2.4. Thuật toán khai thác FWI dựa trên IWS–tree
44
Đầu vào thu壱t toán là CSDL tr丑ng s嘘 D và minws. Dòng 1, P đ逢ợc gán
bằng . Từ dòng 2 đ院n dòng 4, P bằng t壱p 1–itemset thỏa mãn minws. Dòng
5, g丑i hàm IWSậtree đ吋 t衣o cây IWSậtree theo thu壱t toán 3 荏 Hình 2.3.
Sau đơy lƠ m瓜t ví dụ khai thác FWI trên CSDL tr丑ng s嘘 theo thu壱t toán
IWS_FWI.
Ví dụ 2.7: Khai thác FWI trên CSDL DB trong ví dụ 2.1 v噂i minws =
0,4. IWS và ws của các mục đ逢ợc xác đ鵜nh nh逢 trong B違ng 2.6.
B違ng 2.6. IWS của các mục
mục Tidset BitTable IWS ws
A 1, 3, 4, 5 000111012 {1(29)} 0,72
B 1, 2, 3, 4, 5, 6 001111112 {1(63)} 1,00
C 2, 4, 5, 6 001110102 {1(58)} 0,60
D 1, 3, 5, 6 001101012 {1(53)} 0,78
E 1, 2, 3, 4, 5 000111112 {1(31} 0,81
Trong ví dụ này, mỗi IWS ch雨 có m瓜t đo衣n v噂i m瓜t phần tử duy nhất.
Các giá tr鵜 ws của mục thỏa mãn minws. Do v壱y, P = {A, B, C, D, E} và A, B,
C, D, E đ逢ợc thêm vào IWSậtree. Thu壱t toán đệ quy IWS_tree() đ逢ợc th詠c
hiện nh逢 sau:
Với nút A:
Hình 2.5. IWSậtree v噂i nút A (minws = 0,4)
[] 畦{怠岫態苔岻}待,胎態畦畦稽{怠岫態苔岻}待,胎態 畦経{怠岫態怠岻}待,泰苔 畦継{怠岫態苔岻}待,胎態
畦稽経{怠岫態怠岻}待,泰苔 畦稽継{怠岫態苔岻}待,胎態 畦経継{怠岫態怠岻}待,泰苔
畦稽経継{怠岫態怠岻}待,泰苔
畦稽系{怠岫態怠岻 }待,泰苔
稽{怠岫滞戴岻}怠.待待 系{怠岫泰腿岻}待,滞待 経{怠岫泰戴岻}待,胎腿 継{怠岫戴怠岻}待,腿怠
45
K院t n嘘i hai nút A và B. Ta có, IWS(A) 堪 IWS(B) = {1(29)} 堪 {1(63)}, do đó IWS(AB) = {1(29)}. D詠a trên thu壱t toán 2.2, ta có ws(AB)
= ws(A) = 0,72 > minws, nên AB đ逢ợc thêm vào IWSậtree.
Ti院p theo, k院t n嘘i A và C. IWS(A) 堪 IWS(C) = {1(29)} 堪 {1(58)}, nên
IWS(AC) = {1(24)}. Do ws(AC) = 0,32 < minws, nên AC không đ逢ợc thêm
vào IWSậtree.
T逢挨ng t詠 nh逢 trên, các t壱p mục {AD, AE, ABC, ABD, ABE, ABDE}
đ逢ợc thêm vào IWSậtree nh逢 trong Hình 2.5.
Với nút B:
Hình 2.6. IWSậtree v噂i nút A và B (minws = 0,4)
K院t n嘘i hai nút B và C. Ta có, IWS(B) 堪 IWS(C) = {1(63)} 堪 {1(58)}, nên IWS(BC) = {1(29)}. Do ws(BC) = 0,72 > minws, nên BC
đ逢ợc chèn vào IWSậtree.
Ti院p theo, k院t n嘘i B và D. Ta có, IWS(B) 堪 IWS(D) = {1(63)} 堪 {1(53)}, nên IWS(BD) = {1(53)}. Do, ws(BD) = 0,78 > minws, nên BD
đ逢ợc thêm vào IWSậtree.
T逢挨ng t詠, các t壱p mục {BE, BDE} đ逢ợc thêm vào IWSậtree nh逢 trong
Hình 2.6.
Sau khi xét t逢挨ng t詠 v噂i các nút C, D và E còn l衣i, IWSậtree đầy đủ
đ逢ợc th吋 hiện nh逢 trong Hình 2.7.
[]
畦{怠岫態苔岻}待,胎態 稽{怠岫滞戴岻 }怠.待待
畦畦稽{怠岫態苔岻}待,胎態 畦経{怠岫態怠岻 }待,泰苔 畦継{怠岫態苔岻}待,胎態 稽系{怠 岫態苔岻}待,胎態 稽経{怠,岫泰戴岻 }待,胎腿 稽継{怠 岫戴怠岻}待,腿苔
畦稽経{怠岫態怠岻}待,泰苔 畦稽継{怠岫態苔岻}待,胎態 畦経継{怠岫態怠岻}待,泰苔
畦稽経継{怠岫態怠岻}待,泰苔
畦稽系{怠岫態怠岻 }待,泰苔 稽経継{怠 岫態怠岻}待,泰苔
46
Nh逢 v壱y, v噂i minws = 0,4 ta có t壱p các FWI theo: {A, B, C, D, E, AB,
AD, AE, BC, BD, BE, DE, ABD, ABE, ADE, BDE, ABDE}.
Hình 2.7. IWSậtree v噂i minws = 0,4
2.1.4. Kết quả thực nghiệm
2.1.4.1. Môi trường thực nghiệm
Hệ th嘘ng thử nghiệm đ逢ợc cƠi đặt bằng C# 2014 trên Microsoft
Windows 8.1 Pro 64 bit, Net Framework 4.5,v噂i CPU Intel® Haswell Core™
i5 ậ 1.4 GHz, Ram 4Gb. Hệ th嘘ng phần mềm đ逢ợc sử dụng: Visual Studio
2013 Ultimate.
2.1.4.2. CSDL thực nghiệm
CSDL th詠c nghiệm g欝m BMSậPOS, RETAIL, ACCIDENTS,
CONNECT, CHESS đ逢ợc lấy từ http: //fimi.cs.helsinki.fi/data/ và SALEậ
FACTậ1997, SALEậFACTậ1997+1998, SALEậSYNC đ逢ợc lấy từ CSDL
FOODMART2000 của Microsoft SQL server, trong đó SALEậFACTậ
1997+1998 đ逢ợc tổng hợp từ b違n SALEậFACTậ1997 và SALEậFACTậ
1998, còn SALEậFACTậSYNC đ逢ợc k院t hợp từ SALEậFACTậ1997, SALEậ
FACTậ1998 và SALEậFACTậDEC_1998.
畦{怠岫態苔岻}待,胎態 稽{怠岫滞戴岻}怠.待待 系{怠岫泰腿岻 }待,滞待 経{怠岫泰戴岻 }待,胎腿 継{怠岫戴怠岻 }待,腿怠
畦畦稽{怠岫態苔岻}待,胎態 畦経{怠岫態怠岻 }待,泰苔 畦継{怠岫態苔岻 }待,胎態 稽系{怠 岫態苔岻}待,胎態 稽経{怠,岫泰戴岻}待,胎腿 稽継{怠 岫戴怠岻 }待,腿苔 経�{怠,戴,泰,滞}待 ,滞 経継{な岫にな岻 }ど,のひ
畦稽経{怠岫態怠岻}待,泰苔 畦稽継{怠岫態苔岻 }待,胎態 畦経継{怠岫態怠岻}待,泰苔
畦稽経継{怠岫態怠岻}待,泰苔
系継{怠 岫戴怠岻}待,腿苔
畦稽系{怠岫態怠岻}待,泰苔 稽経継{怠 岫態怠岻}待,泰苔
47
Các CSDL thử nghiệm đ逢ợc mô t違 cụ th吋 trong B違ng 2.7 nh逢 sau:
Các CSDL 1, 2, 6, 7 nguyên g嘘c đ逢ợc thêm vào m瓜t b違ng m噂i v噂i các
giá tr鵜 ng磯u nhiên trong kho違ng [1, 10] làm giá tr鵜 tr丑ng s嘘 của các mục.
2.1.4.1. Kết quả thực nghiệm
Phần này trình bày bi吋u đ欝 th運i gian th詠c thi và b瓜 nh噂 sử dụng của ba
ph逢挨ng pháp DBV, DIFFSET và IWS trên các CSDL th詠c nghiệm.
a. So sánh thời gian thực thi
Hình 2.8. So sánh th運i gian ch衣y v噂i CSDL RETAIL.
Hình 2.9. So sánh th運i gian ch衣y v噂i CSDL BMSậPOS.
135,576
64,141
27,69
0
50
100
150
0,6 0,5 0,4 0,3 0,2 0,1
tim
e(s
)
minws(%)
DBV
DIFFSET
IWS
232,209
61,511
125,091
0
50
100
150
200
250
0,6 0,5 0,4 0,3 0,2 0,1
tim
e(s
)
minws(%)
DBV
IWS
DIFFSET
B違ng 2.7. Mô t違 CSDL th詠c nghiệm
Stt CSDL S嘘 l逢ợng mục S嘘 l逢ợng giao d鵜ch Ghi chú
1. RETAIL 16.470 88.162 Thêm tr丑ng s嘘
2. BMSậPOS 1.657 515.597 Thêm tr丑ng s嘘
3. SALEậFACTậ1997 1.753 20.522
4. SALEậFACTậ1997+1998 1.753 54.537
5. SALEậFACTậSYNC 1.753 58.308
6. CONNECT 468 340.183 Thêm tr丑ng s嘘
7. ACCIDENTS 130 67.557 Thêm tr丑ng s嘘
48
Hình 2.10. So sánh th運i gian ch衣y v噂i CSDL SALEậFACTậ1997.
Hình 2.11. So sánh th運i gian ch衣y v噂i CSDL SALEậFACTậ1997+1998.
Hình 2.12. So sánh th運i gian ch衣y v噂i CSDLSALEậFACTậSYNC.
Hình 2.13. So sánh th運i gian ch衣y v噂i CSDLCONNECT.
309,301
68,836
98,594
0
100
200
300
400
0,3 0,2 0,1 0,06 0,03 0,01
tim
e(s
)
minws(%)
DBV
IWS
DIFFSET
2501,68
250,34
563,70
0
500
1000
1500
2000
2500
3000
0,3 0,2 0,1 0,06 0,03 0,01
tim
e(s
)
minws(%)
DBV
IWS
DIFFSET
2748,776
640,854
322,957 0
1000
2000
3000
0,3 0,2 0,1 0,06 0,03 0,01
tim
e(s
)
minws(%)
DBV
DIFFSET
IWS
41,935 48,812
6,094 0
20
40
60
0,96 0,95 0,94 0,93 0,92 0,9
tim
e(s
)
minws
DBV
IWS
DIFFSET
49
Hình 2.14. So sánh th運i gian ch衣y v噂i CSDL ACCIDENTS.
b. So sánh bộ nhớ sử dụng
Hình 2.15. So sánh b瓜 nh噂 sử dụng v噂i CSDL RETAIL.
Hình 2.16. So sánh b瓜 nh噂 sử dụng v噂i CSDL BMSậPOS.
Hình 2.17. So sánh b瓜 nh噂 sử dụng v噂i CSDLSALEậFACTậ1997.
212,667
112,667
30,742 0
50
100
150
200
250
0,9 0,8 0,7 0,6 0,5
tim
e(s
)
minws
DBV
IWS
DIFFSET
160,687
24,002 48,479
0
50
100
150
200
0,6 0,5 0,4 0,3 0,2 0,1
me
mo
ry(M
b)
minws(%)
DBV
IWS
DIFFSET
213,67
103,038
431,725
0
200
400
600
0,6 0,5 0,4 0,3 0,2 0,1
me
mo
ry(M
b)
minws(%)
DBV
IWS
DIFFSET
622,14
509,81 542,7
0
200
400
600
800
0,03 0,02 0,1 0,06 0,03 0,01
me
mo
ry(M
b)
minws(%)
DBV
IWS
DIFFSET
50
Hình 2.18. So sánh b瓜 nh噂 sử dụng v噂i CSDLSALEậFACTậ1997+1998.
Hình 2.19. So sánh b瓜 nh噂 sử dụng v噂i CSDLSALEậFACTậSYNC.
Hình 2.20. So sánh b瓜 nh噂 sử dụng v噂i CSDLCONNECT.
Hình 2.21. So sánh b瓜 nh噂 sử dụng v噂i CSDL ACCIDENT.
1477,976
1284,567
1344,846
0
500
1000
1500
2000
0,3 0,2 0,1 0,06 0,03 0,01
me
mo
ry(M
b)
minws(%)
DBV
IWS
DIFFSET
1543,975
1400,239 1482,239
0
500
1000
1500
2000
0,6 0,5 0,4 0,3 0,2 0,1
me
mo
ry(M
b)
minws(%)
DBV
IWS
DIFFSET
41,935
48,81
6,094
0
20
40
60
0,96 0,95 0,94 0,93 0,92 0,9
me
mo
ry(M
b)
minws(%)
DBV
IWS
DIFFSET
78,172
112,667
30,742
0
50
100
150
0,9 0,8 0,7 0,6 0,5
me
mo
ry(M
b)
minws(%)
DBV
IWS
DIFFSET
51
Các k院t qu違 thử nghiệm cho thấy hiệu qu違 của IWS trên các CSDL th逢a
(RETAIL, MBSậPOS) và các CSDL trung bình (các CSDL SALE_FACT),
còn trên các CSDL dày (CONNECT, ACCIDENT) thì DIFFSET có hiệu qu違
rõ rệt, do v噂i các CSDL dày thì tidset của các t壱p mục l噂n, nên diffset s胤 nhỏ
(do diffset lấy phần bù).
Đ嘘i v噂i các CSDL th逢a vƠ trung bình, s嘘 l逢ợng các mục xuất hiện trên
các giao d鵜ch không quá nhiều, do đó IWS của các t壱p mục s胤 lo衣i bỏ đ逢ợc
nhiều word có giá tr鵜 = 0 trong bi吋u di宇n tidset của nó, nên IWS s胤 không quá
l噂n, đ欝ng nghƿa v噂i s嘘 l逢ợng đo衣n của IWS là nhỏ. Do v壱y, việc xác đ鵜nh
giao IWS của các t壱p mục là rất nhanh (do đ瓜 phức t衣p thu壱t toán xác đ鵜nh
giao phụ thu瓜c vào s嘘 l逢ợng các đo衣n của các IWS), d磯n đ院n th運i gian khai
thác khi sử dụng IWS là nhỏ so v噂i DBV hay DIFFSET.
2.2. Thu壱t toán khai thác FWUI
Phần này trình bày về cấu trúc d英 liệu Multi bit segment và áp dụng vào
bƠi toán khai thác FWUI. Đơy lƠ m瓜t c違i ti院n khác của DBV [43] N瓜i dung
nƠy đư đ逢ợc công b嘘 t衣i công trình [35].
2.2.1. Cấu trúc Multi bit segment
Định nghĩa 2.5. Multi bit segment (MBiS) là m瓜t cấu trúc l逢u l衣i các
đo衣n bit 1 liên ti院p từ bitậvector bi吋u di宇n tidset của t壱p mục. Mỗi đo衣n MBiS
g欝m thành phần:
Start: Ch雨 s嘘 bit 1 đầu đo衣n
End: Ch雨 s嘘 bit 1 cu嘘i đo衣n
M瓜t ví dụ về MBiS nh逢 sau:
B違ng 2.8. Bitậvector v噂i 96 phần tử
Ch雨 s嘘 bit 1 2 … 15 16 17 … 35 36 37 … 58 59 60 … 80 81 82 … 96
Giá tr鵜 bit 0 0 0 0 1 1 … 1 0 0 … 0 1 1 … 1 0 0 … 0
52
B違ng 2.8 trình bày bitậvector g欝m 96 phần tử (t逢挨ng ứng v噂i 12 byte).
MBiS của bitậvector trên g欝m hai đo衣n t逢挨ng ứng nh逢 sau:
MBiS: [16,35], [59,80]
Cho MBiS(X) và MBiS(Y) là các MBiS củat壱p mục X và t壱p mục Y thu瓜c
CSDL DB. Ta có các đ鵜nh nghƿa sau:
Định nghĩa 2.6. MBiS của t壱p mục X bao g欝m nhiều đo衣n, mỗi đo衣n là
các bit 1 liên ti院p trên bitậvector bi吋u di宇n tidset của t壱p mục X:
MBiS(X) = { [嫌怠 , �怠], [嫌態 , �態], ..., [嫌賃 , �賃]},
Với ei 半 si,i {1, 2,...,k} và 嫌沈 > �沈−怠 ,i ∈ {2, 3, ...,k}.
Ví dụ 2.8: Trong B違ng 2.8, MBiS có hai đo衣n là [16, 35] và [59, 80] nh逢
trong B違ng 2.9.
B違ng 2.9. MBiS từ bitậvector 荏 B違ng 2.8
[16, 35] [59, 80]
Đo衣n 1 Đo衣n 2
Định nghĩa 2.7. Phần tử i đ逢ợc g丑i là thu瓜c MBiS(X)(i ∈ MBiS(X)) n院u
và ch雨 n院u t欝n t衣i m瓜t đo衣n [嫌珍, �珍 ] là m瓜t đo衣n củaMBiS(X) sao cho 嫌珍 判 i判�珍 .
Ví dụ 2.9: V噂i MBiS(X) = {[16, 35], [59, 80]}, ta nói rằng 30 thu瓜c
MBiS(X) b荏i vì 16 判 30 判 35, mà [16, 35] là m瓜t đo衣n thu瓜c MBiS(X).
Định nghĩa 2.8. Giao của MBiS(X) và MBiS(Y) đ逢ợc đ鵜nh nghƿa lƠ
MBiS(X) 堪 MBiS(Y). N院u ∀i ∈ MBiS(X) 堪 MBiS(X), thìi ∈MBiS(X) và i ∈ MBiS(Y) vƠ ng逢ợc l衣i.
Ví dụ 2.10: V噂i MBiS(X) = { [5, 20], [35, 50]}và MBiS(Y) = {[15, 25],
[40, 60]}. MBiS(X) 堪 MBiS(Y) = { [15, 20], [40, 50]}.
Định nghĩa 2.9. Cho t壱p mục X của CSDL DB, các ch雨 s嘘 bit 1 trong
MBiS(X) là các giao d鵜ch trong CSDL DB, do đó công thức 1.4 đ逢ợc vi院t l衣i
nh逢 sau:
53
wus(X) = ∑ 建拳憲岫建�岻� ∈�稽��岫隙岻�憲兼_建拳憲 (2.3)
Trong đó: Sum_twu = ∑ 建拳憲岫建賃岻陳賃 = 怠 v噂i m là s嘘 l逢ợng các giao d鵜ch
trong CSDL DB.
2.2.2. Thuật toán xác định giao MBiS
Thuật toán 2.5: INTERSECTION_MBiS
Input: MBiS(X) có n1 đoạn. 4oạn i có Starts = Si và End = Ei
MBiS(Y) có m1 đoạn. 4oạn j có Starts = Sj và End = Ej
Output: Z = MBiS(X) 堪 MBiS(Y)
Method name: INTERSECTION_MBiS()
1
2
3
4
5
6
7
8
9
10
11
12
13
INTERSECTION_MBiS(MBiS(X), MBiS(Y))
Z = ∅; while (i 判 券怠 and j 判 兼怠)
i1 IWS(X) và j1 IWS(Y岻 là các đoạn giao đầu tiên của IWS(X) và
IWS(Y), tính từ đoạn i trên IWS(X岻 và đoạn j trên IWS(Y);
Start = max(MBiS(X) [i1].start, MBiS(Y) [j1].start);
End = min(MBiS(X) [i1].end, MBiS(Y) [j1].end);
Z = Z 姦 { [Start,End]};
if(End = MBiS(X) [i1].end)then
i = i1 + 1;// chuyển sang đoạn khác trênMBiS(X)
j = j1;
else
j = j1 + 1;// chuyển sang đoạn khác trênMBiS(Y)
i = i1;
return Z;//Z là kết quả củaMBiS(X) 堪 MBiS(Y)
Hình 2.22. Thuật toán xác định giao hai MBiS
Đ瓜 phức t衣p của thu壱t toán INTERSECTION_MBiS trong hình 2.22 là
O(n + m), v噂i n và m là s嘘 l逢ợng đo衣n t逢挨ng ứng của MBiS(X) và MByS(Y).
Đ吋 xác đ鵜nh giao của hai MBiS, ta ch雨 cần xác đ鵜nh max và min của các đo衣n
54
giao nh逢 dòng 5 vƠ 6, đó chính lƠ start vƠ end của đo衣n giao cần tìm. Do đó
ti院t kiệm đ逢ợc th運i gian trong xử lý.
2.2.3. Thuật toán khai thác FWUI dựa trên MBiSậtree
2.2.3.1. Cấu trúc MBiSậtree
Cấu trúc d英 liệu MBiSậtree đ逢ợc đề xuất trong [35] dùng đ吋 khai thác
FWUI trên QDB. Mỗi nút trên MBiSậtree g欝m ba thành phần X, MBiS(X) và
wus(X), trong đó:
ậ X là m瓜t t壱p mục,
ậ MBiS(X) là MBiS của X,
ậ wus(X) là giá tr鵜 wus của X.
K院t n嘘i hai nút X và Y t衣o ra nút m噂i X 姦 Y, v噂i điều kiện X và Y có cùng
đ瓜 dài và cùng tiền t嘘 |X|ậ1 phần tử. Đ欝ng th運i wus(X 姦 Y) 半 minwus v噂i
minwus do ng逢運i sử dụng đ鵜nh nghƿa.
2.2.3.2. Thuật toán tính wus của tập mục
Đ吋 khai thác FWUI trên QDB, cần ph違i xác đ鵜nh wus của các t壱p mục
theo công thức 2.3. Do đó cần ph違i xác đ鵜nh tidset của các t壱p mục d詠a trên
MBiS của các t壱p mục. Thu壱t toán đ逢ợc trình bày trong Hình 2.23.
Thuật toán2.6: CALCULATION_WUS
Input: MBiS(X)
Output: wus của X
Method name: CALCULATION_WUS()
1
2
3
4
CALCULATION_WUS(MBiS(X))
for all i ∈ MBiS(X) do
for all j ∈ đoạn i của MBiS(X) do
s = s + twu(建珍岻;
return (s/Sum_twu);
Hình 2.23. Thuật toán tính wus dựa trên MBiS
55
Việc tính wus của t壱p mục d詠a trên MBiS rất đ挨n gi違n, do cấu trúc
MBiS l逢u các đầu và cu嘘i đo衣n bit 1 liên ti院p trên bitậvector. Do đó ch雨 cần
đ瓜 phức t衣p O(1) đ吋 xác đ鵜nh các ID giao d鵜ch. Nên đ瓜 phức t衣p thu壱t toán
CALCULATION_WUS() là O(k) v噂i k là s嘘 l逢ợng các giao d鵜ch chứa X. Nói
cách khác k chính là tổng s嘘 bit 1 trên bitậvector của t壱p mục X.
2.2.3.3. Thuật toán MBiS–FWUI
L噂p trên cùng (mức 0) của MBiSậtree đ逢ợc kí hiệu là []. L噂p thứ nhất
chứa các 1–itemset thỏa mãn minwus. Mức thứ k chứa các k–itemset thỏa mãn
minwus.
Mỗi mức của MBiSậtree chứa các l噂p t逢挨ng đ逢挨ng, mỗi l噂p t逢挨ng
đ逢挨ng đ逢ợc t衣o thành từ m瓜t mục cha 荏 mức trên k院t hợp lần l逢ợt v噂i các nút
cùng l噂p t逢挨ng đ逢挨ng của mục cha đó. Các nút trong cùng m瓜t l噂p t逢挨ng đ逢挨ng ch雨 khác nhau phần tử cu嘘i cùng. Mức k chứa các k–itemset đ逢ợc t衣o
từ s詠 k院t hợp các cặp nút từ mức (k ậ 1) g欝m các (k ậ 1)–itemset. Mỗi nút
đ逢ợc thêm vào MBiSậtree n院u giá tr鵜 wus của t壱p mục đó 半 minwus. Do v壱y,
MBiSậtree chứa tất c違 các FWUI khai thác theo ng逢ỡng minwus.
Quá trình xây d詠ng MBiSậtree theo mô t違 trên đ逢ợc trình bày bằng thu壱t
toán MBiSậFWUI.
Thuật toán 2.7: MBiS_FWUI
Input: QDB BD vàminwus;
Output: MBiS–tree chứa tất cả FWUI thỏa mãn minwus của DB
Method name: MBiS_FWUI()
1
2
3
4
MBiS_FWUI()
[] = jI|wus_ j半 minwus; MBiS–tree = ; P = ;
FWUI_MINE(P);
FWUI_mine( [P])
56
5
6
7
8
9
10
11
12
13
14
for all li ∈ [P] do
[Pi] = ;
for all lj∈ [P], (vớij>i) do
X = li 姦 lj;
Y =INTERSECTION_MBiS(MBiS(li), MBiS(lj));
wus_X = CALCULATION_WUS(Y);
if (wus_X 半 minwus) then
[Pi] = [Pi] 姦 {(X, Y, wus_X)};
MBiS–tree = MBiS–tree姦 [Pi];
FWUI_MINE( [Pi])
Hình 2.24. Thuật toán khai thác FWUI dựa trên MBiS–tree
Đầu vào của thu壱t toán MBiSậFWUI là QDBD và minwus. Tr逢噂c h院t,
CSDL đ逢ợc quét m瓜t lần đ吋 tính wus của các mục (dòng 2), các mục thỏa
mãn minwus đ逢ợc đ逢a vƠo mức 0 của MBiS (dòng 3). Từ dòng 6 đ院n dòng 9,
k院t n嘘i m瓜t nút v噂i các nút sau đó (j > i) trong cùng m瓜t l噂p t逢挨ng đ逢挨ng. Dòng 10 tính giao MBiS của t壱p mục m噂i t衣o thành 荏 b逢噂c 9 theo thu壱t toán
2.5. Dòng 11 tính wus theo thu壱t toán 2.6. Dòng 12, t壱p mục X đ逢ợc k院t n衣p
vào l噂p P i n院u thỏa mãn minwus. Dòng 13, l噂p t逢挨ng đ逢挨ng P i đ逢ợc k院t n衣p
vào MBiSậtree. Cu嘘i cùng, dòng 14 g丑i đệ qui v噂i l噂p P i.
2.2.4. Kết quả thực nghiệm
CSDL th詠c nghiệm và môi tr逢運ng th詠c nghiệm nh逢 trong mục 2.1.4. S嘘
l逢ợng cho các mục xuất hiện trong các giao d鵜ch đ逢ợc thêm bằng cách sinh
ng磯u nhiên trong kho違ng [1, 10] đ嘘i v噂i các CSDL: RETAIL, BMSậPOS,
CONNECT, ACCIDENTS.
Sau đơy lƠ hình các k院t qu違 th詠c nghiệm v噂i cấu trúc MBiS đ逢ợc sử
dụng trong thu壱t toán MBiS_FWUI so sánh v噂i các thu壱t toán khi cƠi đặt
bằng cấu trúc DBV và DIFFSET.
57
2.2.4.1. So sánh thời gian thực thi:
Hình 2.25. So sánh th運i gian ch衣y trên CSDL RETAIL.
Hình 2.26. So sánh th運i gian ch衣y trên CSDL BMSậPOS.
Hình 2.27. So sánh th運i gian ch衣y trên CSDL SALEậFACTậ1997.
Hình 2.28. So sánh th運i gian ch衣y trên CSDL SALEậFACTậ1997+1998.
139,571
29,648
64,141
0
50
100
150
0,6 0,5 0,4 0,3 0,2 0,1
tim
e(s
)
minws(%)
DBV
MBiS
DIFFSET
232,209
85,102
125,091
0
50
100
150
200
250
0,6 0,5 0,4 0,3 0,2 0,1
tim
e(s
)
minws(%)
DBV
MBiS
DIFFSET
309,301
98,594
72,427
0
100
200
300
400
0,3 0,2 0,1 0,06 0,03 0,01
tim
e(s
)
minws(%)
DBV
DIFFSET
MBiS
2501,68
345,81
563,70
0
500
1000
1500
2000
2500
3000
0,3 0,2 0,1 0,06 0,03 0,01
tim
e(s
)
minws(%)
DBV
MBiS
DIFFSET
58
Hình 2.29. So sánh th運i gian ch衣y trên CSDL SALEậFACTậSYNC.
Hình 2.30. So sánh th運i gian ch衣y trên CSDL CONNECT.
Hình 2.31. So sánh th運i gian ch衣y trên CSDL ACCIDENTS.
2.2.4.1. So sánh bộ nhớ:
Hình 2.32. So sánh b瓜 nh噂 sử dụng trên CSDL RETAIL.
2748,776
640,854 526,32
0
1000
2000
3000
0,3 0,2 0,1 0,06 0,03 0,01
tim
e(s
)
minws(%)
DBV
DIFFSET
MBiS
41,935
55,202
6,094 0
20
40
60
0,96 0,95 0,94 0,93 0,92 0,9
tim
e(s
)
minws(%)
DBV
MBiS
DIFFSET
212,667
139,278
30,742 0
100
200
300
0,9 0,8 0,7 0,6 0,5
tim
e(s
)
minws(%)
DBV
MBiS
DIFFSET
160,687
35,131
48,479
0
50
100
150
200
0,6 0,5 0,4 0,3 0,2 0,1
me
mo
ry(M
b)
minws(%)
DBV
MBiS
DIFFSET
59
Hình 2.33. So sánh b瓜 nh噂 sử dụng trên CSDL BMSậPOS.
Hình 2.34. So sánh b瓜 nh噂 sử dụng trên CSDL SALEậFACTậ1997.
Hình 2.35. So sánh b瓜 nh噂 sử dụng trên CSDL SALEậFACTậ1997+1998.
Hình 2.36. So sánh b瓜 nh噂 sử dụng trên CSDL SALEậFACTậSYNC.
213,67
144,981
431,725
0
100
200
300
400
500
0,6 0,5 0,4 0,3 0,2 0,1
me
mo
ry(M
b)
minws(%)
DBV
MBiS
DIFFSET
622,14 720
542,7
0
200
400
600
800
0,03 0,02 0,1 0,06 0,03 0,01
me
mo
ry(M
b)
minws(%)
DBV
MBiS
DIFFSET
1477,976 1549,32
1344,846
0
500
1000
1500
2000
0,3 0,2 0,1 0,06 0,03 0,01
me
mo
ry(M
b)
minws(%)
DBV
MBiS
DIFFSET
1543,975 1699,922
1482,239
0
500
1000
1500
2000
0,6 0,5 0,4 0,3 0,2 0,1
me
mo
ry(M
b)
minws(%)
DBV
MBIS
DIFFSET
60
Hình 2.37. So sánh b瓜 nh噂 sử dụng trên CSDL CONNECT.
Hình 2.38. So sánh b瓜 nh噂 sử dụng trên CSDL ACCIDENT.
Hình 2.25 đ院n 2.29 và Hình 2.32 đ院n 2.36 cho thấy rằng cấu trúc MBiS
hiệu qu違 h挨n DBV và DIFFSET trên các CSDL th逢a. Ví dụ, trên CSDL
RETAIL v噂i minws = 0,1%. Th運i gian khai thác của MBiS, DIFFSET và
DBV lần l逢ợt là 29,648s, 64,141s và 139,571s. B瓜 nh噂 sử dụng của IWS,
MBiS, DIFFSET và DBV lần l逢ợt là 35,131MB, 48,479MB và 160,687MB.
Hình 2.30, 2.31, 2.37 và 2.38 cho thấy MBiS không t嘘t h挨n DBV và
DIFFSET trên các CSDL dày. Do MBiS b鵜 phân m違nh thành quá nhiều đo衣n
bit 1, do đó việc xác đ鵜nh giao MBiS của các cặp t壱p mục s胤 t嘘n nhiều th運i
gian do s嘘 l逢ợng các đo衣n bit 1 là rất l噂n.
41,935 46,579
6,094
0
10
20
30
40
50
0,96 0,95 0,94 0,93 0,92 0,9
me
mo
ry(M
b)
minws(%)
DBV
MBiS
DIFFSET
78,172
132,436
30,742
0
20
40
60
80
100
120
140
0,9 0,8 0,7 0,6 0,5
me
mo
ry(M
b)
minws(%)
DBV
MBiS
DIFFSET
61
2.3. Thu壱t toán khai thác TRFWUIk
Phần này trình bày ki院n thức c挨 s荏 về bài toán khai thác TRFWUIk trên
QDB vƠ đề xuất hai cấu trúc m噂i DTab và DHeap v噂i hai thu壱t toán t逢挨ng
ứng DTabậTRFWUI và DHEAP_TRFWUI khai thác FWUIk trên QDB.
N瓜i dung về cấu trúc DTab đư đ逢ợc công b嘘 t衣i công trình [19].
2.3.1. Một số khái niệm
Định nghĩa 2.10. (Rank của m瓜t t壱p mục) Cho m瓜t t壱p mục X ( I) của
QDB DB. Rank của X là Rx đ逢ợc xác đ鵜nh nh逢 sau:
Rx = |{wus(Y)|wus(Y) >wus(X), ∀Y I}| +1.
Bổ đề 2.1 : Cho hai t壱p mục X và Y (X, YI). N院u wus(X) = wus(Y) thì Rx
= Ry.
Định nghĩa 2.11. TRFWUIk của QDB BD là t壱p tất c違 các t壱p mục X
mà X I và Rx 判 k:
TRFWUIk = X {∀ X I, Rx 判 k}
Ví dụ 2.11: Xét CSDL DB trong ví dụ 1.4, ta có TRFWUI3, TRFWUI4,
TRFWUI5 nh逢 trong B違ng 2.10.
B違ng 2.10. B違ng TRFWUIk
K TRFWUIk Số lượng
3 {1,0: B},{0,898: E, BE},{0,803: A, AB, ABE} 6
4 {1,0: B},{0,898: E, BE},{0,803: A, AB, ABE}, {0,764: D, BD} 8
5 {1,0: B},{0,898: E, BE},{0,803: A, AB, ABE}, {0,764: D,
BD},{0,662: AD, DE, ABD, ADE, BDE, ABDE} 14
Từ B違ng 2.10, v噂i k = 3 ta có sáu FWUI và k = 5 có m逢運i b嘘n FWUI
thỏa mưn. Trong đó E và BE có cùng nhóm do cùng đ瓜 đo wus. T逢挨ng t詠, A,
AB và ABE có cùng nhóm do có cùng wus = 0,803.
62
Bổ đề 2.2: T壱p mục X (X I) của m瓜t QDB DB, n院u X TRFWUIk thì
các t壱p mục Y (Y I và X Y) TRFWUIk.
Nh逢 v壱y, bài toán khai thác TRFWUIk từ QDB là bài toán tìm tất c違 các
t壱p mục X sao cho {X|X I, Rx 判 k}
2.3.2. Cấu trúc DTab
DTab [45] là m瓜t danh sách liên k院t hai chiều g欝m k phần tử có giá tr鵜
gi違m dần. Nh逢 v壱y phần tử thứ k là phần tử có giá tr鵜 nhỏ nhất g丑i là min–
DTab. Ví dụ v噂i k = 5 trong B違ng 2.10 ta có DTab nh逢 Hình 2.39:
1,0 → ←
0,898 → ←
0,803 → ←
0,764 → ←
0,662 → NULL
Hình 2.39. DTab v噂i k = 5
DTab trong Hình 2.40 có năm phần tử, phần tử thứ nhất có giá tr鵜 1,0,
phần tử thứ hai có giá tr鵜 0,898, v.v..., min–DTab = 0,662.
V噂i cấu trúc nh逢 trên, việc thêm m瓜t phần tử vƠo DTab đ吋 đ違m b違o thứ
t詠 gi違m dần có chi phí O(k). Đ欝ng th運i v噂i nó là việc lo衣i phần tử cu嘘i cùng
ra khỏi DTab mất chi phí O(1).
2.3.3. Cấu trúc TR–tree
TRậtree là m瓜t cây g欝m nhiều mức, mỗi mức g欝m nhiều l噂p t逢挨ng
đ逢挨ng, mỗi l噂p t逢挨ng đ逢挨ng g欝m nhiều nút, các nút trong cùng m瓜t l噂p
t逢挨ng đ逢挨ng có cùng nút cha 荏 mức trên, có s嘘 phần tử bằng nhau và ch雨 khác
nhau phần tử cu嘘i cùng.
Đ吋 t嘘i 逢u b瓜 nh噂 l逢u tr英 tidset của các t壱p mục vƠ tăng t嘘c đ瓜 tính toán
trong khai thác TRFWUIk, trong phần này tidset của các t壱p mục đ逢ợc bi吋u
di宇n b荏i cấu trúc IWS [35, 37] đư đ逢ợc trình bày trong mục 2.1.
Mỗi nút g欝m ba thành phần:
- T壱p mục X
63
- IWS của X
- wus của X
K院t hợp hai nút trong cùng m瓜t l噂p t逢挨ng đ逢挨ng t衣o ra nút m噂i trên TRậ
tree 荏 mức ti院p theo n院u wus của t壱p mục m噂i t衣o thành 半 min–DTab. Đ欝ng
th運i chèn wus(X) vào DTab và c壱p nh壱t l衣i min–DTab m噂i.
2.3.4. Thuật toán khai thác TRFWUIk sử dụng cấu trúc dữ liệu DTab
Thu壱t toán DTAB_TRFWUI d詠a trên TRậtree g欝m ba b逢噂c nh逢 sau:
Bước 1: Quét CSDL tính wus của các mục, n院u s嘘 l逢ợng mục có giá tr鵜
wus khác nhau 半 k thì ch雨 lấy đúng k wus khác nhau l噂n nhất. Các mục này
đ逢ợc đ逢a vƠo l噂p thứ nhất của TRậtree và là m瓜t l噂p t逢挨ng đ逢挨ng. Đ欝ng th運i
đ逢a các giá tr鵜 wus của các mục này vào DTab theo thứ t詠 gi違m dần. min–
DTab là giá tr鵜 nhỏ nhất wus trong DTab (DTab[k]).
Bước 2: K院t n嘘i các cặp l–itemset (Xl và và Yl) trong các l噂p t逢挨ng
đ逢挨ng đ吋 t衣o ra các (l+1)–itemset là {X, wus_X, IWS(X)} 荏 l噂p ti院p theo n院u
wus_Xl và wus_Yl cùng 半 min–DTab:
N院u DTab ch逢a đủ k phần tử thì bổ sung wusậX vào DTab
Ng逢ợc l衣i, n院u wus_X 半 min–DTab thì:
- N院u trên DTab đư t欝n t衣i m瓜t giá tr鵜 = wus_X thì thêm nút m噂i {X,
wus_X, IWS(X)} vào TRậtree.
- Ng逢ợc l衣i, lo衣i phần tử thứ k trên DTab (DHaep) và chèn wus_X
vào DTab sao cho đ違m b違o tính gi違m dần của DTab, đ欝ng th運i thêm
nút m噂i {X, wus_X, IWS(X)} vào TRậtree.
Bước 3: Lặp l衣i b逢噂c 2 cho đ院n khi nào không có thêm t壱p mục nào
đ逢ợc t衣o ra.
K院t thúc thu壱t toán, các t壱p mục trên TRậtree có wus 半 min–DTab là các
TRFWUIk khai thác đ逢ợc.
64
Thu壱t toán đ逢ợc mô t違 nh逢 Hình 2.40:
Thuật toán 2.9: GEN_DTAB–TR–TREE
Input: QDB DB và k;
Output: DTab, TR–tree
Method name: GEN_DTAB–TR–TREE()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
GEN_DTAB–TR–TREE(DB, k)
d = 0;
[] = jI, j là 1–itemset; for all j ∈ [] do
if (d 判k) then
DTab ←wus_X;
Update min–DTab;
P = [];
DTAB–TR–TREE( [P]);
for all li ∈ [P] do
[Pi] = ;
if (wus_li半min–DTab) then
for all lj∈ [P], với (j> i) do
if (wus _lj 半 min–DTab) then
X = lI 姦 lj;
IWS_X = INTERSECTION_IWS(IWS(li), IWS(lj));
Tính wus_X dựa trên IWS(X);
if (wus_X 半 min–DTab) then
[Pi] = [Pj] 姦 {(X, wus_X, IWS_X};
if (wus_X>min–DTab) then
DTab ←wus_X;
Update min–DTab;
DTAB–TR–TREE( [Pi]);
Hình 2.40. Thuật toán tạo TR–tree sử dụng DTab
65
Dòng 3, tìm các 1–itemset và sắp x院p gi違m dần theo wus. Dòng 4 đ院n
dòng 6, k院t n衣p các 1–itemset vào DTab. Dòng 15 sử dụng hai thu壱t toán
INTERSECTION_IWS(IWS(li), IWS(lj)) đ逢ợc trình bày trong [16] dùng đ吋
tính giao hai IWS. Dòng 17 và 18, n院u wus 半 min–DTab thì chèn nút m噂i vào
TRậtree. Dòng 19 đ院n dòng 21, n院u wus > min–DTab chèn wus vào DTab và
c壱p nh壱t l衣i giá tr鵜 min–DTab. Dòng 22 g丑i đệ quy v噂i l噂p t逢挨ng đ逢挨ng m噂i
P i.
Nh逢 v壱y ch雨 các t壱p mục trong cùng m瓜t l噂p t逢挨ng đ逢挨ng có giá tr鵜
wus 半 min–DTab m噂i đ逢ợc xét k院t n嘘i v噂i nhau đ吋 t衣o ra các t壱p mục m噂i,
các t壱p mục m噂i nƠy cũng ph違i có wus 半 min–DTab m噂i đ逢ợc chèn vào TRậ
tree, đ欝ng th運i min–DTab đ逢ợc c壱p nh壱t m噂i sau mỗi lần chèn m瓜t wus vào
DTab. Đơy lƠ điều kiện đ吋 cắt nhánh nhanh trên TRậtree.
K院t thúc thu壱t toán GEN_TRậTree t衣o ra cây TRậtree chứa các t壱p mục
đư đ逢ợc xét trong quá trình khai thác TRFWUIk, nhiều t壱p mục thu瓜cTRậtree
nh逢ng không lƠ TRFWUIk do các wus đ逢ợc c壱p nh壱t trên DTab đư lo衣i các
t壱p mục này khỏi TRFWUIk. Thu壱t toán DTabậTRFWUI trong Hình 2.41 có
chức năng l丑c các t壱p mục trên TRậtree là TRFWUIk
Thuật toán 2.10: DTAB_TRFWUI
Input: QDB DB và ngưỡng k
Output: Z là TRFWUIk
Method name: DTAB_TRFWUI()
1
2
3
DTAB_TRFWUI(TR–tree,min–DTab)
GEN_DTAB–TR–TREE(DB, k)
Z = ∅;
for all X ∈ TR–tree do
if (X.wus 半 min–DTab)then
66
4 Z ← {X.itemset, X.wus};
Hình 2.41. Thuật toán lọc ra TRFWUIk
Thu壱t toán DTAB_TRFWUI g丑i hàm GEN_DTABậTRậTREE() đ吋 t衣o
TRậtree 荏 dòng 1, sau đó xét tất c違 các nút thu瓜c TRậtree và l丑c ra các t壱p
mục có wus không nhỏ h挨n min–DTabậchính là TRFWUIk từ dòng 2 đ院n
dòng 5.
2.3.5. Thuật toán khai thác nhanh TRFWUIk dựa trên cấu trúc DHeap
2.3.5.1. Cấu trúc DHeap
Cấu trúc DTab dùng đ吋 c壱p nh壱t các giá tr鵜 wus thỏa mưn ng逢ỡng min–
DTab của các t壱p mục trong quá trình khai thác TRFWUIk nh逢 đư trình bƠy 荏
trên có chi phí O(k) đ吋 chèn m瓜t phần tử m噂i. Tuy nhiên, v噂i nh英ng tr逢運ng
hợp giá tr鵜 k l噂n thì chi phí cho việc chèn các giá tr鵜 m噂i vào DTab v磯n t嘘n
nhiều th運i gian. Đ吋 gi違i quy院t vấn đề này, lu壱n án đề xuất cấu trúc Dynamic
Heap (DHeap) lƠ hƠng đợi 逢u tiên (Heap) nghƿa lƠ các giá tr鵜 l噂n h挨n s胤 có
thứ t詠 逢u tiên xử lý tr逢噂c (đ嘘ng max). Thao tác c壱p nh壱t giá tr鵜 m噂i vào
DHeap mất chi phí O(log(k)). Nên thay th院 DTab bằng DHeap s胤 giúp gi違m
th運i gian đáng k吋 trong khai thác TRFWUIk. M瓜t ví dụ v噂i DHeap đ逢ợc trình
bày trong hình 2.42.
Hình 2.42. DHeap v噂i k = 5 v噂i CSDL trong ví dụ 1.4
1.0
0,803 0,898
0,764 0,662
67
2.3.5.2. Thuật toán chèn một phần tử vào DHeap
Thu壱t toán chèn m瓜t giá tr鵜 m噂i vƠo DHeap đ逢ợc trình bƠy nh逢 Hình
2.43:
Thuật toán 2.9: INSERT_DHEAP
Input: value và DHeap
Output: DHeap đã được cập nhật
Method name: INSERT_DHEAP()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DOWNHEAP(DHeap)
if (DHeap = NULL) then
exit;
CurrentIndex = DHeap [0]; // Top Heap
while (CurrentIndex <DHeap.Size) do
Child1 = CurrentIndex * 2;
Child2=(Child1 = =DHeap.Size ? Child1 : Child1 +1);
Child = DHeap [Child1].value <DHeap [Child2].value ? Child1: Child2;
if (DHeap [CurrentIndex].value<DHeap [Child].value) then
exit;
else
swap(DHeap [CurrentIndex], DHeap [Child]);
CurrentIndex = Child; ––– – – – – – – – – – – – – – – – – – – – – – – – – – – – –
UPHEAP(DHeap)
if (DHeap = NULL) then
exit;
CurrentIndex = DHeap.Size – 1;
while(CurrentIndex>0 and DHeap [CurrentIndex].value<DHeap
[CurrentIndex/2].Value) do
swap(DHeap [CurrentIndex], DHeap [CurrentIndex/2]);
68
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
CurrentIndex = CurrentIndex/2; – – – – – – – – – – – – – – – – – – – – – – – – – – – – – –
INSERT _DHEAP(itemset, value, DHeap)
if (DHeap = NULL) then
DHeap = new array of lengthk;
if (DHeap.Size = 0) then
DHeap [0].value = value;
DHeap.Size = 1;
return true;
if (DHeap.Size<k) then
DHeap.Size = DHeap.Size + 1;
DHeap [DHeap.Size].value = value;
UpHeap(DHeap);
return true;
if (value>DHeap [0].value) then
return false;
if (value = DHeap [0].value) then
DHeap [0].addToCollection(itemset); // Nhiều tập mục cùng giá trị return true;
DHeap [0].value = value;
DHeap [0].clearCollection();
DHeap [0].addCollection(itemset);
DownHeap(DHeap);
Hình 2.43. Thuật toán chèn một nút mới vào DHeap
2.3.5.3. Thuật toán khai thác nhanh TRFWUIk dựa trên DHeap
Thu壱t toán DHEAP_TRFWUI khai thác nhanh TRFWUIk trên CSDL s嘘
l逢ợng d詠a trên cấu trúc DHeap g欝m b嘘n b逢噂c nh逢 thu壱t toán
DTAB_TRFWUI. Ch雨 thay cấu trúc DTab bằng cấu trúc DHeap trong quá
69
trình c壱p nh壱t các giá tr鵜 wus. Hình 2.44 là thu壱t toán t衣o cây TRậtree k院t hợp
DHeap trong quá trình cắt nhánh các t壱p mục chắc chắn không thỏa mãn:
Thuật toán 2.9: GEN_DHEAP–TR–TREE
Input: QDB DB và k;
Output: DHeap, TR–tree
Method name: GEN_DHEAP–TR–TREE()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
GEN_DHEAP–TR–TREE(DB, k)
d = 0;
[] = jI|j là 1–itemset; for all j ∈ [] do
if (d 判k) then
INSRERT_DHEAP(wus_j); // wus của mục j
DHEAP–TR–TREE( [P]);
P = [];
for all li ∈ [P] do
[Pi] = ;
if (wus_li 半 min–Dheap) then
for all lj ∈ [P], (vớij > i) do
if (wus_lj 半 min–DTab) then
X = li 姦lj;
IWS_X = INTERSECTION_IWS(IWS(li), IWS(lj));
Tính wus_X dựa trên IWS(X);
if (wus_X半 min–DHeap) then
[Pi] = [Pi] 姦 {(X, wus_X, IWS_X};
if (wus_X >min–DHeap) then
INSRERT_DHEAP(wus_X);
DHEAP–TR–TREE( [Pi]);
Hình 2.44. Thuật toán tạo TR–tree sử dụng DHeap
70
Thu壱t toán l丑c TRFWUIk từ TRậtree nh逢 Hình 2.45
Thuật toán 2.10: DHEAP_TRFWUI
Input: QDB DB và ngưỡng k
Output: Z là TRFWUIk
Method name: DHEAP_TRFWUI()
1
2
3
4
DHEAP_TRFWUI(TR–tree, min–DHeap)
GEN_DHEAP–TR–TREE(DB, k)
Z = ∅;
for all X ∈TR–tree do
if (X.wus 半min–DHeap)then
Z ← {X.itemset, X.wus};
Hình 2.45. Thuật toán lọc ra TRFWUIk
2.3.6. Kết quả thực nghiệm
2.3.6.1. CSDL thực nghiệm
Phần này trình bày các k院t qu違 th詠c nghiệm về th運i gian th詠c thi của hai
ph逢挨ng pháp đề xuất DHeap_TRFWUI và DTab_TRFWUI v噂i ph逢挨ng pháp
VTK. CSDL th詠c nghiệm đ逢ợc trình bƠy nh逢 trong B違ng 2.7
2.3.6.2. Kết quả thực nghiệm
Hình 2.46. So sánh th運i gian ch衣y trên CSDL MBSậPOS
75,28 141,21
527,81
0
100
200
300
400
500
600
100 200 300 400 500
Tim
e(s
)
k
Dheap-TRFWUI
DTab-TRFWUI
VTK
71
Hình 2.47. So sánh th運i gian ch衣y trên CSD L RETAIL
Hình 2.48. So sánh th運i gian ch衣y trên CSDL CONNECT
Hình 2.49. So sánh th運i gian trên CSDL SALEậFACTậ1997
Hình 2.50. So sánh th運i gian trên CSDL SALEậFACTậ1997+1998
107,4 211,66
728,12
0
200
400
600
800
100 200 300 400 500
Tim
e(s
)
k
Dheap-TRFWUI
DTab-TRFWUI
VTK
68,2 164,22
578,62
0
200
400
600
800
100 200 300 400 500
Tim
e(s
)
k
DHeap-TRFWUI
DTab-TRFWUI
VTK
104,2
279,02
732,06
0
200
400
600
800
100 200 300 400 500
Tim
e(s
)
k
DHeap-TRFWUI
DTab-TRFWUI
VTK
97,61
269,2
685,1
0
200
400
600
800
100 200 300 400 500
Tim
e(s
)
k
DHeap-TRFWUI
DTab-TRFWUI
VTK
72
Hình 2.51. So sánh th運i gian trên CSDL SALEậFACTậSYNC
Các k院t qu違 th詠c nghiệm từ Hình 2.46 đ院n 2.51 cho thấy hiệu qu違 của
ph逢挨ng pháp DtabậTRFWUI và DHEAP_TRFWUI so v噂i VTK trên các
CSDL th詠c nghiệm. Ph逢挨ng pháp hiệu qu違 nhất là DHEAP_TRFWUI v噂i
việc sử dụng cấu trúc DHeap. Ví dụ trên CSDL RETAIL v噂i k = 500, VTK có
th運i gian xử lý là 527,81s, DTabậTRFWUI là 141,21s, trong khi
DHEAP_TRFWUI là 107,4s. Th運i gian ch衣y của VTK nhiều h挨n 3,74 lần so
v噂i DTabậFWUI và nhiều h挨n DHEAP_TRFWUI 4,91 lần.
K院t qu違 th詠c nghiệm 荏 trên cho thấy việc sử dụng DHeap, DTab là rất
hiệu qu違, không t嘘n th運i gian l丑c ra các t壱p mục cùng l噂p đ吋 k院t n嘘i chúng l衣i
do trên cây TRậtree đư có sẵn các l噂p. Đ欝ng th運i việc c壱p nh壱t các giá tr鵜
min–DTab v噂i chi phí O(1) trên DTab, DHeap và cắt nhánh nhanh trên TRậ
tree. Ngoài ra, thao tác tìm và chèn m瓜t phần tử m噂i vào DHeap ch雨 mất th運i
gian O(nlogn).
2.4. K院t lu壱n ch逢挨ng
Ch逢挨ng nƠy t壱p trung trình bày các k院t qu違 nghiên cứu khai thác nhanh
t壱p mục phổ bi院n trên QDB v噂i các cấu trúc m噂i đề xuất MBiS [35], IWS
[36] theo ti院p c壱n c違i ti院n cấu trúc d英 liệu l逢u tidset theo bitậvector. Đ欝ng
th運i đ逢a ra bài toán khai thác Topậrankậk t壱p phổ trên QDB vƠ đề xuất hai
109,12
281,17
739,15
0
200
400
600
800
100 200 300 400 500
Tim
e(s
)
k
DHeap-TRFWUI
DTab-TRFWUI
VTK
73
cấu trúc DTab [18], DHeap v噂i hai thu壱t toán DTabậTRFWUI [18] và
DHEAP_TRFWUI đ吋 gi違i quy院t hiệu qu違 bài toán này.
Các đề xuất về t嘘i 逢u bitậvector v噂i IWS bằng cách lo衣i bỏ hoàn toàn
các word hai byte có giá tr鵜 bằng 0 trong bi吋u di宇n bitậvector tidset của t壱p
mục. Nghƿa lƠ IWS ch雨 l逢u các word khác 0 liên ti院p trên bitậvector tidset của
các t壱p. Đ欝ng th運i đề xuất sử dụng m違ng MAP l逢u tr英 v鵜 trí bit 1 đ嘘i v噂i các
s嘘 có giá tr鵜 trong kho違ng hai byte đ吋 tính nhanh ws (đ嘘i v噂i khai thác FWI)
và wus (đ嘘i v噂i khai thác FWUI). Các đề xuất này th壱t s詠 có hiệu qu違 nhất là
đ嘘i v噂i các CSDL th逢a. K院t qu違 th詠c nghiệm trong mục 2.2.4.3 đư th吋 hiện rõ
điều đó.
Bên c衣nh đó, ch逢挨ng 2 đề xuất cấu trúc MBiS, bằng cách ch雨 l逢u các
đo衣n bit 1 liên ti院p trên bitậvector của các t壱p mục. V噂i cấu trúc này việc xác
đ鵜nh giao MBiS của hai t壱p mục rất nhanh, do ch雨 cần tính l衣i đầu và cu嘘i mỗi
đo衣n giao. Đ欝ng th運i, việc tính ws (đ嘘i v噂i khai thác FWI) hay tính wus (đ嘘i
v噂i khai thác FWUI). Các k院t qu違 th詠c nghiệm trong mục 2.2.4.3 cho thấy
hiệu qu違 của MBiS so v噂i DBV, tuy nhiên MBiS không hiệu qu違 h挨n IWS,
do việc l逢u các đo衣n bit 1 liên ti院p làm cho MBiS b鵜 “phơn m違nh” quá nhiều
d磯n t噂i việc xác đ鵜nh giao của các MBiS t嘘n nhiều th運i gian.
Cu嘘i cùng, ch逢挨ng 2 đề xuất bài toán khai thác TRFWUIk trên QDB,
đơy lƠ bƠi toán ch逢a đ逢ợc đề c壱p tr逢噂c đơy, mặc dù đư có nhiều công b嘘 liên
quan đ院n bài toán này trên CSDL nh鵜 phân. Cấu trúc DTab v噂i khai thác theo
ti院p c壱n m瓜t lần quét CSDL đư cho thấy hiệu qu違 so v噂i thu壱t toán VTK. Ti院p
theo lu壱n án đề xuất cấu trúc DHeap d詠a trên cấu trúc Heap, v噂i cấu trúc
DHeap việc tìm v鵜 trí chèn wus của t壱p mục m噂i là O(nlogn) giúp gi違m th運i
gian khai thác TRFWUIk. Các k院t qu違 th詠c nghiệm trong mục 2.3.3.2 đư cho
thấy hiệu qu違 của các đề xuất m噂i nói trên.
74
CH姶愛NG 3. KHAI THÁC T一P M影C PH蔚 BI蔭N TRÊN C愛 SỞ
D頴 LI烏U S渦 L姶営NG CÓ S衛 PHÂN C遺P CÁC M影C
CSDL s嘘 l逢ợng có s詠 phân cấp các mục là s詠 k院t hợp gi英a CSDL s嘘
l逢ợng và CSDL có s詠 phân cấp các mục. Do đó, về c挨 b違n ph逢挨ng pháp khai
thác t壱p mục phổ bi院n trên CSDL s嘘 l逢ợng có s詠 phân cấp các mục có th吋
đ逢ợc k院 thừa từ các ph逢挨ng pháp khai thác t壱p mục phổ bi院n trên CSDL s嘘
l逢ợng và CSDL có s詠 phân cấp. Vì v壱y, việc khó khăn vƠ phức t衣p của bài
toán khai thác FWUI trên CSDL s嘘 l逢ợng có s詠 phân cấp cũng đ逢ợc k院 thừa
từ các bài toán trên. NgoƠi ra, đặc tr逢ng riêng của bài toán này là việc xác
đ鵜nh tr丑ng s嘘 của các mục cha trên cây phân cấp nh逢 th院 nƠo? VƠ xác đ鵜nh s嘘
l逢ợng của từng mục cha trong các giao d鵜ch của CSDL ra sao?, v.v ...
Trong ch逢挨ng nƠy, lu壱n án đề xuất bài toán khai thác FWUI trên CSDL
s嘘 l逢ợng có s詠 phân cấp các mục vƠ đề xuất m瓜t thu壱t toán d詠a trên cấu trúc
HIT-tree đ吋 khai thác FWUI, n瓜i dung nƠy đư đ逢ợc trình bày t衣i công b嘘 [19].
Ti院p theo lu壱n án trình bày m瓜t s嘘 c違i ti院n nâng cao hiệu qu違 khai thác FWUI
trên CSDL s嘘 l逢ợng có s詠 phân cấp các mục nh逢 đề xuất cấu trúc SDBV, đề
xuất đ鵜nh lý về việc xác đ鵜nh tidset mục nút cha d詠a trên tidset mục nút con
vƠ xác đ鵜nh nhanh m嘘i quan hệ cha ậ con gi英a các mục trên cây phân cấp.
Các n瓜i dung này s胤 đ逢ợc công b嘘 trong th運i gian t噂i.
Ngoài ra, các cấu trúc đư đề xuất trong ch逢挨ng 2 nh逢 IWS, MBiS đều
đ逢ợc áp dụng vƠo đ吋 gi違i quy院t hiệu qu違 h挨n bƠi toán khai thác FWUI trên
CSDL s嘘 l逢ợng có s詠 phân cấp các mục trong ch逢挨ng nƠy.
3.1. Gi噂i thi羽u bài toán
Định nghĩa 3.1. CSDL s嘘 l逢ợng có s詠 phân cấp các mục ậHierachy
quantity databases (HQDB) là m瓜t b瓜 g欝m b嘘n thành phần: T, I, W, Tr trong
đó, T = {t1, t2, …, tm} là t壱p các giao d鵜ch, I = {i1, i2, …, in} là t壱p các mục, W
75
= {w1, w2, …, wn} là t壱p các tr丑ng s嘘 (lợi ích) t逢挨ng ứng của mỗi mục trong
t壱p các mục I và Tr là t壱p các cây phân cấp th吋 hiện m嘘i quan hệ gi英a các
mục. Mỗi giao d鵜ch tk có d衣ng tk = {捲賃迭, 捲賃鉄, …, 捲賃�}, trong đó 捲賃日 là s嘘
nguyên ch雨 s嘘 l逢ợng mục thứ i trong giao d鵜ch tk, k = 1.. m.
Ví dụ 3.1: Cho HQBD HD = T, I, W, Tr v噂i t壱p mục I = {A, B, C, D,
E}, các giao d鵜ch T và tr丑ng s嘘 W đ逢ợc trình bày trong B違ng 3.1 và B違ng 3.2,
các cây phân cấp Tr các mục nh逢 trong Hình 3.1.
B違ng 3.1. Giao d鵜ch của HD B違ng 3.2. Tr丑ng s嘘
Giao dịch A B C D E F Item Weight
t1 1 1 0 2 1 0 A 0,3
t2 0 1 3 0 1 0 B 0,2
t3 2 1 0 2 2 2 C 0,5
t4 3 1 1 0 1 0 D 0,6
t5 1 2 2 1 3 1 E 0,9
t6 0 1 1 1 0 1 F 0,1
Và t壱p các cây phân cấp Tr nh逢 trong Hình 3.1
Hình 3.1. T壱p các cây phân cấp Tr
Trong đó các kí hiệu A, B, C, D, E, F lƠ đ衣i diện cho t壱p các mặt hàng
theo B違ng 3.3 nh逢 sau:
B違ng 3.3. Tên mặt hàng của các mục
ID mục mục
A Desktop
B Inkậjet Printer
B
E
C
G F
K
A D
H
76
Theo B違ng 3.1 và B違ng 3.2, CSDL HD có sáu giao d鵜ch {t1, t2, t3, t4, t5,
t6} và sáu mục {A, B, C, D, E, F}, tr丑ng s嘘 của các mục t逢挨ng ứng là {0,3,
0,2, 0,5, 0,6, 0,9, 0,1}. Giao d鵜ch t1 = {1, 1, 0, 2, 1, 0} có nghƿa lƠ trong giao d鵜ch t1 có m瓜t mục A(Desktop), m瓜t mục B(Inkậjet Printer), hai mục
D(Notebook), m瓜t mục E(Scanner) và không có mục C, F nào.
T壱p J = {G, K, H} là t壱p các mục cha của cây phân cấp không xuất hiện
trong các giao d鵜ch của CSDL HD. Tuy nhiên chúng có vai trò nhất đ鵜nh, th吋
hiện m嘘i quan hệ của các mục trong CSDL HD. Do đó, khi khai thác FI trên
CSDL phân cấp đòi hỏi ph違i khai thác c違 t壱p các mục trên cây phân cấp bao
g欝m (I 姦 J).
Liu và các đ欝ng s詠 [33] đ逢a ra m瓜t s嘘 đ鵜nh nghƿa (3.2, 3.3) đ吋 khai thác
FI trên CSDL có s詠 phân cấp các mục nh逢 sau:
Định nghĩa 3.2. M瓜t giao d鵜ch t = tid, X v噂i X ∈ (I 姦 J), X = (Y 姦 Z) là
t壱p các mục có trong giao d鵜ch (Y) và các mục cha của Y trên cây phân cấp
(Z).
Định nghĩa 3.3. T壱p X là FI thì support(X) > minsup, đ欝ng th運i trong X
không t欝n t衣i m瓜t cặp mục nào có quan hệ cha con, nh逢 v壱y X là phổ bi院n
khi:
C Laser Printer
D Notebook
E Scanner
F Dotậmatrix Printer
G Nonậimpact
H PC
K Printer
77
{�憲喧喧剣堅建岫隙岻 半 兼�券嫌憲喧 ∀隙沈 , 隙珍 ∈ 隙, 隙沈 ≠ �欠堅�券建岫隙珍岻 Đ吋 khai thác FI trên CSDL có s詠 phân cấp các mục bao g欝m c違 các mục
cha, trong nghiên cứu [19] đư đề xuất các đ鵜nh nghƿa sau:
Định nghĩa 3.4. Mục cha trên cây phân cấp thu瓜c các giao d鵜ch chứa
mục con của nó. V噂i mỗi mục cha X trên cây phân cấp và tk ∈ T:
X ∈ tk n院u và ch雨 n院u Y ∈ tk và Y là con 荏 nút lá của X trên cây phân cấp.
Khai thác FWUI trên HQDB cần ph違i tính toán xác đ鵜nh tr丑ng s嘘 của các
mục cha, đ欝ng th運i ph違i xác đ鵜nh s嘘 l逢ợng các mục cha trong từng giao d鵜ch
d詠a trên các mục con của chúng trong mỗi giao d鵜ch. Thông th逢運ng có th吋
xác đ鵜nh các đ衣i l逢ợng này thông qua các hàm MAX, MIN, SUM hay
AVERAGE đ嘘i v噂i các giá tr鵜 s嘘 l逢ợng và tr丑ng s嘘 của các mục con của nó.
Tuy nhiên, n院u sử dụng công thức MIN hoặc AVERAGE thì s嘘 l逢ợng và
tr丑ng s嘘 của mục cha s胤 nhỏ h挨n của mục con của nó trong nhiều tr逢運ng hợp.
Điều này là không th詠c t院, do mục cha là mức khái quát của mục con nên s嘘
l逢ợng và tr丑ng s嘘 của nó không th吋 nhỏ h挨n của mục con của nó. Bên c衣nh
đó, n院u tính theo công thức SUM của s嘘 l逢ợng hay tr丑ng s嘘 của các mục con
thì giá tr鵜 s嘘 l逢ợng, tr丑ng s嘘 của mục cha s胤 l噂n h挨n của mục con rất nhiều,
nhất là các mục cha gần nút g嘘c. N院u ng逢ỡng khai thác đủ l噂n thì ch雨 có các
mục cha xuất hiện trong các FI khai thác đ逢ợc, các nút con có vai trò nhỏ h挨n
nên s胤 không thỏa mưn ng逢ỡng, điều này không ph違n ánh đúng th詠c t院 của
các CSDL. Do đó, trong lu壱n án nƠy xác đ鵜nh s嘘 l逢ợng và tr丑ng s嘘 của mục
cha bằng cách lấy MAX của s嘘 l逢ợng và tr丑ng s嘘 của các mục con của nó.
Cách xác đ鵜nh nƠy đ違m b違o s嘘 l逢ợng và tr丑ng s嘘 của mục cha l噂n h挨n nh逢ng
không quá khác biệt v噂i s嘘 l逢ợng và tr丑ng s嘘 của mục con của nó.
Định nghĩa 3.5. Tr丑ng s嘘 của mục cha trên cây phân cấp bằng tr丑ng s嘘
l噂n nhất của tr丑ng s嘘 các mục con của nó 荏 nút lá:
78
weight(A) = max(weight(A1), weight(A2), …, weight(Ak))
Trong đó A là mục cha trên cây phân cấp, A1, A2, ...,Ak là các nút lá của A
Ví dụ 3.2: weight(K) = max(weight(C), weight(B), weight(F)) =
max(0,5; 0,2;0,1) = 0,5
Định nghĩa 3.6. S嘘 l逢ợng của mục cha trên cây phân cấp 荏 trong giao
d鵜ch nào thì bằng s嘘 l逢ợng l噂n nhất của s嘘 l逢ợng các mục con của nó 荏 trong
giao d鵜ch đó.
quantity(A) ∈ tk = max(quantity(A1), quantity(A2), …, quantity(Ak))
Trong đó: A, A1, A2, ...,Ak ∈tk và A1, A2, ..., Ak là con của A trên cây phân
cấp.
Ví dụ 3.3: quantity(K) ∈ t5 = max(quantity(B), quantity(C),
quantity(F))(do B, C, F ∈t5) = max(2; 2; 1) = 2
Định nghĩa 3.7. T壱p mục X ∈ 岫I 姦 J) v噂i I là t壱p các mục trong CSDL
(t壱p nút lá trên cây phân cấp) và J là t壱p các mục cha trên cây phân cấp đ逢ợc
g丑i là phổ bi院n n院u wus(X) 半 minwus, v噂i minwus do ng逢運i dùng xác đ鵜nh
tr逢噂c.
3.2. Thu壱t toán khai thác FWUI trên HQDB
Đ吋 khai thác FWUI trên HQDB bao g欝m c違 các mục cha trên cây phân
cấp, cần xác đ鵜nh weight cho các mục cha (theo Đ鵜nh nghƿa 3.5), đ欝ng th運i
cần xác đ鵜nh s嘘 l逢ợng cho các mục cha (theo Đ鵜nh nghƿa 3.6) trong mỗi giao
d鵜ch khi thêm các mục cha này vào trong các giao d鵜ch (theo Đ鵜nh nghƿa 3.4).
3.2.1. Thuật toán xác định weight cho các mục cha
Thu壱t toán xác đ鵜nh weight cho các mục cha trên cây phân cấp theoĐ鵜nh
nghƿa 3.5 đ逢ợc trình bày nh逢 sau:
79
Thuật toán3.1: CALCULATION_WEGHTED
Input: R là gốc cây phân cấp Tr.
- Output: WA = {h, weght(h), h là các nút cha trên Tr}
- Method name: CALCULATION_WEGHTED()
1
2
3
4
5
6
CALCULATION_WEGHTED(R)
for all r ∈ child of R do
if (weight(r) = 0)then
CALCULATION_WEGHTED(r);
else
weight(R) = max(weight(R), weight(r));
ChènR.weightvào WeightTable;
Hình 3.2. Thuật toán tính weight cho các mục cha
Thu壱t toán CALCULATION_WEGHTED trong Hình3.2 là m瓜t thu壱t toán
đệ quy. Bắt đầu từ R là g嘘c của cây phân cấp. Duyệt h院t toàn b瓜 cơy đ吋 xác đ鵜nh
weight của các mục cha. Mỗi khi xác đ鵜nh đ逢ợc weight của m瓜t mục cha (line 6)
nó s胤 đ逢ợc chèn vào WeightTable (b違ng WeightTable) chứa weight của tất c違
các mục trong CSDL).
3.2.2. Thuật toán thêm mục cha vào CSDL
Thu壱t toán thêm các mục cha vƠo CSDL đ欝ng th運i xác đ鵜nh weight cho
các mục cha trong các giao d鵜ch đ逢ợc trình bƠy nh逢 Hình 3.3 sau đơy:
Thuật toán 3.2: ADD_PARENT
Input: CSDL HD và cây phân cấpTr.
- Output: CSDL HD (HD + các mục nút cha được chèn vào trong các giao dịch)
- Method name: ADD_PARENT()
1
2
ADD_PARENT (R)
for all t ∈HD do
for all i ∈ t do
80
3
4
5
6
7
8
if (∀r Tr|r là cha của i) then
if (r t) then
r.quantity = max(r.quantity, i.quantity);
else
t←r;
r.quantity = i.quantity;
Hình 3.3. Thuật toán thêm mục cha vào CSDL
Thu壱t toán ADD_PARENT() quét lần l逢ợt từng giao d鵜ch trong CSDL,
v噂i mỗi mục trong CSDL tìm các mục cha của nó trên cây cấp và thêm vào
CSDL n院u các mục cha nƠy ch逢a đ逢ợc thêm vào b荏i m瓜t mục nào trong cùng
phân giao d鵜ch. Dòng 1, quét từng dòng CSDL. Dòng 2, quét từng mục trên
mỗi giao d鵜ch. Dòng 3, tìm các r là mục cha của i trên cây phân cấp Tr. Dòng
4 đ院n dòng 8, ki吋m tra xem mục r đư đ逢ợc chèn vƠo CSDL tr逢噂c đó ch逢a,
n院u đư chèn r欝i thì xác đ鵜nh l衣i s嘘 l逢ợng cho r theo Đ鵜nh nghƿa 3.6, còn n院u
ch逢a chèn thì chèn r vào giao d鵜ch t v噂i quantity bằng quantity của mục i.
3.2.3. Thuật toán khai thác FWUI
3.2.3.1. Cấu trúc HIT–tree
Đ吋 khai thác FWUI trên HQDB theo Đ鵜nh nghƿa 3.6, lu壱n án đề ngh鵜 sử
dụng cấu trúc HITậtree. HITậtree là m瓜t m荏 r瓜ng của ITậtree [54]. HITậtree
g欝m nhiều mức, mỗi mức g欝m nhiều l噂p t逢挨ng đ逢挨ng, mỗi l噂p t逢挨ng đ逢挨ng
bao g欝m nhiều nút. Mỗi nút bao g欝m ba thành phần: X, tidset(X), wus(X) trong đó X là m瓜t t壱p mục, tidset(X) là t壱p các giao d鵜ch chứa X và wus(X) là
đ瓜 hỗ trợ tr丑ng s嘘 h英u ích của X đ逢ợc xác đ鵜nh theo công thức 1.4. Mỗi l噂p
t逢挨ng đ逢挨ng đ逢ợc t衣o ra từ s詠 k院t n嘘i m瓜t mục cha 荏 l噂p trên v噂i lần l逢ợt các
nút phía sau nó trong cùng l噂p t逢挨ng đ逢挨ng, nút m噂i đ逢ợc t衣o thành khi và
ch雨 khi wus(X) của nút đó thỏa mưn ng逢ỡng minwus.
81
3.2.3.2. Thuật toán khai thác FWUI
Thuật toán 3.3: MINE_FWUIs
Input: HQDB HD, cây phân cấp Tr và ngưỡng minwus
Output: HIT–tree chứa các FWUI.
Method name: MINE_FWUIs()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
MINE_FWUIs()
for all R ∈ TR do
CALCULATION_WEIGHTED(R);
ADD_PARENT();
F = { i ∈ (I姦 J), wus_i 半 minwus};
HIT–tree = ∅;
CREATE_HIT–tree(F)
P = ∅;
for all i ∈ F do
for j ∈ F(vớij>i)do //j phía sau i
X = Fi 姦Fj;
if (∀x’∈X ¬ x╊ ∈ X: parent(x’) = x╊)then
T = tidset(Fi) 堪 tidset(Fj) ;
if (wus_X 半 minwus) then
P = P 姦 X, T, wus_X; HIT–tree = HIT–tree 姦 X, T, wus_X; CREATE_HIT–tree(P); // gọi đệ quy với lớp P
Hình 3.4. Thuật toán khai thác FWUI từ HQDB
Ví dụ 3.4: Thu壱t toán MINE_FWUIs trong Hình 3.4 v噂i CSDL HD
trong ví dụ 3.1 và minwus = 0,6 nh逢 sau:
Dòng 2, thủ tục ADD_PARENT() cho k院t qu違 nh逢 B違ng 3.4. Việc thêm
các mục cha, s嘘 l逢ợng mục cha vƠo CSDL đ逢ợc th詠c hiện theo Đ鵜nh nghƿa
3.4 và 3.6, việc thêm tr丑ng s嘘 các mục cha theo Đ鵜nh nghƿa 3.5, ta có k院t qu違
82
là B違ng 3.4 vƠ 3.5. Đ欝ng th運i, twu của các giao d鵜ch đ逢ợc tính nh逢 trong
B違ng 3.6.
B違ng 3.4. Giao d鵜chcủa HD B違ng 3.5. Tr丑ng s嘘
ID A B C D E F G H K Item Trọng số
t1 1 1 0 2 1 0 1 2 1 A 0,3
t2 0 1 3 0 1 0 3 0 3 B 0,2
t3 2 1 0 2 2 2 1 2 2 C 0,5
t4 3 1 1 0 1 0 1 3 1 D 0,6
t5 1 2 2 1 3 1 2 1 2 E 0,9
t6 0 1 1 1 0 1 1 1 1 F 0,1
G 0,5
H 0,6
K 0,5
B違ng 3.6. twu của các giao d鵜ch
ID twu
t1 ど,ぬ + ど,に + に × ど,は + ど,ひ + ど,の + に × ど,は + ど,のば = 0,68
t2 ど,に + ど,の × ぬ + ど,ひ + ど,の × ぬ + ど,の × ぬの = 1,12
t3 ど,ぬ × に + ど,に + ど,は × に + ど,ひ × に + ど,な × に + ど,の + ど,は × に + ど,の × にぱ = 0,84
t4 ど,ぬ × ぬ + ど,に + ど,の + ど,ひ + ど,の + ど,は × ぬ + ど,のの = 0,76
t5 ど,ぬ + ど,に × に + ど,の × に + ど,は + ど,ひ × ぬ + ど,な + ど,の × に + ど,は × ど,の × にひ = 0,84
t6 ど,に + ど,の + ど,は + ど,な + ど,の + ど,は + ど,のば = 0,43
Sum_twu = 4,67
Dòng 4, t壱p F (1–itemset phổ bi院n) g欝m {A, B, C, D, E, G, H, K} nh逢
B違ng 3.7:
83
B違ng 3.7. T壱p 1–itemset phổ bi院n
mục wus F
A ど,はぱ + ど,ぱね + ど,ばは + ど,ぱねね,ばは = 0,65 A
B ど,はぱ + な,なに + ど,ぱね + ど,ばは + ど,ぱね + ど,ねぬね,ばは = 1,0 B
C な,なに + ど,ばは + ど,ぱね + ど,ねぬね,ばは = 0,67 C
D ど,はぱ + ど,ぱね + ど,ぱね + ど,ねぬ岻ね,ばは = 0,6 D
E ど,はぱ + な,なに + ど,ぱね + ど,ばは + ど,ぱねね,ばは = 0,91 E
F ど,ぱね + ど,ぱね + ど,ねぬね,ばは = 0,45
G ど,はぱ + な,なに + ど,ぱね + ど,ばは + ど,ぱね + ど,ねぬね,ばは = 1,0 G
H ど,はぱ + ど,ぱね + ど,ばは + ど,ぱね + ど,ねぬね,ばは = 0,76 H
K ど,はぱ + な,なに + ど,ぱね + ど,ばは + ど,ぱね + ど,ねぬね,ばは = 1,0 K
Từ dòng 6 đ院n dòng 16 thủ tục đệ quy CREATE_HIT–tree() xây d詠ng
cây HITậtree, sau khi xây d詠ng xong cây HIT-tree v噂i ng逢ỡng minwus, các
t壱p mục t衣i các nut trên cây HIT-tree là FWUI cần khai thác. Cây HIT-tree
v噂i ng逢ỡng minwus = 0,6 của CSDL HD nh逢 Hình 3.5.
Hình 3.5. Cây HITậtree v噂i CSDL HD và minwus = 0,6
84
Xét nút A trên cây HIT–tree:
A k院t hợp v噂i B: tidset(AB) = tidset(A) 堪 tidset(B) = {1, 3, 4, 5} 堪 {1, 2,
3, 4, 5, 6} = {1, 3, 4, 5}, wus(AB) = 0,68 >minwus⟹ k院t n衣p AB vào HITậ
tree.
A k院t hợp v噂i C: tidset(AC) = tidset(A) 堪 tidset(C) = {1, 3, 4, 5} 堪 {2, 4,
5, 6} = {4, 5}, wus(AC) = 0,34 <minwus ⟹ không k院t n衣p AC vào HITậtree.
T逢挨ng t詠 k院t n衣p {AE, AG, AK} vào HITậtree.
A k院t hợp v噂i H, không xét do H là cha của A trên cây phân cấp.
T逢挨ng t詠 v噂i các nút B, C, D, E, G, H, K ta có cây HITậtree nh逢 Hình
3.5 có các nút là FWUI.
3.3. M瓜t s嘘 c違i ti院n nâng cao hi羽u qu違 khai thác FWUI trên HQDB
3.3.1. Cấu trúc EDBV
Thu壱t toán Eclat đ逢ợc Zaki và các đ欝ng s詠 [54] đề xuất d詠a trên ITậtree
có hiệu qu違 về mặt th運i gian so v噂i các ph逢挨ng pháp khác. Tuy nhiên b瓜 nh噂
dùng đ吋 l逢u tr英 tidset của các t壱p mục là rất l噂n, đơy chính lƠ h衣n ch院 của
ph逢挨ng pháp nƠy. Gi違i quy院t đ逢ợc vấn đề b瓜 nh噂 s胤 nâng cao hiệu qu違 về mặt
th運i gian của ti院p c壱n này.
Zaki và các đ欝ng s詠 [55] đề xuất sử dụng kƿ thu壱t diffset thay cho tidset.
Kƿ thu壱t diffset là m瓜t gi違i pháp hiệu qu違 nhằm rút g丑n b瓜 nh噂 so v噂i tidset,
đ欝ng th運i giúp tính nhanh đ瓜 hỗ trợ trong bài toán khai thác FI. Tuy nhiên, do
đặc đi吋m diffset là lấy phần bù của tidset nên diffset không có hiệu qu違 trên
các CSDL th逢a.
Vo và các đ欝ng s詠 [43] đề xuất DBV nhằm rút g丑n b瓜 nh噂 l逢u tr英 tidset
bằng BitTable [13] và rút ngắn th運i gian tính toán. Cách ti院p c壱n này khá hiệu
qu違 khi lo衣i bỏ hoàn toàn các byte 0 荏 đầu và cu嘘i trên bitậvector và sử dụng
85
phép AND trên bit đ吋 tính giao tidset của hai t壱p mục. Đ欝ng th運i sử dụng m瓜t
m違ng LOOKUP đ吋 đ鵜nh nghƿa tr逢噂c s嘘 l逢ợng các bit 1 trong các byte, điều
này giúp tính nhanh đ瓜 hỗ trợ của các t壱p mục thông qua DBV. Từ đó DBV
đ逢ợc sử dụng v噂i m違ng mà mỗi phần tử là m瓜t byte. Đơy lƠ m瓜t h衣n ch院 l噂n
của DBV, do khi tính giao gi英a hai DBV của các t壱p mục ph違i sử dụng nhiều
phép toán AND trên bit gi英a các byte của hai DBV.
Cấu trúc MBiS đ逢ợc đề xuất vƠ trình bƠy trong ch逢挨ng 2 lƠ cấu trúc l逢u
gi英 các đo衣n bit 1 liên ti院p nhau trên BitTable. MBiS có đặc đi吋m là xác đ鵜nh
giao gi英a các tidset thông qua MBiS rất nhanh, do ch雨 cần c壱p nh壱t l衣i các đầu
và cu嘘i mỗi đo衣n. Tuy nhiên, cấu trúc MBiS s胤 không có hiệu qu違 nhiều trên
các d英 liệu l噂n do tính phân m違nh của tidset rất l噂n d磯n đ院n MBiS rất t嘘n b瓜
nh噂 đ吋 l逢u tr英 và t嘘n th運i gian trong xác đ鵜nh giao do s嘘 đo衣n của mỗi MBiS
l噂n.
3.3.1.1. Xác định tidset của tập mục dựa trên EDBV
Lu壱n án đề xuất cấu trúc EDBV (Extend DBV) và EIWS (Extend DBV)
bằng cách sử dụng các s嘘 nguyên l噂n tám byte (Large Integer ậ LI) thay vì
các s嘘 nguyên m瓜t byte nh逢 DBV [29], MByS [17] và hai byte nh逢 IWS [34,
36] Sử dụng các LI giúp cho quá trình tính giao EDBV hay EIWS của hai t壱p
mục nhanh h挨n. Do mỗi phép AND trên bit th詠c hiện trên các LI, mỗi LI có
64 bit đ衣i diện cho 64 giao d鵜ch liên ti院p.
Tuy nhiên vấn đề đặt ra là làm th院 nƠo đ吋 tính đ逢ợc wus của t壱p mục v噂i
EDBV và EIWS v噂i các LI. Không đủ b瓜 nh噂 đ鵜nh nghƿa tr逢噂c m瓜t m違ng 264
phần tử đ吋 l逢u v鵜 trí các bit 1 của các s嘘 trong kho違ng từ 1 đ院n 264 nh逢 cách
làm trên MByS hay IWS.
Đ吋 tính nhanh tidset của t壱p mục phục vụ cho việc tính wus theo công
thức 1.4, lu壱n án đ鵜nh nghƿa tr逢噂c m瓜t m違ng MAP g欝m 216 (65536) phần tử
86
nh逢 đ嘘i v噂i cấu trúc IWS. Trong đó, phần tử thứ i chứa m瓜t danh sách v鵜 trí
các bit 1 của i tính từ trái qua ph違i đ逢ợc mô t違 nh逢 B違ng 3.8:
B違ng 3.8. M違ng MAP v噂i 65.535 phần tử
Index 0 1 2 … 65.534 65.535
Value 0000000000000001 0000000000000001 0000000000000010 … 111..110 111..111
MAP Null 16 15 … 1, 2,.., 14, 15 1, 2,..,15, 16
Ti院p theo, sử dụng b嘘n phép AND trên bit v噂i 65.535 k院t hợp v噂i ba
phép d鵜ch ph違i bit đ吋 tách lần l逢ợt các s嘘 nguyên hai byte (word) từ ph違i qua
trái. Mỗi lần AND v噂i 65.535 ta đ逢ợc m瓜t word, ánh x衣 word vào MAP ta
đ逢ợc danh sách v鵜 trí các bit 1 trong word đó, từ đó ta xác đ鵜nh đ逢ợc ID giao
d鵜ch của các t壱p mục.
Ví dụ 3.5: Cho K là m瓜t LI, K = 178.455.221.385.174.000, bi吋u di宇n nh鵜 phân của K bao g欝m 64 bít nh逢 sau:
0000001001111010000000000001010000001110111110100001101111110000
Cụ th吋, s嘘 K đ逢ợc mô t違 nh逢 trong B違ng 3.9
B違ng 3.9. Bi吋u di宇n s嘘 nguyên K d逢噂i d衣ng b嘘n đo衣n, mỗi đo衣n là m瓜t word
Binary 0000001001111010 0000000000010100 0000111011111010 0001101111110000
Index 634 20 3.834 7.126
MAP 7,10,11,12,13,15 12,14 5,6,7,9,10,11,12,13,15 4,5,7,8,9,10,11,12
Đo衣n 1 2 3 4
634 20 3.834 7.126
AND
65.535 = 7.126 MAP[7.126] = {4, 5, 7, 8, 9, 10, 11, 12}
B逢噂c 1 → 0 634 20 3.834
AND
65.535 = 3.834 MAP[3.834]={5, 6, 7, 9, 10, 11, 12, 13, 15}
87
Hình 3.6 mô t違 ba lần d鵜ch bit trên K đ吋 tách các word, sau đó ánh x衣 vào
MAP đ吋 có v鵜 trí các bit trong các word đư đ逢ợc đ鵜nh nghƿa tr逢噂c.
Định lý 3.1. Ch雨 s嘘 của bit 1 có v鵜 trí thứ i trong đo衣n thứ j của word thứ
k thu瓜c EDBV trên bitậvector là l đ逢ợc xác đ鵜nh theo công thức 3.1:
l = (k–1) × 64 + (j–1)×16 + i (3.1)
Trong đó:
ậ j là s嘘 hiệu đo衣n word của block
ậ i là ch雨 s嘘 m瓜t bit 1 trong đo衣n thứ j của block thứ k
ậ k là ch雨 s嘘 word của EDBV.
Chứng minh:
D宇 thấy tr逢噂c block thứ k có (k – 1) × 64 bit (do mỗi block tám byte có
64 bit). T逢挨ng t詠 tr逢噂c đo衣n thứ j có (j ậ 1) × 16 (mỗi đo衣n hai byte có 16
bit). Do đó, ch雨 s嘘 bit 1 thứ i của đo衣n thứ j thu瓜c block k trên bit ậ vector
đ逢ợc xác đ鵜nh theo công thức:
Index_bit–vector(i) =(k – 1) × 64 +(j – 1)×16 + i
Ví dụ 3.6: V噂i s嘘 K trong ví dụ 3.5, ta có t壱p v鵜 trí các bit 1 của K đ逢ợc
xác đ鵜nh nh逢 sau:
Word thứ 4: 7.126 có t壱p ch雨 s嘘 {4, 5, 7, 8, 9, 10, 11, 12} → {52, 53, 55,
56, 57, 58, 59, 60} do mỗi s嘘 đ逢ợc c瓜ng thêm v噂i (4 ậ 1) × 16 = 48 theo công
thức 3.1.
B逢噂c 2 → 0 0 634 20
AND
65.535 = 20 MAP[20] = {12, 14}
B逢噂c 3 → 0 0 0 634
AND
65.535 = 634 MAP[634] = {7, 10, 11, 12, 13, 15}
Hình 3.6. Sử dụng các phép AND và d鵜ch bit đ吋 tách các đo衣n hai byte
88
Word thứ ba: 3.834 có t壱p ch雨 s嘘 {5, 6, 7, 9, 10, 11, 12, 13, 15} → {37,
38, 39, 41, 42, 43, 44, 45, 47}, do mỗi v鵜 trí đ逢ợc c瓜ng thêm (3 ậ 1) × 16 = 32
theo công thức 3.1.
Word thứ hai: 20 có t壱p ch雨 s嘘 {12, 14}→ {20, 22} do mỗi v鵜 trí đ逢ợc
c瓜ng thêm (2 ậ 1) × 16 = 16 theo công thức 3.1.
Word thứ nhất: 634 có t壱p ch雨 s嘘 {7, 10, 11, 12, 13, 15} t壱p này gi英
nguyên do đơy lƠ word s嘘 m瓜t nên (j ậ 1) = 0 v噂i j = 1
Do đó, t壱p hợp các index bit 1 của K là {7, 10, 11, 12, 13, 15, 20, 22, 37,
38, 39, 41, 42, 43, 44, 45, 47, 52, 53, 55, 56, 57, 58, 59, 60}.
3.3.1.2. Thuật toán tính nhanh wus của tập mục dựa trên mảng MAP
Tính wus theo công thức 1.4 lƠ thao tác th逢運ng xuyên trong các bài toán
khai thác FWUI. Do đó, đòi hỏi ph違i xác đ鵜nh đ逢ợc tidset của các t壱p mục
t逢挨ng ứng. D詠a trên m違ng MAP và Đ鵜nh lý 3.1, lu壱n án đề xuất thu壱t toán
xác đ鵜nh nhanh wus của t壱p mục d詠a trên m違ng MAP đ逢ợc trình bƠy nh逢
trong hình 3.7.
Thuật toán 3.4: FAST_ CALCULATION_WUS
Input: EDBV(X)
Output: wus củatập mục X
Methode name: FAST_CALCULATION_WUS()
1
2
3
4
5
6
7
FAST_CALCULATION_WUS(EDBV(X))
for all i EDBV(X) do //xét các word trong EDBV(X)
k = EDBV(X) [i];// lấy word thứ i
t = ぬ;// dùng để xác định vị trí các đoạn trong k
while (k > 0)
m = k &65535;// lấy đoạn thứ t trong k
pos = i × 64 +(t×16);
for all j MAP [m] do// xét danh sách với chỉ số m
89
8
9
10
11
12
13
14
15
tidset(X)pos + j;// ánh xạ ra vị trí trên bit–vector
k = k >> 16;// k dịch phải 16 bít
t– – ;// chuyển sang đoạn tiếp theo trên k
y = 0;
for all i tidset(X) do
y + = twu [i];
wus = y/sum_twu;
return wus
Hình 3.7. Thuật toán tính nhanh wus của các tập mục
3.3.2. Tính tidset nút cha từ tidset nút con
Việc thêm các mục cha vào CSDL khi khai thác t壱p mục trên CSDL
phân cấp theo các ph逢挨ng pháp tr逢噂c đơy làm cho b瓜 nh噂 tăng lên vƠ t嘘n th運i
gian quét và chèn d英 liệu. Trong phần này, lu壱n án đề xuất gi違i pháp tính
tidset mục cha thông qua các mục con của nó trên cây phân cấp ậ là các mục
có trong CSDL g嘘c.
Định lý 3.2. Tidset của mục cha trên cây phân cấp đ逢ợc xác đ鵜nh bằng
hợp tidset các mục con của nó 荏 nút lá.
Nh逢 v壱y, tidset(X) = tidset(X1) 姦 tidset(X2) 姦...姦 tidset(Xk).
Trong đó X1, X2,..., Xk là các mục con 荏 nút lá của mục X.
Ví dụ 3.7: Xét CSDL HD, do H là cha của A và D trên cây phân cấp nên
tidset(H) = tidset(A) 姦tidset(D) = {1, 3, 4, 5} 姦 {1, 3, 5, 6} = {1, 3, 4, 5, 6}
Chứng minh: D宇 thấy từ Đ鵜nh nghƿa 3.3, các mục cha thu瓜c các giao
d鵜ch có chứa mục con của nó 荏 nút lá, do đó tidset của mục cha s胤 chính là
hợp tidset của tất c違 tidset các mục con của nó 荏 nút lá.
Thu壱t toán xác đ鵜nh tidset mục cha d詠a vào tidset mục con của nó đ欝ng
th運i tính twu của các giao d鵜ch đ逢ợc trình bƠy nh逢 trong Hình 3.8.
90
Thuật toán 3.5: CREAT_TIDSET
Input: HQDB HD, minsup
Output: tập L chứa các 1–itemset
- Method name: CREAT_TIDSET()
1
2
3
4
5
6
7
8
9
10
11
12
13
CREAT_TIDSET(Tr)
for all t ∈ T do
twu [t] = 0;
L = ∅;
for all i ∈ t do
tidset(i) ← t;// cập nhật tidset cho mục i
twu [t] = twu [t] + quantity [i] ×weight [i];
for all h ∈ parent(i) of Tr do
tidset(h) ← t; //cập nhật tidset cho mục cha của i
weight(h) = max(weight(h), weight(i));
quantity (h) = max(quantity(h), quantity(i);
L← h;
for all l ∈ L do
twu [t] = twu [t] + quantity(l) ×weight(l);
Hình 3.8. Thuật toán xác định tidset các mục và tính twu của các giao dịch
Thu壱t toán CREAT_TIDSET() th詠c hiện nh逢 sau:
Dòng 2, quét lần l逢ợt từng giao d鵜ch, dòng 3, 4 gán các giá tr鵜 ban đầu
twu của giao d鵜ch t = 0, L = ∅ là t壱p các mục cha có nút con trong giao d鵜ch t.
Dòng 5 xét từng mục trong giao d鵜ch t. Dòng 6, xây d詠ng tidset của mục i.
Dòng 7 tính twu của giao d鵜ch t đ嘘i v噂i mục i (là các mục có sẵn trong
CSDL). Dòng 8, xét các mục cha của mục i. Dòng 9 xây d詠ng tidset cho mục
cha của h, dòng 10 vƠ 11 xác đ鵜nh weight và quantity cho mục h theo các
Đ鵜nh nghƿa 3.4 và 3.5. Dòng 12, k院t n衣p h vào Lật壱p các mục cha đ逢ợc thêm
91
vào giao d鵜ch t. Dòng 13 và 14, tính twu [t] v噂i các mục cha có nút con trong
giao d鵜ch t.
Nh逢 v壱y, thu壱t toán CREAT_TIDSET() ch雨 cần m瓜t lần quét CSDL đư
xây d詠ng xong tidset của tất các các mục, đ欝ng th運i tính twu của các giao
d鵜ch mà không cần ph違i thêm các mục cha vƠo CSDL nh逢 thu壱t toán
MINE_FWUIs trong Hình 3.4. Bằng việc xác đ鵜nh tidset mục cha thông qua
các mục con trong các giao d鵜ch đư bỏ đ逢ợc công đo衣n tiêu t嘘n nhiều th運i
gian là quét và thêm các mục cha vào CSDL.
3.3.3. Kiểm tra mối quan hệ cha con đối với các mục trong tập mục
Dòng s嘘 11 trong thu壱t toán MINE_FWUIs 荏 Hình 3.4 có chức năng
ki吋m tra m嘘i quan hệ cha con của các cặp hai mục trong X–là mục m噂i t衣o
thành từ F i và F j, cũng gi嘘ng nh逢 Vo vƠ các đ欝ng s詠 [42] đư xét h院t tất c違 các
cặp phần tử trong X v噂i nhau (có tất c違 系賃態 cặp v噂i k là s嘘 l逢ợng mục của t壱p
mục X). Trong phần này lu壱n án đề xuất ph逢挨ng pháp ki吋m tra nhanh tính cha
con của các mục trong t壱p mục đ逢ợc t衣o thành trên HITậtree d詠a vào Đ鵜nh lý
3.2 nh逢 sau:
Đ鵜nh lý 3.3. Cho F i = X1X2...XkY1 và F j = X1X2…XkY2 là hai t壱p mục
thu瓜c hai nút bất kì trong cùng m瓜t l噂p t逢挨ng đ逢挨ng trên HITậtree, t壱p mục X
= F i 姦 F j = X1X2…XkY1Y2. Ta nói rằng trong X không t欝n t衣i hai cặp mục nào
có quan hệ cha con khi và ch雨 khi Y1 và Y2 không có quan hệ cha con v噂i
nhau.
Chứng minh: Th壱t v壱y, F i = X1X2...XkY1, F j = X1X2...XkY2 và X =
X1X2...XkY1Y2. Do F i và F j thu瓜c các nút trên HITậtree nên không t欝n t衣i cặp
mục nào có quan hệ cha con trong F i và F j →Y1 và Y2 không có m嘘i quan hệ
cha con v噂i các mục trong t壱p{X1X2...Xk}. Đ欝ng th運i t壱p mục X1X2...Xk thu瓜c
92
mục cha của F i và F j trên HITậtree, do đó X1X2…Xk không t欝n t衣i m嘘i quan
hệ cha con gi英a các mục. Do đó, các mục trong X không có m嘘i quan hệ cha
con khi và ch雨 khi cặp {Y1, Y2} không có m嘘i quan hệ cha con v噂i nhau trên
cây phân cấp Tr.
3.3.4. Thuật toán khai thác nhanh FWUI trên HQDB
D詠a trên các c違i ti院n đư trình bƠy 荏 trên, thu壱t toán khai thác nhanh
FWUI từ HQDB có tên FAST_MINE_FWUIs đ逢ợc đề xuất trong phần này.
Trong đó module ADD_PARENT() đ逢ợc sử dụng trong thu壱t toán
MINE_FWUIs không còn đ逢ợc sử dụng trong thu壱t toán này. Đ欝ng th運i cấu
trúc EDBV v噂i các phần tử là các LI và việc ki吋m tra nhanh m嘘i quan hệ gi英a
các mục trong t壱p mục đ逢ợc thi院t l壱p.
Thuật toán3.6: FAST_MINE_FWUIs
Input: HQDBHD và độ đo minwus
Output: HIT–tree chứa tất cả các FWUI
Method name: FAST_MINE_FWUIs()
1
2
3
4
5
6
7
8
9
10
FAST_MINE_FWUIs()
CREATE_TIDSET(Tr)
F = { i ∈ (I 姦 J), wus_i 半 minwus}; //tâp 1–itemset thỏa mãn minwus
HIT–tree = ∅;
CREATE_HIT–TREE(F)
P = ∅; // khởi tạo một lớp mới
for all i ∈ F do
for j ∈ F (vớij>i)do //duyệt các j sau i
if (Y1parent(Y2) and Y1parent(Y2)) then
X = Fi姦 Fj;
T = EDBV(Fi) 堪 EDBV(Fj); //T là EDBV củaX
93
11
12
13
14
15
wus_X = FAST_CALCULATION_WUS(X);
if (wus_X 半 minwus)then
P = P 姦 X, T, wus_X; HIT–tree = HIT–tree 姦 X, T, wus_X; CREATE_HIT–TREE(P)
Hình 3.9. Thuật toán khai thác nhanh FWUI trên HQDB
Thu壱t toán FAST_MINE_FWUIs() trong Hình 3.9 sử dụng thủ tục
CREATE_TIDSET() v噂i m瓜t lần quét CSDL đ吋 xây d詠ng tidset của các mục
bao g欝m c違 các mục thu瓜c mục cha trên cây phân theo Đ鵜nh lý 3.2. Bên c衣nh
đó, thu壱t toán này tính twu của tất c違 các giao d鵜ch. Dòng 10 của thu壱t toán
MINE_FWUIs() ki吋m tra toàn b瓜 các cặp mục trong t壱p mục X đ逢ợc thay
bằng dòng 8 trong FAST_MINE_FWUIs() v噂i việc ki吋m tra đúng m瓜t cặp (Y1,
Y2), trong đóY1, Y2 lần l逢ợt là các phần tử cu嘘i cùng của F i và F j theo Đ鵜nh lý
3.3. Dòng 12 trong MINE_FWUIs() đ逢ợc thay th院 bằng dòng 10 trong
FAST_MINE_FWUIs() v噂i việc sử dụng cấu trúc EDBV thay cho cấu trúc
DBV.
3.4. K院t qu違 th詠c nghi羽m
3.4.1. CSDL thực nghiệm
CSDL th詠c nghiệm bao g欝m ba CSDL SALEậFACTậ1997, SALEậ
FACTậ1997+1998 và SALEậFACTậSYNC đ逢ợc cho trong b違ng 2.7. Đơy lƠ
các HQDB rút ra từ CSDL Foodmart2000 của SQL2000. B違ng 3.10 mô t違 về
các CSDL:
B違ng 3.10. Mô t違 CSDL th詠c nghiệm
Tên CSDL S嘘 l逢ợng giao d鵜ch
SALEậFACTậ1997 20.522
SALEậFACTậ1997+1998 54.537
94
SALEậFACTậSYNC 58.308
Các CSDL có chung cây phân cấp g欝m sáu cấp đ逢ợc trình bày cụ th吋
trong B違ng 3.11
B違ng 3.11. Các mức trên cây phân cấp
Mức Tên các mức S嘘 l逢ợng nút
1 Product_family 3
2 Product_department 24
3 Product_category 48
4 Product_subcategory 56
5 Product_class 110
6 Product 1560
Theo B違ng 3.11 các CSDL th詠c nghiệm có ba cây phân cấp (mức m瓜t có
ba nút). Đ瓜 cao của cây phân cấp là sáu (có sáu cấp).
3.4.2. Kết quả thực nghiệm
3.4.2.1. So sánh bộ nhớ
B違ng 3.12. So sánh b瓜 nh噂 và s嘘 l逢ợng các mục
CSDL So sánh MINE_FWUIs FAST_MINE_F WUIs
SALEậFACTậ1997 S嘘 l逢ợng mục 275.539 86.837
B瓜 nh噂 13,52 MB 4,65 MB
SALEậFACTậ1997+1998
S嘘 l逢ợng mục 783.639 251.395
B瓜 nh噂 38,16 MB 13,46 MB
SALEậFACTậSYNC
S嘘 l逢ợng mục 840.079 269.720
B瓜 nh噂 40,92 MB 14,44 MB
B違ng 3.12 th吋 hiện việc thêm và không thêm các mục thu瓜c mục cha
trên cây phân cấp gi英a hai thu壱t toán MINE_FWUIs và
95
FAST_MINE_FWUIs. S嘘 l逢ợng mục vƠ dung l逢ợng b瓜 nh噂 tăng lên đáng k吋
sau khi thêm các mục cha trên cây phân cấp vào CSDL.
Ví dụ v噂i CSDL SALEậFACTậ1997, s嘘 l逢ợng mục ban đầu là 86.837,
sau khi thêm các mục cha lƠ 275.539, nh逢 v壱y việc thêm mục cha trên cây
phân cấp làm s嘘 l逢ợng mục tăng 317%. T逢挨ng t詠 nh逢 v壱y, dung l逢ợng d英
liệu là 4,65 MB, sau khi thêm mục cha là 13,52 MB, nh逢 v壱y dung l逢ợng d英
liệu tăng 290%.
3.4.2.2. So sánh hàm MAX và SUM
Trong mục này, lu壱n án th嘘ng kê s嘘 l逢ợng và % GậFWUI (Generalized
FWUI: là các FWUI chứa ít nhất m瓜t mục cha trên cây phân cấp) trên CSDL
SALEậFACTậSYNC v噂i 02 ng逢ỡng minwus khá nhỏ là 0,001% và 0,003%.
Đ欝ng th運i, so sánh s嘘 l逢ợng và % GậFWUI khai thác đ逢ợc khi sử dụng hàm
MAX và SUM khi xác đ鵜nh tr丑ng s嘘 của các mục cha và s嘘 l逢ợng của các
mục cha trong từng giao d鵜ch.
B違ng 3.13. Th詠c nghiệm trên CSDL SALEậFACTậSYNC
S嘘
cấp
minwus = 0,001% minwus = 0,003%
GậFWUI GậFWUI
Max Sum Max Sum
% S嘘 l逢ợng % S嘘 l逢ợng % S嘘 l逢ợng % S嘘 l逢ợng
0 1559 102
3 65,57% 4.528 73,99% 5.993 62,3% 818 87,53% 1.719
4 92,84% 21.783 95,48% 34.476 90,50% 4.128 97,52% 6.821
5 98,49% 103.292 99,16% 185.371 97,88% 1.906 99,43% 30.612
6 98,97% 151.435 99,43% 274.248 98,58% 26.580 99,62% 45.827
96
S嘘 liệu th詠c nghiệm từ b違ng 3.13 v噂i CSDL SALEậFACTậSYNC cho
thấy cơy có đ瓜 cao cƠng l噂n thì s嘘 l逢ợng các FWUI khai thác đ逢ợc cƠng l噂n,
điều nƠy lƠ hợp lý do cƠng có nhiều mục cha đ逢ợc thêm vƠo CSDL h挨n.
T逢挨ng t詠 nh逢 th院, s嘘 l逢ợng GậFWUI cũng đ逢ợc khai thác nhiều h挨n.
So sánh % vƠ s嘘 l逢ợng GậFWUI khai thác đ逢ợc khi sử dụng công thức SUM vƠ MAX cũng có s詠 khác biệt đáng k吋, trong đó s嘘 l逢ợng khi sử dụng
hƠm SUM l噂n h挨n khá nhiều so v噂i hƠm MAX trong cùng m瓜t ng逢ỡng phổ
bi院n wus. Ví dụ v噂i wus = 0,003% vƠ cơy phơn cấp có sáu cấp, s嘘 l逢ợng Gậ
FWUI khi sử dụng hƠm MAX lƠ 26.580, khi sử dụng hƠm SUM lƠ 45.827. Do
khi sử dụng hƠm SUM s胤 t衣o ra các mục cha có s嘘 l逢ợng vƠ tr丑ng s嘘 khá l噂n,
do nó khi k院t hợp các mục cha nƠy v噂i nhiều mục khác (có s嘘 l逢ợng vƠ tr丑ng
s嘘 nhỏ) s胤 t衣o ra nhiều GậFWUI.
Từ các s嘘 liệu trên có th吋 thấy khi sử dụng hàm SUM s胤 khó ki吋m soát
s嘘 l逢ợng các FWUI khai thác đ逢ợc so v噂i sử dụng hƠm MAX, đ欝ng th運i
nhiều FWUI s胤 không th詠c t院 do các mục có tr丑ng s嘘 và s嘘 l逢ợng thấp nh逢ng
đ逢ợc k院t hợp v噂i các mục cha có tr丑ng s嘘 và s嘘 l逢ợng l噂n nên thỏa mãn
ng逢ỡng minwus, do đó các FWUI nƠy th逢運ng là các FWUI không “mong
đợi” đ嘘i v噂i ng逢運i sử dụng. Do v壱y sử dụng hàm MAX d宇 ki吋m soát và th詠c
t院 h挨n. 3.4.2.3. So sánh thời gian
K院t qu違 th詠c nghiệm trên ba CSDL cho trong B違ng 3.10v噂i thu壱t toán
MINE_FWUIs khi sử dụng các cấu trúc DBV, MBiS, EDBV và EIWS đ逢ợc
ch雨 ra trong các hình 3.10ậ3.12:
97
Hình 3.10. So sánh th運i gian trên CSDL SALEậFACTậ1997
Hình 3.11. So sánh th運i gian trên CSDLSALEậFACTậ1997+1998
Hình 3.12. So sánh th運i gian trên CSDL SALEậFACTậSYNC
Hình 3.10ậ3.12 so sánh th運i gian ch衣y của b嘘n cấu trúc DBV, MBiS,
EDBV và EIWS v噂i thu壱t toán MIN_FWUIs. K院t qu違 ch雨 ra rằng thu壱t toán
308,02
234,82
174,82
156,32
,000
50,000
100,000
150,000
200,000
250,000
300,000
350,000
,300 ,200 ,100 ,060 ,030 ,010
tim
e (
s)
minwus (%)
DBV
MBiS
EDBV
EIWS
2634,16
2228,732
1028,981
899,458
0
500
1000
1500
2000
2500
3000
0,3 0,2 0,1 0,06 0,03 0,01
tim
e(s
)
minwus(%)
DBV
MBiS
SDBV
EIWS
2757,776
2109,512
1292,55
910,23
0
500
1000
1500
2000
2500
3000
0,3 0,2 0,1 0,06 0,03 0,01
tim
e(s
)
minwus(%)
DBV
MBiS
EDBV
EIWS
98
MINE_FWUIs hiệu qu違 nhất khi sử dụng cấu trúc EIWS. Ví dụ, CSDL
SALEậFACTậ1997, v噂i ng逢ỡng minwus = 0,01%, th運i gian ch衣y v噂i DBV,
MBiS, EDBV và EIWS lần l逢ợt là 308,022s, 234,823s, 174,823s và 156,321s.
Nh逢 v壱y EIWS nhanh h挨n EDBV, MBiS vàDBV lần l逢ợt là 1,12; 1,34 và
1,76 lần.
K院t qu違 th詠c nghiệm v噂i thu壱t toán FAST_MINE_FWUIs và
MINE_FWUIs đ逢ợc trình bày qua các Hình 3.13ậ3.15:
Hình 3.13. So sánh th運i gian trên CSDL SALEậFACTậ1997
Hình 3.14. So sánh th運i gian trên CSDL SALEậFACTậ1997+1998
Hình 3.15. So sánh th運i gian trên CSDL SALEậFACTậSYNC
156,321
45,563
0
50
100
150
200
0,3 0,2 0,1 0,06 0,03 0,01
tim
e(s
)
minwus(%)
MINE_FWUIs- EIWS
FAST_MINE_FWUIs-EIWS
393,452
899,458
0
200
400
600
800
1000
0,3 0,2 0,1 0,06 0,03 0,01
tim
e(s
)
minwus(%)
FAST_MINE_FWUIs-EIWS
MINE_FWUIs-EIWS
495,872
1021,441
0
500
1000
1500
0,3 0,2 0,1 0,06 0,03 0,01
tim
e(s
)
minwus(%)
FAST_MINE_FWUIs -EIWS
MINE_FWUIs - EIWS
99
Hình 3.13ậ3.15 ch雨 ra s詠 hiệu qu違 của thu壱t toán FAST_MINE_FWUIs
so v噂i MINE_FWUIs khi cùng sử dụng cấu trúc EIWS. Điều này th吋 hiện các
逢u đi吋m của việc không chèn thêm mục cha vƠo CSDL vƠ xác đ鵜nh nhanh
m嘘i quan hệ cha con của t壱p mục t衣o thành từ hai t壱p mục trong cùng m瓜t l噂p
t逢挨ng đ逢挨ng trên HITậtree. Cụ th吋 ta có k院t qu違 đ嘘i v噂i CSDL SALEậ
FACTậ1997 nh逢 trong B違ng 3.14 sau đơy:
B違ng 3.14. So sánh th運i gian ch衣y trên CSDL SALEậFACTậ1997
Thuật toán
minwus
MINE_FWUIs FAST_MINE_FWUIs
DBV MBiS EDBV EIWS EDBV EIWS
0,3% 18,413 16,687 11,687 6,213 4,687 2,333
0,2% 45,597 33,537 21,537 12,382 11,537 6,431
0,1% 57,263 42,031 26,031 19,324 17,031 10,123
0,06% 71,821 60,923 30,923 28,412 24,923 14,244
0,03% 121,462 90,767 52,767 45,463 30,767 18,549
0,01% 308,022 234,823 174,133 156,321 90,651 45,563
Từ b違ng 3.14, v噂i minwus = 0,01% thu壱t toán FAST_MINE_FWUIs v噂i
cấu trúc EDBV có th運i gian ch衣y là 90,651s nhanh h挨n thu壱t toán
MINE_FWUIs (174,133s) là 1,93 lần. Điều này cho thấy tính hiệu qu違 của
việc không thêm mục cha vào CSDL và việc xác đ鵜nh nhanh m嘘i quan hệ cha
con của các mục trong t壱p mục t衣o thành từ hai t壱p mục trong cùng m瓜t l噂p
t逢挨ng đ逢挨ng của HITậtree.
Bên c衣nh đó, cấu trúc EIWS cho thấy hiệu qu違 khá t嘘t so v噂i các ph逢挨ng
pháp khác. Ví dụ v噂i minwus = 0,01%, thu壱t toán FAST_MINE_FWUIs v噂i
cấu trúc EDBV có th運i gian ch衣y là 90,651s, v噂i cấu trúc EIWS có th運i gian
100
ch衣y lƠ 45,563s. Nh逢 v壱y sử dụng cấu trúc EIWS nhanh h挨n 49,8% so v噂i
cấu trúc EDBV.
3.5. K院t lu壱n ch逢挨ng
Ch逢挨ng nƠy của lu壱n án đề xuất hai cấu trúc EDBV và EIWS v噂i các
phần tử là các LI, đơy lƠ các m荏 r瓜ng của DBV vƠ IWS. Đ欝ng th運i đề xuất sử
dụng m違ng MAP đ鵜nh nghƿa tr逢噂c v鵜 trí các bit 1 của các s嘘 nguyên hai byte
và sử dụng các phép d鵜ch và AND bit đ吋 “cắt” các word (hai byte) từ các LI
đ吋 ánh x衣 vào m違ng MAP đ吋 tính tidset của các t壱p mục giúp tính nhanh wus
của chúng. Các k院t qu違 th詠c nghiệm từ Hình 3.10ậ3.12 đư cho thấy hiệu qu違
của EIWS vƠ EDBV đ嘘i v噂i các cấu trúc tr逢噂c đó trên ba CSDL th詠c nghiệm
lấy từ b違n Foodmart2000 của SQL2000.
Bên c衣nh đó, ch逢挨ng nƠy đề xuất hai đ鵜nh lý nhằm t嘘i 逢u b瓜 nh噂 và ti院t
kiệm th運i gian khai thác FWUI trên HQDB. Thứ nhất, Đ鵜nh lý 3.2 đ逢a ra
cách xác đ鵜nh tidset mục cha thông qua tidset của các mục con 荏 nút lá trên
cây phân cấp. Bằng đ鵜nh lý này, việc khai thác trên HQDB không t嘘n th運i
gian thêm mục cha vào các giao d鵜ch của HQDB nh逢 các ph逢挨ng pháp tr逢噂c
đơy và đ欝ng th運i không t嘘n b瓜 nh噂 đ吋 l逢u tr英 các mục cha này trong CSDL,
điều này th壱t s詠 có hiệu qu違, nhất là trên các CSDL có nhiều cây phân cấp và
đ瓜 sâu của các cây phân cấp là l噂n. Thứ hai, Đ鵜nh lý 3.3 chứng minh việc xác
đ鵜nh trong t壱p mục m噂i t衣o thành từ hai t壱p mục cùng l噂p t逢挨ng đ逢挨ng trên
HIT ậ tree bằng cách ki吋m tra m嘘i quan hệ của đúng m瓜t cặp mục cu嘘i của
t壱p mục m噂i. Trong khi các ph逢挨ng pháp tr逢噂c đơy ki吋m tra 2× (m ậ 1) cặp
v噂i m là s嘘 l逢ợng mục của t壱p mục cần ki吋m tra. K院t qu違 th詠c nghiệm từ
Hình 3.13 ậ 3.15 cho thấy hiệu qu違 khi áp dụng hai đ鵜nh lý đề xuất trong
ch逢挨ng nƠy.
101
K蔭T LU一N VÀ H姶閏NG PHÁT TRI韻N
Các kết quả đạt được
Lu壱n án đư tìm hi吋u các nghiên cứu đư có về khai thác t壱p mục phổ bi院n
trên CSDL, đặc biệt là khai thác FWI và FWUI trên QDB và khai thác FI trên
CSDL có s詠 phân cấp các mục. Trên c挨 s荏 đó, lu壱n án đư đề xuất m瓜t s嘘 cấu
trúc m噂i nh逢 MBiS [35], IWS [34, 36], đ吋 nâng cao hiệu qu違 khai thác t壱p
mục phổ bi院n trên QDB, CSDL có s詠 phân cấp các mục, đ欝ng th運i đề xuất
cấu trúc DTab và DHeap trong khai thác nhanh TRFWUIk. Từ đó áp dụng
vào gi違i quy院t hiệu qu違 bài toán khai thác FWUI trên HQDB. Các k院t qu違
nghiên cứu trình bày trong lu壱n án đư đ逢ợc công b嘘 trên các t衣p chí và h瓜i
th違o uy tín.
Các cấu trúc d英 liệu đ逢ợc đề xuất trong lu壱n án nh逢 IWS và MBiS là các
cấu trúc m噂i, c違i ti院n hiệu qu違 rõ rệt so v噂i các cấu trúc đư có nh逢 BitTable
hay DBV về b瓜 nh噂 sử dụng cũng nh逢 th運i gian xử lý. Bên c衣nh đó, đ嘘i v噂i
cấu trúc IWS, lu壱n án đề xuất sử dụng m瓜t m違ng MAP đ鵜nh nghƿa tr逢噂c v鵜 trí
bit 1 trong các phần tử của cấu trúc đ吋 tính nhanh wus (đ嘘i v噂i khai thác
FWUI) và ws (đ嘘i v噂i khai thác FWI) trên QDB. Hiệu qu違 của các cấu trúc
nƠy đ逢ợc minh h丑a cụ th吋 qua các k院t qu違 th詠c nghiệm.
Lu壱n án đề xuất hai cấu trúc EDBV và EIWS là m荏 r瓜ng của các cấu
trúc DBV và IWS t逢挨ng ứng, bằng cách sử dụng các phần tử là các LI. Lu壱n
án đ逢a ra gi違i pháp sử dụng các phép d鵜ch bit vƠ AND bit đ吋 v磯n sử dụng
đ逢ợc m違ng MAP nh逢 đ嘘i v噂i cấu trúc IWS giúp tính nhanh wus (đ嘘i v噂i khai
thác FWUI) và ws (đ嘘i v噂i khai thác FWI). Các cấu trúc này cho thấy hiệu
qu違 trong việc gi違m th運i gian ch衣y so v噂i các cấu trúc khác.
Lu壱n án đề xuất cấu trúc DTab và DHeap và thu壱t toán t逢挨ng ứng cho
bài toán khai thác TRFWUIk. Các cấu trúc này và thu壱t toán đề xuất đư cho
102
thấy hiệu qu違 của chúng về th運i gian xử lý so v噂i các thu壱t toán tr逢噂c đó.
Điều nƠy đ逢ợc ki吋m chứng qua các k院t qu違 th詠c nghiệm.
Lu壱n án đề xuất m瓜t s嘘 đ鵜nh lý nhằm xác đ鵜nh tidset của các mục cha
thông qua tidset của mục con trên cây phân cấp vƠ xác đ鵜nh nhanh m嘘i quan
hệ cha con của các mục trong m瓜t t壱p mục đ吋 gi違m b瓜 nh噂 l逢u tr英 CSDL và
tăng t嘘c tính toán cho bài toán khai thác FWUI trên HQDB. Bên c衣nh đó,
lu壱n án áp dụng các cấu trúc đư đề xuất vào gi違i quy院t bài toán khai thác
FWUI trên HQDB m瓜t cách hiệu qu違.
Hướng phát triển
Lu壱n án đư nghiên cứu các ph逢挨ng pháp khai thác t壱p mục phổ bi院n trên
CSDL s嘘 l逢ợng và CSDL s嘘 l逢ợng có s詠 phân cấp các mục. Lu壱n án đề xuất
m瓜t s嘘 thu壱t toán v噂i các cấu trúc d英 liệu m噂i hiệu qu違 h挨n các ph逢挨ng pháp
khai thác t壱p phổ bi院n đư có. Tuy nhiên, các bài toán trên CSDL s嘘 l逢ợng có
s詠 phân cấp các cần đ逢ợc m荏 r瓜ng và nghiên cứu ti院p nh逢: 1. Gi違i quy院t bài toán khai thác t壱p mục phổ bi院n đóng đ嘘i v噂i HQDB.
2. Nghiên cứu các h逢噂ng ti院p c壱n hiệu qu違 h挨n trong khai thác t壱p mục phổ
bi院n trên HQDB dày.
3. M荏 r瓜ng bài toán khai thác FWUI trên HQBD l噂n, khi đó cần sử dụng các
hệ th嘘ng tính toán hiệu năng cao đ吋 gi違i quy院t bài toán v噂i các mô hình
song song hóa thu壱t toán m瓜t cách hợp lý.
103
DANH M影C CÔNG TRÌNH KHOA H窺C C曳A TÁC GI謂
LIÊN QUAN Đ蔭N LU一N ÁN
[1] Nguyen Duy Ham, Vo Dinh Bay, Nguyen Thi Hong Minh, Tzung Pei
Hong, “MBiS: an efficient method for mining frequent weighted utility
itemsets from QDB”, Journal of Computer Science and Cybernetics, 31(1),
pp. 17 – 30, 2015.
[2] Nguyen Duy Ham, Bay Vo, Nguyen Thi Hong Minh, Tzung Pei Hong,
“An improved algorithm for mining frequent weighted itemsets”, in Proc. of
the International conf on IEEE System, Man, Cybernetics, Hong Kong, pp.
2579 – 2584, 2015.
[3] Nguy宇n Duy HƠm, Võ Đình B違y, Nguy宇n Th鵜 H欝ng Minh, “Thu壱t toán
hiệu qu違 khai thác t壱p phổ bi院n từ c挨 s荏 d英 liệu s嘘 l逢ợng có s詠 phân cấp
mục”, Hội nghị khoa học quốc gia lần thứ 8:“Nghiên cứu cơ bản và ứng
dụng CNTT”, Viện CNTT ậ Đ衣i h丑c Qu嘘c gia Hà N瓜i, pp. 679–686, 2015.
[4] Nguy宇n Duy HƠm, Võ Đình B違y, Nguy宇n Th鵜 H欝ng Minh, “Thu壱t toán
hiệu qu違 khai thác Top ậ rank ậ k t壱p phổ bi院n tr丑ng s嘘 h英u ích”, Hội thảo
quốc gia lần thứ 18: “Một số vấn đề chọn lọc về CNTT và TT”, 2015.
[5] Nguyen Duy Ham, Bay Vo, Nguyen Thi Hong Minh, Witold Pedrycz,
“An Efficient Algorithm for Mining Frequent Weighted Itemsets using
Interval Word Segments”, Applied Intelligence, 2016 (Accepted 31/3/2016 )
104
TÀI LI烏U THAM KH謂O
[1] Agrawal, R., & Srikant, R. (1994). Fast algorithms for minings association
rules. Proc. of the 20th International Conf on Very Large Data Bases ,
pp. 487-499.
[2] Agrawal, R., Imielinski, T., & Swami, A. (1993). Mining association rules
between sets of items in large databases. Proc. of the 1993 ACM
SIGMOD International conference on Management of data, 22(2), 207-
216.
[3] Agrawal, R., Mannila, H., Srikant, R., Toivonen, H., & Verkamo, I. A. (1996).
Fast discovery of association rules. Proc.of Conf on Advances in
Knowldege Discovery and Data Mining, pp. 307-328.
[4] Ali, Z. S., & Rathore, Y. (2014.). A effective and efficient algorithm for cross
level frequent pattern mining. Proc. of Conf on Advances in Engineering
and Technology Research, pp. 1-6.
[5] Baralis, E., Cagliero, L., Cerquitelli, T., & Garza, P. (2012). Generalized
association rule mining with constraints. Information Science (Elsevier
Science Inc), 194, pp. 68-84.
[6] Baralis, E., Cagliero, L., Cerquitelli, T., D’Elia, V., & Garza, P. (2014).
Expressive generalized itemsets. Information Sciences, 278, pp. 327-343.
[7] Cai, C. H., Fu, A. C., Cheng, C. H., & Kwong, W. W. (1998). Mining
association rules with weighted items. Proc. of Conf on IEEE
Intelligence Database Engineering and Applications Symposium, pp. 68-
77.
[8] Deng, H. Z., & Fang, G. (2007). Mining top-rank-k-frequent patterns. Proc. of
Conf on Machine Learning and Cybernetics, pp. 1763ậ1768.
[9] Deng, H.-Z. (2012). A new algorithm for fast mining frequent itemsets using
N-list. Science china information science, 55(9), pp. 2008-2030.
[10] Deng, H.-Z., & Long, S. (2014). Fast mining frequent itemsets using
Nodesets. Expert Systems with Applications, 41(10), pp. 4505-4512.
105
[11] Deng, Z.-H. (2014). Fast mining top-rank-k - frequent patterns by using Node-
list. Expert Systems with Applications, pp. 1763-1768.
[12] Deng, Z.-H., & Lv, S.-L. (2015). PrePost+: An efficient N-Lists-based
Algorithm for Mining Frequent Itemsets via Children-Parent
Equivalence Pruning. Expert Systems with Applications, 42(13), pp.
5424-5432.
[13] Dong, J., & Han, M. (2007). BitTable-FI An efficient mining frequent itemsets
algorithm. Knowledge-Based Systems, 20(4), pp. 329-335.
[14] Erwin, A., Gopalan, R. P., & Achuthan, R. N. (2007). CTU-Mine: An efficient
hight utility itemset mining algorithm using the pattern growth approach.
Computer and Informaition Technology, CIT, pp. 71-76.
[15] Fang, G., & Deng, Z.-H. (2008). VTK: Vertical mining of top-rank-k frequent
pattern. Proc. of the Conf on Fifth International Fuzzy Systems and
Knowdelge Discovery 2008, pp. 620 - 624.
[16] Grahne, G., & Zhu, J. (2005). Fast algorithms for frequent itemset mining
using FP-trees. Proc. of Conf on IEEE Transactions on Knowledge anh
Data Mining and Data Engineering, 17(10), pp. 1347-1362.
[17] Hàm, N. D., B違y, V. Đ., & Minh, N. T. (2014). M瓜t ph逢挨ng pháp khai thác nhanh FWUI trên CSDL s嘘 l逢ợng. Hội thảo quốc gia lần thứ 17: "Một
số vấn đề chọn lọc về CNTT và TT", pp. 280-285.
[18] Hàm, N. D., B違y, V. Đ., & Minh, N. T. (2015). Thu壱t toán hiệu qu違 khai thác
Top ậ Rank ậ K t壱p phổ bi院n tr丑ng s嘘 h英u ích. " Hội thảo quốc gia lần
thứ 18: Một số vấn đề chọn lọc về CNTT và TT".
[19] Hàm, N. D., B違y, V. Đ., & Minh, N. T. (2015). Thu壱t toán hiệu qu違 khai thác
t壱p phổ bi院n từ c挨 s荏 d英 liệu s嘘 l逢ợng có s詠 phân cấp mục. Hội thảo
quốc gia lần thứ 8: "Nghiên cứu cơ bản và ứng dụng CNTT", pp. 679ậ686.
[20] Han , J., Pei , J., & Yin, Y. (2000). Mining frequent patterns without candidate
generation. Proc. of conf on ACM SIGMOD Management of Data, pp. 1-
12.
106
[21] Han, J., & Fu, F. (1995). Discovery of multiple-level association rules from
large databases. Proc. of 21th conf on Very Largr Databases, (pp. 420-
431). Zurich, pp. 420-431.
[22] Khan, M. S., Muyeba, M., & Coenen, F. (2008). A weighted utility framework
for mining association rules. Proc. of conf on IEEE European Modeling
Symposium, pp. 87-92.
[23] Lan, C. G., Hong, P. T., & Lee, Y. H. (2014). An efficient approach for
finding weighted sequential patterns from sequence databases. Applied
Intelligence, 41(2), pp. 439-452.
[24] Lan, C. G., Hong, P. T., Lee, Y. H., Wang, L. S., & Tsai, W. C. (2013).
Enhancing the efficiency in mining weighted frequent itemsets. Proc. of
IEEE Internationnal conf on System, Man, Cybernetics (SMC), pp. 1104-
1108.
[25] Lan, G. C., Hong, P. T., & Tseng, V. S. (2011). Discovery of hight utility
itemsets from on-shelf time periods of products. Expert Systems with
Applications, 38(6), pp. 5851-5857.
[26] Le, B., Cao, T. A., Nguyen, H., & Vo, B. (2009). A novel algorithm for
mining hight utility itemsets. Proc. of the Conf on 1st Asian Inteleigent
Information and Databases systems, pp. 13-16.
[27] Le, B., Nguyen, H., & Vo, B. (2010). Efficient Algorithms for Mining
Frequent Weighted Itemsets from Weighted Items Databases. Proc. of
the International Conf on Computing and Communication Technologies
2010 (RIVF 2010), pp. 1-6.
[28] Le, B., Vo, B., Le, Q., & Le, T. (2015). Enhancing the mining top-rank-k
frequent patterns. Proc. of IEEE internationnal conf on System, Man,
Cybernetics (SMC), pp. 2008-2012
[29] Le, T., & Vo, B. (2015). An N-list-based algorithm for mining frequent closed
patterns. Expert Systems with Applications, 42(19), pp. 6648-6657.
[30] Lee, Y. C., Hong, P. T., & Chen C, H. (2010). Mining Generalized
Association Rules with Quantitative Data under Multiple Support
107
Constraints, Computational Collective Intelligence. Technologies and
Applications Lecture Notes in Computer Science, 6422, pp. 224-231.
[31] Lin, W. C., Lan, C. G., & Hong, P. T. (2015). Mining hight utility itemsets for
transaction deletion in a dynamic databases. Intelligence Databases
Analys, pp. 43-55.
[32] Liu, B., Hsu, W., & Ma, Y. (1999). Mining association rules with multiple
mining supports. Proc. of International Conf on Knowdelge Discovery
and Data Mining, pp. 337-341.
[33] Louie, E., & Lin, T. (2000). Finding Association Rules Using Fast Bit
Computation: Machine-Oriented Modeling. Foundations of intelligent
system International Symposium, ISMIS , pp. 497-505.
[34] Nguyen, H., Vo, B., Nguyen, M., & Hong, P. T. (2015). An improved
algorithm for mining frequent weighted itemsets. Proc. of the
International conf on IEEE System, Man, Cybernetics. Hong Kong, pp.
2579 - 2584.
[35] Nguyen, H., Vo, B., Nguyen, M., & Hong, P. T. (2015). MBiS:an efficient
method for mining frequent weighted utility itemsets from QDB. Journal
of Computer Science and Cybernetics, 31(1), pp. 17-30.
[36] Nguyen, H., Vo, B., Nguyen, T. H., & Witold, P. (2016). An Efficient
Algorithm for Mining Frequent Weighted Itemsets using Interval Word
Segments. Applied Intelligence.
[37] Ramkumar, G. D., Ranka, S., & Tsur, S. (1998). Weighted Association Rules:
Model and Algorithm. Proc. of conference on Knowledge Discovery and
Data Mining - KDD, pp. 1-13.
[38] Song, W., Yang, B., & Xu, Z. (2008). Index-BitTableFI: An improve
algorithm for mining frequent itemsets. Knowledge - Based System,
21(6), pp. 507-513.
[39] Tao, F., Murtagh, F., & Farid, M. (2003). Weighted Association Rules mining
using weighted support and signifocance framework. Proc. of conference
on ACM SIGKDD, pp. 661-666.
108
[40] Tseng, M. C., & Lin, W. Y. (2007). Efficient mining of generalized
association rules with non-uniform minimum support. Data &
Knowledge Engineering, 66(1), pp. 41-64.
[41] Vo, B., & Le, B. (2009). Fast Algorithm for Mining Generalized Association
Rules. International Journal of Database and Application, 2(3), pp. 1-
12.
[42] Vo, B., Coenen, F., & Le, B. (2013). A new method for mining Frequent
Weighted Itemsets base on WIT-trees. Expert systems with Applications,
40(4), pp. 1256-1264.
[43] Vo, B., Hong, P. T., & Le, B. (2012). DBV-Miner: A Dynamic Bit - Vector
approach for fast mining frequent close itemsets. Expert Systems with
Applications, 39(8), pp. 7196-7206.
[44] Vo, B., Le, B., & Jason, J. J. (2012). A Tree-based Approach for Mining
Frequent Weighted Utility Itemsets. Computational Collective
Intelligence Tecnologies and Applications, 7653, pp. 114-123.
[45] Vo, B., Le, T., Coenen, F., & Hong, P. T. (2014). Mining frequent itemsets
using the N-list and subsume concepts. International Journal of Machine
Learning and Cybernetics, 7(2), pp 253-265
[46] Vo, B., Nguyen, Y., & Nguyen, D. (2013). Mining frequent weighted close
itemsets. Proc. of Conf on Advanced Computational Methods for
Knowledge Engineering, pp. 379-390.
[47] Wang, W., Yang, J., & Yu, P. (2000). Efficient mining of weighted
association rules (WAR). Proc. of the conference on ACM SIGKDD
Knowledge Discovery and Data Mining, pp. 270-274.
[48] Yang, J. K., Hong, P. T., Lan, C. G., & Chen, M. Y. (2014). A two phase
approach for mining weighted partial periodic pattern. Engineering
Applications of Artificial Intelligence, 30(4), pp. 225-234.
[49] Yun, U., & Eunchul, Y. (2014). An efficient approach for mining weighted
approximate closed frequent patterns considering noise constraints.
International Journal of Uncertainty Fuzziness and Knowledge-Based
Systems 22(6), pp. 879-912.
109
[50] Yun, U., & Leggett, J. J. (2005). WFIM: Weighted Frequent Itemset Mining
with a weight range and a minimum weight. In: Proceedings of SIAM
International Conference on Data Mining, pp. 636-640.
[51] Yun, U., & Leggett, J. J. (2006). WSpan: Weighted Sequential pattern mining
in large sequence databases. Pro. of IEEE International Conference on
Intelligent Systems, pp. 512-517.
[52] Yun, U., & Pyun, G. (2015). Efficient mining of robust closed weighted
sequential patterns without information loss. International Journal on
Artificial Intelligence Tools, 24(1), pp. 1-28.
[53] Yun, U., Lee, G., & Ryu, H. K. (2014). Mining maximal frequent patterns by
considering weight conditions over data streams. Knowl.-Based Syst. 55,
pp. 49-65.
[54] Zaki, M. J. (2000). Scalable algorithms for association mining. IEEE
transactions on Knowledge and Data Engineering, 12(3), pp. 372-390.
[55] Zaki, M. J., & Gouda, K. (2003). Fast vertical mining using Diffset. Proc. of
the ninth ACM SIGKDD International conf on Knowledge Discovery and
Data Mining, pp. 327-335.