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 có sự phân cấp các mục

120 20 0
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 có sự phân cấp các mục

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Tiếp đến Zaki và các đồng sự đề xuất thuật toán Eclat [49] 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 [r]

(1)

ĐẠ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

LUẬN ÁN TIẾN SĨ TOÁN HỌC

(2)

ĐẠ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ố: 62460110

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

XÁC NHẬN NCS ĐÃ CHỈNH SỬA THEO QUYẾT NGHỊ CỦA HỘI ĐỒNG ĐÁNH GIÁ LUẬN ÁN

Ngƣời hƣớng dẫn khoa học Chủ tịch hội đồng đánh giá

Luận án Tiến sĩ

TS Nguyễn Thị Hồng Minh PGS.TS Huỳnh Quyết Thắng

(3)

i

LỜI CAM ĐOAN

Tôi xin cam đoan luận án cơng trình nghiên cứu tác giả thực dƣới hƣớng dẫn tập thể cán 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, thơng tin trích dẫn đƣợc ghi rõ nguồn gốc Các số liệu thực nghiệm, kết nghiên cứu trình bày luận án hồn tồn trung thực, chƣa đƣợc công bố tác giả hay cơng trình khác

Tác giả

(4)

ii

LỜI CẢM ƠN

Luận án Tiến sĩ đƣợc thực trƣờng Đại học Khoa học Tự nhiên - Đại học Quốc gia Hà Nội với hƣớng dẫn khoa học TS Nguyễn Thị Hồng Minh, PGS.TS.Võ Đình Bảy 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 đỡ bảo tỉ mỉ suốt q trình nghiên cứu hồn thiện luận án Nghiên cứu sinh ghi nhớ cơng lao dạy dỗ, dìu dắt vào đƣờng khoa học cố PGS.TS Hồ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 nhà khoa học, tác giả công trình nghiên cứu đƣợc trích dẫn luận án nguồn tài liệu quý báu để Nghiên cứu sinh phát triển hồn thiện cơng bố

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, 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 điều kiện thuận lợi để Nghiên cứu sinh hoàn thành chƣơng trình học tập thực hồn tất luận án

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 Tố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 bạn bè thân thiết tạo điều kiện, động viên, khuyến khích hỗ trợ tối đa để Nghiên cứu sinh hoàn thành luận án

Cuối cùng, xin cảm ơn Bố Mẹ, đặc biệt Mẹ - ngƣời ln hy sinh tất nghiệp học tập con, tiếc mẹ không đợi đƣợc đến ngày hoàn thành luận án Xin cảm ơn gia đình, chị gái em ln đồng hành, động viên, chia sẻ giúp trì nhiệt huyết nghị lực để đến hoàn thành luận án này./

(5)

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 V DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ VII DANH MỤC CÁC KÍ HIỆU VÀ CHỮ VIẾT TẮT X

MỞ ĐẦU

CHƢƠNG TỔNG QUAN VỀ KHAI THÁC TẬP MỤC

1.1 Bài toán khai thác tập mục

1.1.1 Một số khái niệm

1.1.2 Bài toán khai thác FI 15

1.2 Các phƣơng pháp khai thác FI 15

1.2.1 Phƣơng pháp khai thác FI CSDL ngang 15

1.2.2 Phƣơng pháp khai thác FI CSDL dọc dựa IT-tree 18

1.3 Một số phƣơng pháp khai thác FWI FWUI CSDL số lƣợng 21

1.3.1 Giới thiệu 21

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 CSDL có phân cấp mục 28

1.5 Tiếp cận bit-vector khai thác FI 31

1.6 Kết luận chƣơng 32

CHƢƠNG KHAI THÁC TẬP MỤC PHỔ BIẾN TRÊN CƠ SỞ DỮ LIỆU SỐ LƢỢNG 35

2.1 Thuật toán khai thác tập FWI 36

2.1.1 Giới thiệu 36

2.1.2 Thuật tốn tính giao hai IWS 40

2.1.3 Thuật toán khai thác FWI 42

2.1.4 Kết thực nghiệm 48

2.2 Thuật toán khai thác FWUI 54

2.2.1 Cấu trúc Multi bit segment 54

2.2.2 Thuật toán xác định giao MBiS 55

2.2.3 Thuật toán khai thác FWUI dựa MBiS-tree 56

(6)

iv

2.3 Thuật toán khai thác TRFWUIk 63

2.3.1 Một số khái niệm 63

2.3.2 Cấu trúc DTab 64

2.3.3 Cấu trúc TR-tree 65

2.3.4 Thuật toán khai thác TRFWUIk sử dụng cấu trúc liệu DTab 65

2.3.5 Thuật toán khai thác nhanh TRFWUIk dựa cấu trúc DHeap 68

2.3.6 Kết thực nghiệm 70

2.4 Kết luận chƣơng 73

CHƢƠNG 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 75

3.1 Giới thiệu toán 76

3.2 Thuật toán khai thác FWUI HQDB 79

3.2.1 Thuật toán xác định weight cho mục cha 79

3.2.2 Thuật toán thêm mục cha vào CSDL 80

3.2.3 Thuật toán khai thác FWUI 81

3.3 Một số cải tiến nâng cao hiệu khai thác FWUI HQDB 84

3.3.1 Cấu trúc EDBV 84

3.3.2 Tính tidset nút cha từ tidset nút 89

3.3.3 Kiểm tra mối quan hệ cha mục tập mục 91

3.3.4 Thuật toán khai thác nhanh FWUI HQDB 92

3.4 Kết thực nghiệm 93

3.4.1 CSDL thực nghiệm 93

3.4.2 Kết 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

(7)

v

DANH MỤC BẢNG

Bảng 1.1. Các giao dịch nhị phân DB 8

Bảng 1.2. Các giao dịch CSDL nhị phân có phân cấp mục DB

Bảng 1.3. ID mục DB 10

Bảng 1.4. Các giao dịch DB ID 10

Bảng 1.5. Giao dịch CSDL số lƣợng BD 12

Bảng 1.6. Trọng số mục DB 12

Bảng 1.7. Các giao dịch CSDL trọng số DB 13

Bảng 1.8. Trọng số mục DB 13

Bảng 1.9. CSDL DB 15

Bảng 1.10. DB theo chiều dọc 19

Bảng 1.11. Giá trị tw CSDL DB ví dụ 1.4 23

Bảng 1.12. twu giao dịch DB ví dụ 1.4 25

Bảng 1.13. DB Ví dụ 1.2 sau thêm mục cha 30

Bảng 2.1. Bit-vector 36

Bảng 2.2. DBV bit-vector ví dụ 2.1 36

Bảng 2.3. IWS từ bit-vector ví dụ 2.1 37

Bảng 2.4. Chỉ số bit IWS(X) 39

Bảng 2.5. Mảng MAP 42

Bảng 2.6. IWS mục 46

Bảng 2.7. Mô tả CSDL thực nghiệm 49

Bảng 2.8. Bit-vector với 96 phần tử 54

Bảng 2.9. MBiS từ bit-vector Bảng 2.8 55

Bảng 2.10. Bảng TRFWUIk 64

Bảng 3.1. Giao dịch HD 76

Bảng 3.2. Trọng số 76

(8)

vi

Bảng 3.4. Giao dịch HD 82

Bảng 3.5. Trọng số 82

Bảng 3.6. twu giao dịch 83

Bảng 3.7. Tập 1-itemset phổ biến 83

Bảng 3.8. Mảng MAP với 65.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, đoạn word 86

Bảng 3.10. Mô tả CSDL 93

Bảng 3.11. Các mức phân cấp 93

Bảng 3.12. So sánh nhớ số lƣợng mục 94

Bảng 3.13. Thực nghiệm CSDL SALE-FACT-SYNC 95

(9)

vii

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 1.1 Cây phân cấp Tr 10

Hình 1.2 Cây phân cấp Tr biểu diễn theo ID 11

Hình 1.3 Thuật tốn Apriori khai thác tập mục phổ biến 16

Hình 1.4 Thuật toán FP-Growth dựa cấu trúc FP-tree 17

Hình 1.5 Thuật tốn Eclat dựa cấu trúc IT-tree 19

Hình 1.6 Cây IT tree với minsup = 0,5 CSDL DB 20

Hình 2.1 Thuật tốn xác định giao hai IWS 41

Hình 2.2 Thuật tốn tính ws tập mục X 43

Hình 2.3 Thuật tốn xây dựng IWS-tree 45

Hình 2.4 Thuật tốn khai thác FWI dựa IWS-tree 45

Hình 2.5 IWS-tree với nút A(minws = 0,4) 46

Hình 2.6 IWS-tree với nútA vàB(minws = 0,4) 47

Hình 2.7 IWS-tree với minws = 0,4 48

Hình 2.8 So sánh thời gian chạy với CSDL RETAIL 49

Hình 2.9 So sánh thời gian chạy với CSDL BMS-POS 49

Hình 2.10 So sánh thời gian chạy với CSDL SALE-FACT-1997 50

Hình 2.11 So sánh thời gian chạy với CSDL SALE-FACT-1997+1998 50

Hình 2.12 So sánh thời gian chạy với CSDL SALE-FACT-SYNC 50

Hình 2.13 So sánh thời gian chạy với CSDL CONNECT 50

Hình 2.14 So sánh thời gian chạy với CSDL ACCIDENTS 51

Hình 2.15 So sánh nhớ sử dụng với CSDL RETAIL 51

Hình 2.16 So sánh nhớ sử dụng với CSDL BMS-POS 51

Hình 2.17 So sánh nhớ sử dụng với CSDL SALE-FACT-1997 51

(10)

viii

Hình 2.19 So sánh nhớ sử dụng với CSDL SALE-FACT-SYNC 52

Hình 2.20 So sánh nhớ sử dụng với CSDL CONNECT 52

Hình 2.21 So sánh nhớ sử dụng với CSDL ACCIDENT 52

Hình 2.22 Thuật toán xác định giao hai MBiS 56

Hình 2.23 Thuật tốn tính wus dựa MBiS 57

Hình 2.24 Thuật tốn khai thác FWUI dựa MBiS-tree 58

Hình 2.25 So sánh thời gian chạy CSDL RETAIL 59

Hình 2.26 So sánh thời gian chạy CSDL BMS-POS 59

Hình 2.27 So sánh thời gian chạy CSDL SALE-FACT-1997 60

Hình 2.28 So sánh thời gian chạy CSDL SALE-FACT-1997+1998 60

Hình 2.29 So sánh thời gian chạy CSDL SALE-FACT-SYNC 60

Hình 2.30 So sánh thời gian chạy CSDL CONNECT 60

Hình 2.31 So sánh thời gian chạy CSDL ACCIDENTS 61

Hình 2.32 So sánh nhớ sử dụng CSDL RETAIL 61

Hình 2.33 So sánh nhớ sử dụng CSDL BMS-POS 61

Hình 2.34 So sánh nhớ sử dụng CSDL SALE-FACT-1997 61

Hình 2.35 So sánh nhớ sử dụng CSDL SALE-FACT-1997+1998 62

Hình 2.36 So sánh nhớ sử dụng CSDL SALE-FACT-SYNC 62

Hình 2.37 So sánh nhớ sử dụng CSDL CONNECT 62

Hình 2.38 So sánh nhớ sử dụng CSDL ACCIDENT 62

Hình 2.39 DTab với k = 65

Hình 2.40 Thuật tốn tạo TR-tree sử dụng DTab 67

Hình 2.41 Thuật tốn lọc TRFWUIk 68

Hình 2.42 DHeap với k = với CSDL ví dụ 1.4 69

(11)

ix

Hình 2.44 Thuật tốn lọc TRFWUIk 70

Hình 2.45 So sánh thời gian chạy CSDL MBS-POS 71

Hình 2.46 So sánh thời gian chạy CSDL RETAIL 71

Hình 2.47 So sánh thời gian chạy CSDL CONNECT 72

Hình 2.48 So sánh thời gian CSDL SALE-FACT-1997 72

Hình 2.49 So sánh thời gian CSDL SALE-FACT-1997+1998 72

Hình 2.50 So sánh thời gian CSDL SALE-FACT-SYNC 72

Hình 3.1 Tập phân cấp Tr 77

Hình 3.2 Thuật tốn tính weight cho mục cha 80

Hình 3.3 Thuật tốn thêm mục cha vào CSDL 80

Hình 3.4 Thuật toán khai thác FWUI từ HQDB 82

Hình 3.5 Cây HIT-tree với CSDL HD minwus = 0,6 84

Hình 3.6 Sử dụng phép AND dịch bit để tách đoạn hai byte 87

Hình 3.7 Thuật tốn tính nhanh wus tập mục 89

Hình 3.8 Thuật tốn xác định tidset mục tính twu giao dịch 90

Hình 3.9 Thuật tốn khai thác nhanh FWUI HQDB 92

Hình 3.10 So sánh thời gian CSDL SALE-FACT-1997 96

Hình 3.11 So sánh thời gian CSDLSALE-FACT-1997+1998 96

Hình 3.12 So sánh thời gian CSDL SALE-FACT-SYNC 97

Hình 3.13 So sánh thời gian CSDL SALE-FACT-1997 98

Hình 3.14 So sánh thời gian CSDL SALE-FACT-1997+1998 98

(12)

x

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ở liệu

2 DBV Dynamic bit-vector Bit động

3 EDBV Extended dynamic bit-vector Bit động mở rộng

4 EIWS Extended interval 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 Hierarchical quantitative database

Cơ sở liệu số lƣợng có phân cấp mục

10 IT-tree Itemset tidset-tree Cây IT-tree

11 IWS Interval words segment Các đoạn word

12 MBiS Multi bits segment Các đoạn bit liên tiếp

13 MByS Multi bytes segment Các đoạn byte

14 DTab Dynamic table Bảng động

15 TRFIk Top-rank-k frequent itemsets

K nhóm tập mục phổ biến có thứ hạng cao

16 TRFWUIk

Top-rank-k frequent weight utility itemsets

K nhóm tập mục phổ biến trọng số hữu ích có thứ hạng k cao

17 DHeap Dynamic heap Heap động

18 Item Item Mục

19 Itemset Set of items Tập mục

(13)

1

MỞ ĐẦU

Sự phát triển mạnh mẽ Công nghệ thông tin năm gần thúc đẩy phát triển chung toàn xã hội Với ứng dụng Công nghệ thông tin, ngƣời có “trợ thủ” đắc lực hỗ trợ sống nhƣ công việc Công nghệ thông tin ứng dụng nhiều lĩnh vực đƣa đến tiện lợi kết nối ngƣời khắp giới lại với 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 ngƣời tiết kiệm nhiều thời gian công sức so với thao tác thủ công trƣớc Trong ứng dụng đó, thơng tin, liệu thƣờng xuyên đƣợc đƣa vào để hệ thống thông tin lƣu trữ xử lý Bên cạnh đó, số lƣợng lớn liệu đƣợc cập nhật hàng ngày tự động lƣu trữ thông qua hoạt động ngƣời tƣơng tác với hệ thống thông tin, mạng xã hội, v.v… làm cho liệu ngày lớn phức tạp.

Ngoài việc phục vụ cho hệ thống thông tin hoạt động theo chức sẵn có vấn đề đặt khai thác hiệu loại liệu lƣu trữ hệ thống, tìm tri thức quan trọng, quy luật liệu phục vụ cho việc đƣa dự đoán, dự báo nhằm hỗ trợ định nhu cầu liên quan khác Ví dụ nhƣ từ sở liệu (CSDL) hệ thống bán hàng siêu thị tìm đƣợc quy luật (thói quen) mua hàng khách hàng Khách hàng thƣờng mua mặt hà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 kế hoạch phát triển sản phẩm hiệu 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 CSDL nhị phân

(14)

2

những dự báo, dự đoán tìm quy luật liệu nhằm phục vụ cho nhu cầu khác ngƣời

Thuật toán đƣợc biết tới khai thác FI đƣợc đề xuất Agrawal đồng [2] năm 1993, sau Agrawal đề xuất thuật toán Apriori [1] năm 1994 Tuy nhiên thuật toán sớm bộc lộ hạn chế thời gian xử lý đọc CSDL nhiều lần Tiếp theo Han đồng đề xuất thuật toán FP-Growth [19] Grahne đồng đề xuất FP-Growth* [18] dựa việc nén liệu lên FP-tree (frequent pattern-tree) với hai lần đọc CSDL, thuật toán hiệu nhớ sử dụng, song lại tốn thời gian cho duyệt FP-tree để khai thác FI Tiếp đến Zaki đồng đề xuất thuật toán Eclat [49] dựa cấu trúc IT-tree (Itemset Tidset-tree) với lần đọc liệu để chuyển CSDL ngang thành CSDL dọc với mục tidset (set of transaction identifiers - tập giao dịch) chúng Tuy nhiên, Eclat có hạn chế cần nhiều nhớ để lƣu trữ tidset, gián tiếp ảnh hƣởng đến hiệu mặt thời gian thuật toán Tiếp theo Zaki đồng [50] đề xuất cấu trúc diffset, với tƣ tƣởng sử dụng phần bù tidset, nhƣng cách làm thực có hiệu CSDL dày Tuy nhiên, thực tế CSDL thƣa loại CSDL phổ biến

Một số phát triển gần với cấu trúc N-list [8, 9,10,11,12, 17, 26, 40] nghiên cứu dựa tiếp cận lai ghép FP-tree định dạng liệu dọc nhằm giảm nhớ giúp cải tiến thời gian khai thác nhớ sử dụng Tuy nhiên, nghiên cứu đề cập CSDL nhị phân, chƣa đƣợc nghiên cứu áp dụng CSDL số lƣợng, đặc thù CSDL số lƣợng cần tính trọng số giao dịch tập mục để xác định độ hỗ trợ tập mục, mà khó khăn tiếp cận dựa FP-tree

Khai thác tập mục phổ biến CSDL số lượng

(15)

3

(frequent weighted utility itemsets - FWUI) [21, 39], hay tập mục hữu ích cao - (hight utility itemsets - HUIs) [14, 24, 25, 29] đƣợc quan tâm nghiên cứu Rakumar đồng [32] đề xuất toán khai thác luật kết hợp trọng số framework để khai thác FWI Sau Tao đồng [34] đề xuất thuật toán khai thác FWI dựa tiếp cận Apriori với hai độ đo trọng số giao dịch (transaction weight - tw) độ hỗ trợ trọng số (weight support - ws), nhiên nhƣ trình bày cách tiếp cận tốn thời gian quét CSDL nhiều lần Tiếp đến, Vo đồng [37] đề xuất cấu trúc WIT-tree khai thác FWI cấu trúc MWIT-tree [39] khai thác FWUI theo tiếp cận Eclat [49] với lần quét CSDL Hạn chế phƣơng pháp cần nhiều nhớ lƣu trữ tidset tập mục danh sách, làm tốn thời gian xác định giao tidset tập mục

Một toán đƣợc đặt phát triển gần khai thác FI khai thác k nhóm tập mục phổ biến có thứ hạng cao (Top-rank-k frequent itemset-TRFIk) [8, 11, 15, 26] Khai thác FI thơng thƣờng khơng kiểm sốt

đƣợc số lƣợng tập mục phổ biến tìm thấy Trong nhiều trƣờng hợp cần quan tâm đến số lƣợng định FI, hay số lƣợng nhóm FI có độ hỗ trợ lớn Khai thác TRFIk giải đƣợc địi hỏi Bài tốn khai

thác TRFIk đƣợc Deng giới thiệu vào năm 2007 [8] với thuật toán FAE,

(16)

4

Khai thác tập mục phổ biến CSDL có phân cấp mục

Bên cạnh CSDL nhị phân CSDL số lƣợng CSDL có phân cấp mục loại CSDL có nhiều ứng dụng thực tế CSDL có phân cấp mục CSDL mối quan hệ khách quan mục dƣới dạng phân cấp, mục có mặt CSDL mục nút phân cấp Năm 1995, Han đồng [20] lần đề cập tới tốn khai thác FI CSDL có phân cấp mục Tiếp theo, Liu đồng [31] đề xuất toán khai thác FI với nhiều ngƣỡng hỗ trợ CSDL có phân cấp mục, theo đó, mục có ngƣỡng hỗ trợ riêng biệt Từ đến có nhiều nghiên cứu liên quan đến toán [4, 5, 6, 28, 30, 35, 36] Tuy nhiên tiếp cận khai thác CSDL có phân cấp mục cịn có nhiều hạn chế, đặc biệt tốn thời gian nhớ để thêm mục cha phân cấp vào CSDL Ngoài nghiên cứu chƣa đề cập CSDL số lƣợng có phân cấp mục

Động lực nghiên cứu luận án

(17)

5

Trên sở đó, Nghiên cứu sinh chọn đề tài “Phát triển số thuật toán hiệu khai thác tập mục sở liệu số lƣợng có phân cấp mục” làm đề tài nghiên cứu cho luận án tiến sĩ

Đối tượng phạm vi nghiên cứu luận án

Đối tƣợng nghiên cứu CSDL số lƣợng CSDL số lƣợng có phân cấp mục Phạm vi nghiên cứu luận án phát triển thuật toán khai thác tập mục phổ biến ứng dụng CSDL số lƣợng CSDL số lƣợng có phân cấp mục

Mục tiêu luận án sau:

i) Đối với thuật tốn có CSDL số lƣợng, luận án nghiên cứu cách thức khai thác hiệu cách cải tiến theo hƣớng tiếp cận bit - vector

ii) Phát triển khái niệm CSDL số lƣợng có phân cấp mục đề xuất phƣơng pháp khai thác mẫu CSDL số lƣợng có phân cấp mục

Luận án đạt số kết sau:

1 Đề xuất số cấu trúc liệu mới, thuật toán để nâng cao hiệu quả khai thác FWI FWUI CSDL số lượng Từ áp dụng cho khai thác tập mục phổ biến CSDL số lượng có phân cấp mục

2 Đề xuất thuật toán hiệu để khai thác k nhóm tập mục phổ biến trọng số hữu ích có thứ hạng cao CSDL số lượng

3 Đề xuất cấu trúc liệu, thuật toán hiệu để khai thác FWUI CSDL số lượng có phân cấp mục

Cấu trúc luận án bao gồm năm phần, phần mở đầu phần kết luận, nội dung luận án đƣợc trình bày ba chƣơng:

Chương 1: “Tổng quan khai thác tập mục” trình bày khái niệm khai thác FI phƣơng pháp khai thác FI, FWI, FWUI TRFIk Phân

(18)

6

Chương 2: “Khai thác tập mục phổ biến sở liệu số lƣợng” trình bày số cấu trúc liệu để biểu diễn tidset tập mục, sở đề xuất phƣơng pháp hiệu để khai thác nhanh FWI, FWUI CSDL số lƣợng Đồng thời, chƣơng đề xuất 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 (TRFWUIk) CSDL số lƣợng thuật toán hiệu để giải toán

này với hai cấu trúc DTab DHeap

(19)

7

CHƢƠNG TỔNG QUAN VỀ KHAI THÁC TẬP MỤC

Chƣơng trình bày nghiên cứu liên quan đến khai thác tập mục phổ biến loại CSDL nhƣ CSDL nhị phân, CSDL số lƣợng, CSDL có sự phân cấp mục khai thác k nhóm tập phổ biến có thứ hạng cao (Top-rank-k) từ nhóm nghiên cứu nƣớc quốc tế Phần trình bày phân tích ƣu điểm hạn chế phƣơng pháp khai thác tập mục phổ biến có Từ sở luận án đề thuật toán dựa cấu trúc liệu phù hợp cho toán chƣơng 3 luận án

1.1 Bài toán khai thác tập mục

Mục đích việc khai thác tập mục để xác định nhóm mục (item) có tần suất xuất thỏa mãn ngƣỡng ngƣời sử dụng đƣa vào Trong đó, tốn khai thác tập mục phổ biến toán toán khai thác tập mục với việc khai thác tập mục có tần suất xuất nhiều CSDL Tần suất xuất thỏa mãn ngƣỡng ngƣời sử dụng đƣa vào (đƣợc gọi ngƣỡng phổ biến) Từ FI khai thác đƣợc sinh tập luật kết hợp nhằm khám phá mối quan hệ tiềm ẩn, hữu ích mục CSDL, phục vụ yêu cầu xuất phát từ đòi hỏi thực tế ngƣời sử dụng Có thể nói, từ đƣợc giới thiệu đến nay, có nhiều cơng trình nghiên cứu liên quan nhằm mục đích giải tốt toán Hiện nay, toán khai thác tập mục đƣợc tiếp tục nghiên cứu để tìm giải pháp hiệu

(20)

8

1.1.1 Một số khái niệm

Định nghĩa 1.1 CSDL nhị phân (binary database) gồm hai thành phần: T, I đó:

T = {t1, t2, , tm} tập gồm m giao dịch CSDL I = {i1, i2, , in} tập gồm n mục CSDL

Với giao dịch thứ k (k = m): ={ } hoặc 1, với j =

Ví dụ 1.1: Cho CSDL DB với tập mục I = {A, B, C, D, E} tập giao dịch T đƣợc biểu diễn Bảng 1.1 nhƣ sau:

Bảng 1.1 Các giao dịch CSDL nhị phân DB Mục

Giao dịch

A B C D E

t1 1 1

t2 1

t3 1 1

t4 1 1

t5 1 1

t6 1

Các mục xuất giao dịch CSDL tƣơng ứng có giá trị 1, ngƣợc lại có giá trị Ví dụ giao dịch t1 = {1, 1, 0, 1, 1} có nghĩa mục A, B, D, E có giao dịch, mục C khơng có giao dịch

(21)

9

của "Laser priter", "Ink-Jet printer", v.v… Những CSDL mối quan hệ mục thông qua phân cấp nhƣ đƣợc gọi CSDL nhị phân có phân cấp mục

Định nghĩa 1.2 CSDL nhị phân có phân cấp mục (hierarchical database) gồm ba thành phần: T, I, Tr, đó:

T = {t1, t2, , tm} tập gồm m giao dịch CSDL I = {i1, i2, , in} tập gồm n mục CSDL

Với giao dịch thứ k (k = m): ={ } hoặc 1, với j = n

Tr phân cấp thể mối quan hệ mục CSDL

Cho CSDL nhị phân có phân cấp mục DB với tập mục I = {Desktop, Dot-matrix printer, Ink-jet printer, Laser printer, Notebook, Scanner}, giao dịch T đƣợc biểu diễn nhƣ Bảng 1.2 phân cấp thể quan hệ mục nhƣ Hình 1.1

Bảng 1.2 Các giao dịch CSDL nhị phân có phân cấp mục 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

(22)

10

Hình 1.1 Cây phân cấp Tr

Để đơn giản, ta gán mục phân cấp Tr ID nhƣ Bảng 1.3: Bảng 1.3 ID mục DB

ID mục Tên mục

A Desktop

B Ink-jet Printer C Laser Printer

D Notebook

E Scanner

F Dot-matrix Printer G Non-impact

H Computer

K Printer

Từ ID đƣợc định nghĩa Bảng 1.3, giao dịch Bảng 1.2 cây phân cấp Tr đƣợc biểu diễn lại nhƣ Bảng 1.4 Hình 1.2

Bảng 1.4 Các giao dịch DB ID

Giao dịch mục

t1 D, C t2 E, F t3 F, B t4 D, F, C

t5 E

t6 A

Ink – jet

Scanner

Laser

Non – impact Dot – matrix Printer

Desktop Notebook

(23)

11

Hình 1.2 Cây phân cấp Tr biểu diễn theo ID

Tập J = {G, K, H} tập mục cha phân cấp không xuất trong giao dịch DB Tuy nhiên chúng có vai trị định, thể mối quan hệ mục DB Do đó, khai thác FI CSDL phân cấp đòi hỏi phải khai thác tập mục phân cấp bao gồm (I J)

CSDL nhị phân CSDL thể có mặt hay khơng mục giao dịch CSDL mà không quan tâm đến giá trị (trọng số, lợi ích, số lƣợng, v.v…) mục giao dịch Trong nhiều ứng dụng thực tế nhƣ CSDL bán hàng siêu thị, CSDL đơn thuốc, v.v… mục đơn hàng thƣờng kèm theo số lƣợng giá trị chúng Các CSDL dạng đƣợc gọi CSDL số lƣợng

Định nghĩa 1.3 CSDL số lượng (quantitative database) ba thành phần: T, I, W, đó:

T = {t1, t2, , tm} tập gồm m giao dịch CSDL I = {i1, i2, , in} tập gồm n mục CSDL

W = {w1, w2, …, wn} tập gồm n trọng số mục tƣơng ứng tập I

Với giao dịch thứ k (k = m): tk = { , , …, }, số tự nhiên chỉ số lƣợng mục thứ j giao dịch, j = n

Ví dụ 1.2: Cho CSDL số lƣợng DB với tập mục I = {A, B, C, D, E}, các giao dịch T đƣợc biểu diễn Bảng 1.5, trọng số mục nhƣ bảng 1.6

B

E

C

G F

K

A D

(24)

12

Bảng 1.5 Giao dịch CSDL số lƣợng BD

Giao dịch A B C D E

1

0

2

3 1

1 2

0 1

Theo Bảng 1.5, 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 giao dịch có mục A, mục B, bốn mục D, mục E, khơng có mục C

Trong nhiều ứng dựng thực tế, CSDL số lƣợng khơng quan tâm đến số lƣợng mục giao dịch, mà quan tâm đến trọng số chúng Ví dụ CSDL vi phạm giao thông, ngƣời ta quan tâm ngƣời vi phạm lỗi mức tiền phạt tƣơng ứng cho lỗi ấy, hay CSDL khám bệnh, ngƣời ta quan tâm đến bệnh nhân có triệu chứng mức độ nặng nhẹ (trọng số) triệu chứng ấy, v.v… Các CSDL đƣợc gọi CSDL có trọng số hay CSDL trọng số - biến thể CSDL số lƣợng với số lƣợng mục xuất CSDL

Bảng 1.6 Trọng số mục DB

Mục Trọng số

A 0,6

B 0,1

C 0,3

D 0,9

(25)

13

Định nghĩa 1.4 CSDL trọng số (weighted database) gồm ba thành phần: T, I, W, đó:

T = {t1, t2, , tm} tập gồm m giao dịch CSDL I = {i1, i2, , in} tập gồm n mục CSDL

W = {w1, w2, …, wn} tập gồm n trọng số mục tƣơng ứng tập I

Ví dụ 1.3: Cho CSDL trọng số DB với tập mục I = {A, B, C, D, E}, giao dịch đƣợc biểu diễn Bảng 1.7, trọng số mục đƣợc thể Bảng 1.8

Bảng 1.8 Trọng số mục 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 Tidset tập mục X tập hợp giao dịch chứa X Nhƣ vậy:

tidset(X) = {t|t T  X  t}

Bảng 1.7 Các giao dịch CSDL trọng số DB

Giao dịch Mục

(26)

14

Định nghĩa 1.6 Độ hỗ trợ tập mục (support) tần suất xuất hiện tập mục CSDL đƣợc xác định theo công thức sau:

support(X) = Trong đó:

- k số giao dịch chứa X

- m số lƣợng giao dịch CSDL

Ví dụ 1.4: Dựa vào CSDL Bảng 1.1, ta có support(AB) = = 66,67% (tập mục AB xuất bốn giao dịch t1, t3, t4, t5)

Để khai thác FI, ngƣời ta đƣa vào ngƣỡng, gọi ngƣỡng phổ biến (minsup), tập mục phổ biến theo ngƣỡng minsup tập mục có độ hỗ trợ (support) lớn hay ngƣỡng minsup Nhƣ tập tập mục phổ biến - FI đƣợc xác định nhƣ sau:

FI = {X|X I support(X) minsup}

Định nghĩa 1.7 FI gồm k phần tử theo ngƣỡng minsup cho trƣớc gọi k-itemset

Định nghĩa 1.8 Rank tập mục X thuộc CSDL DB, kí hiệu RX là số nguyên thứ tự tập mục X theo độ phổ biến từ cao xuống thấp tất tập mục thuộc CSDL DB

RX = |{Y I | support(Y) support(X)}|

Định nghĩa 1.9 Cho giá trị nguyên k CSDL DB, k nhóm tập mục phổ biến có độ phổ biến cao ( Top - rank - k frequent itemsets - TRFIk) CSDL DB tập tập mục có hạng nhỏ k đƣợc

xác định nhƣ sau:

(27)

15

1.1.2 Bài toán khai thác FI

Bài toán khai thác FI CSDL DB cho trƣớc toán tìm tất tập mục CSDL có tần số xuất giao dịch thỏa mãn ngƣỡng minsup ngƣời dùng xác định trƣớc Tập tập mục đƣợc khai thác theo ngƣỡng minsup đƣợc gọi FI DB

Ví dụ 1.5: Xét CSDL 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 CSDL DB

Giao dịch Các mụ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

FI 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 tốn tìm tất tập mục CSDL có suất xuất 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 CSDL ngang

(28)

16

1.2.1.1 Thuật toán Apriori

Thuật toán Apriori [1, 3] Agrawal đồng đề xuất năm 1994 Thuật toán khai thác FI cách quét CSDL nhiều lần Ý tƣởng nhƣ sau: Thuật toán quét CSDL lần thứ để sinh tập1-itemset phổ biến, từ tập 1-itemset phổ biến quét CSDL lần thứ hai để sinh tập 2-itemset phổ biến, v.v… khơng tìm đƣợc tập phổ biến dừng Thuật tốn Apriori dựa tính chất đƣợc đặt tên tính chất Apriori (cịn đƣợc gọi tính chất bao đóng giảm) nhƣ sau:

Cho hai tập mục X Y 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 tốn Apriori [1] đƣợc mơ tả nhƣ Hình 1.3:

Thuật tốn 1.1:Apriori

Input:CSDL DB ngưỡng minsup Output:Các FI DB thỏa minsup

1 Quét CSDL để tính support - itemset, so sánh support với

minsup để lọc FI gồm 1-itemset (L1) thỏa mãn minsup

2 Sử dụng Lk-1 để sinh ứng viên k-itemset Sau qt CSDL để tính

support ứng viên loại bỏ k-itemset FI thu k-itemset phổ biến (Lk)

3 Lặp lại bước không tạo ứng viên FI khai thác = L1 L2

(29)

17

Ngày CSDL thực tế có xu hƣớng tăng nhanh dung lƣợng, việc quét CSDL nhiều lần không khả thi tốn thời gian Đồng thời việc sinh tập ứng viên bƣớc quét CSDL cần lƣợng nhớ lớn để lƣu trữ Do thuật tốn Apriori đƣợc quan tâm nghiên cứu sử dụng thời gian gần

1.2.1.2 Thuật toán FP-Growth với cấu trúc FP-tree

Thuật toán FP-Growth [18] Han đồng đề xuất năm 2000 phần giải hạn chế Apriori thời gian xử lý nhớ sử dụng Tiếp sau Grahne đồng đề xuất FP-Growth* [19] Đây tiếp cận thú vị với việc sử dụng cấu trúc FP-tree (Frequent Partern-tree) để nén toàn CSDL với nút FP-tree mục CSDL ban đầu Đồng thời, thuật toán FP-Growth 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 trƣờng hợp CSDL lớn

Bƣớc đầu tiên, thuật toán FP-Growth quét CSDL xếp lại trật tự mục theo thứ tự tần suất xuất giảm dần giao dịch Bƣớc thứ 2, FP-Growth quét CSDL nén toàn liệu lên FP-tree Bƣớc thứ 3, duyệt FP-tree để khai thác FI:

Thuật toán FP-Growth đƣợc mơ tả nhƣ Hình 1.4

Thuật tốn 1.2:FP-Growth

Input:CSDL DB ngưỡng minsup Output:Các FI DB thỏa minsup

1 Quét toàn CSDL DB tính độ hỗ trợ (support) mục Sau xác định mục có support lớn minsup xếp giảm dần theo support vào f_list

2 Tạo FP-tree có nút gốc gán nhãn “null” ký hiệu root

a Với giao dịch DB thể sau: chọn xếp danh mục phổ biến theo thứ tự giảm dần f_list

b Chèn mục lên FP-tree

3 Duyệt FP-tree để khai thác FI thỏa mãn minsup

(30)

18

Hạn chế thuật toán quét CSDL đến hai lần đặc biệt tốn thời gian duyệt FP-tree để xây dựng FI

1.2.2 Phương pháp khai thác FI CSDL dọc dựa IT-tree

Thuật toán Eclat [49] đƣợc đề xuất Zaki sử dụng cấu trúc IT-tree (Tidset Itemset-tree) để lƣu tidset tập mục nút đƣa khái niệm lớp tƣơng đƣơng để kết nối tập mục lớp tƣơng đƣơng để tạo tập mục Thuật toán Eclat với lần quét CSDL tiếp cận đại, tiết kiệm thời gian xử lý áp dụng khai thác FI nhiều loại CSDL cách hiệu Trong đó, nhiều nghiên cứu mở rộng biến đổi cấu trúc IT-tree cách phù hợp để áp dụng khai thác FI nhiều loại CSDL khác nhƣ khai thác CSDL trọng số [37] CSDL số lƣợng [39] CSDL có phân cấp mục [36] cách hiệu

Tiếp cận Eclat sử dụng tính chất Apriori để cắt nhánh tập mục không thỏa ngƣỡng phổ biến Do tập mục IT-tree FI thỏa mãn ngƣỡng minsup

Nhƣ tập mục X khơng thỏa mãn ngƣỡng minsup tập mục là phủ X không thỏa ngƣỡng minsup, ta không cần xét nhánh do tập mục X tạo Áp dụng tính chất bao đóng giảm IT-tree cắt nhánh đƣợc tất nhánh chắn không chứa FI tập mục IT-tree 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ức gồm nhiều lớp tƣơng đƣơng Mỗi lớp tƣơng đƣơng gồm nút có nút cha mức Mỗi nút gồm hai thành phần:

- Tập mục X - Tidset X

(31)

19

phần tử cuối Một nút đƣợc chèn vào IT-tree độ hỗ trợ (support) thỏa mãn ngƣỡng phổ biến (minsup) nút IT-tree sau xây dựng xong 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 ngưỡng minsup Output:Các FI DB thỏa minsup Method: Eclat

1 Quét toàn CSDL DB để xác định tập giao dịch (tidset) mục Chọn mục có support thỏa ngưỡng minsup (1-itemset)

2 Chèn 1-itemset vào mức IT-tree

3 Mỗi nút mức k - kết hợp với nút có nút cha với tạo nút mức k support nút thỏa ngưỡng minsup

4 Lặp lại bước tạo thêm nút IT-tree Duyệt IT-tree để lấy FI (Tất nút IT-tree FI)

Hình 1.5 Thuật tốn Eclat dựa cấu trúc IT-tree

Ví dụ 1.6: Cho CSDL nhị phân DB ví dụ 1.1 minsup = 0,5: Bước 1: Quét CSDL chuyển sang CSDL theo chiều dọc nhƣ Bảng 1.10

Bảng 1.10 CSDL DB theo chiều dọc

Mục Tidset

A 1, 3, 4, B 1, 2, 3, 4, 5, C 2, 4, 5, D 1, 3, 5, E 1, 2, 3, 4,

(32)

20

Hình 1.6 Cây IT tree với minsup = 0,5 CSDL DB

Đầu tiên, tập 1-itemset đƣợc đƣa vào mức IT-tree Sau đó, cặp nút lớp tƣơng đƣơng đƣợc kết nối với để tạo tập mục mức tập mục thỏa mãn ngƣỡng minsup nhƣ Hình 1.4

Bước 4: Các FI khai thác đƣợc: {A, B, C, D, E, AB, AD, AE, BC, BD, BE, DE, ABD, ABE, ADE, BCE, BDE, ABDE}

Thuật toán Eclat với cấu trúc IT-tree hƣớng tiếp cận tốt đƣợc biết đến với lần quét CSDL Tuy nhiên, phƣơng pháp có nhƣợc điểm lớn tốn nhớ sử dụng để lƣu tidset tập mục, giao dịch chứa tập mục cần ô nhớ Đồng thời nhớ tạm cần thiết q trình tính tốn trung gian lớn Các hạn chế làm cho thời gian tính toán thuật toán Eclat chƣa đƣợc tối ƣu Do đó, nghiên cứu đề xuất phƣơng pháp nhằm tối ƣu nhớ để nâng cao hiệu khai thác FI loại CSDL theo hƣớng tiếp cận có tính thực tế cao Đây mục tiêu nghiên cứu luận án

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

{}

(33)

21

1.3 Một số phƣơng pháp khai thác FWI FWUI CSDL số lƣợng 1.3.1 Giới thiệu

CSDL số lƣợng theo Định nghĩa 1.3 CSDL đƣợc xuất nhiều thực tế, ví dụ CSDL giao dịch bán hàng siêu thị, CSDL đơn thuốc, v.v… Trong giao dịch có số lƣợng mặt hàng lợi nhuận (lợi ích) mặt hàng Do đó, tốn khai thác FWI FWUI từ CSDL số lƣợng đƣợc nhiều ngƣời quan tâm nghiên cứu

Một dạng rút gọn CSDL số lƣợng CSDL trọng số (Định nghĩa 1.4) với giao dịch nhị phân, tức mục xuất giao dịch 1, mục khơng xuất 0, mục có trọng số xác định CSDL trọng số CSDL đƣợc sử dụng nhiều ứ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ục giao dịch, mà quan tâm đến mục có xuất hay khơng trọng số Ví dụ CSDL tai nạn giao thơng, với vụ tai nạn giao thông ngƣời ta cần biết có lỗi A, lỗi B mức phạt lỗi ấy, hay CSDL bệnh nhân, ngƣời bệnh có số triệu chứng triệu chứng nặng hay nhẹ, mức độ nào, v.v… Do đó, bên cạnh khai thác FWUI CSDL số lƣợng khai thác FWI CSDL trọng số đƣợc quan tâm khai thác từ nhiều nhóm nghiên cứu khai thác liệu giới [7, 22, 23, 32, 34, 37, 42, 43, 44, 45, 46, 47, 48] 1.3.2 Khai thác FWI

1.3.2.1 Giới thiệu

(34)

22

Hƣớng tiếp cận thứ khởi đầu Yun đồng [45] sử dụng hàm trung bình để tính trọng số tập mục, từ tính ws tập mục tích trọng số độ hỗ trợ tập mục Do tính trọng số tập mục hàm trung bình nên tập mục nhận giá trị trọng số lớn thêm vào mục mới, điều khơng đảm bảo tính chất bao đóng giảm Để giải vấn đề, Yun & Leggett [46] đề xuất thuật toán WSPAN sử dụng mơ hình maximum-weighted-upper-bound, mục đƣợc gán giá trị khác phạm vi weight - range đƣợc định nghĩa trƣớc Sau đó, Lan đồng [21] (tƣơng tự [47, 48]) đề xuất tiếp mô hình sequence -maximum-weight để rút gọn lại upper-bound ws nhằm giảm bớt số lƣợng ứng viên trình khai thác Cách tiếp cận theo hƣớng xem xét song song trọng số độ hỗ trợ tập mục trình khai thác Thêm nữa, theo cách tính ws cách tiếp cận này, tập mục xuất giao dịch ti tƣơng đƣơng với xuất giao dịch tj, điều không phản ánh đƣợc tầm quan trọng khác giao dịch CSDL thực tế

(35)

23

pháp tỏ hiệu phƣơng pháp theo hƣớng tiếp cận Apriori trƣớc Hạn chế phƣơng pháp chỗ tốn nhớ để lƣu trữ tidset, 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 [34] đồng đƣa cơng thức tính đại lƣợng trọng số giao dịch (transaction weight - tw) độ hỗ trợ trọng số (weight support - ws), tw giao dịch trung bình cộng trọng số mục giao dịch đó, cịn ws tập mục thƣơng tổng tw giao dịch chƣa tập mục với tổng tw CSDL Cách tính đƣợc thể qua hai định nghĩa 1.11 1.12 nhƣ sau:

Định nghĩa 1.10 Trọng số giao dịch giao dịch tw đƣợc xác định nhƣ công thức 1.1:

tw(tk) =

∑ ( )

(1.1)

Với:

– tw( ) trọng số giao dịch – trọng số mục – số mục có mặt

Từ CSDL trọng số DB ví dụ 1.3, ta có giá trị tw giao dịch đƣợc tính nhƣ Bảng 1.11:

Bảng 1.11 Giá trị tw CSDL DB ví dụ 1.4

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

(36)

24

Định nghĩa 1.11 Độ hỗ trợ trọng số (ws) tập mục X đƣợc tính nhƣ cơng thức 1.2:

(1.2)

Với, t(X) tập giao dịch chứa tập mục X sum_tw = ∑ Với tập mục BD DB ví dụ 1.3 đƣợc xác định nhƣ sau:

ws(BD) = 0,78

Tập mục X đƣợc gọi phổ biến ws(X) minws, với minws đƣợc xác định ngƣời sử dụng Bài toán khai thác FWI CSDL trọng số tốn tìm tất 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 đồng [32] đƣa toán khai thác FWI CSDL trọng số Sau đó, Tao đồng [34] đề xuất mơ hình giải tốn dựa hai đại lƣợng trọng số giao dịch (tw) độ hỗ trợ trọng số (ws) với công thức tính nhƣ định nghĩa 1.15 định nghĩa 1.16

Vo đồng [37] đề xuất cấu trúc WIT-tree mở rộng IT-tree [49] Mỗi nút WIT-tree gồm ba thành phần ws, itemset, tidsetSự kết nối hai nút lớp tƣơng đƣơng mức k tạo nút mức k+1, ws tập mục tạo thành thỏa ngƣỡng minws, tập mục nút hợp từ hai tập mục hai nút phía tidset giao hai tidset hai nút Sau xây dựng xong WIT-tree, các tập mục tất FWI thỏa ngƣỡng khai thác minws Tuy nhiên tiếp cận chƣa đƣợc tối ƣu thời gian lẫn nhớ

1.3.3 Khai thác FWUI

(37)

25

Khan đồng [21] đƣa định nghĩa hai đại lƣợng trọng số hữu ích giao dịch - transaction weight utility (twu) độ 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.12 Trọng số hữu ích giao dịch twu đƣợc định nghĩa nhƣ công thức 1.3:

Với:

- twu( ) trọng số hữu ích ;

- số lƣợng mục thứ i , i [1,…, n]; - trọng số mục i;

- s( tổng mục giao dịch

Bảng 1.12 giá trị twu giao dịch CSDL DB đƣợc cho ví dụ 1.2

Bảng 1.12 twu giao dịch DB ví dụ 1.2

Tid Twu

t1

7 1,13

t2

5 0,4

t3

8 1,1

t4

6 0,6

t5

9 0,58

t6

3 0,43

Sum_twu 1,13 + 0,4 + 1,1 + 0,6 + 0,58 + 0,43 = 4,24

twu( ) = ∑

(38)

26

Định nghĩa 1.13 Độ hỗ trợ trọng số hữu ích tập mục wus đƣợc định nghĩa nhƣ công thức 1.4:

wus(X) = ∑

(1.4)

Với, T(X) tập giao dịch chứa tập mục X sum_twu =

Một tập mục X đƣợc gọi phổ biến với ngƣỡng minwus (do ngƣời sử dụng đƣa vào) wus(X) minwus Bài toán xác định tập mục phổ biến CSDL số lƣợng toán xác định tất tập X cho X I wus(X) minwus

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 đƣợc chứng minh [40]

Khan đồng [21] đề xuất toán khai thác FWUI việc đề xuất hai độ đo khai thác FWUI trọng số hữu ích giao dịch - twu và độ hỗ trợ trọng số hữu ích - wus, đồng thời đề xuất “framework” việc giải toán khai thác FWUI dựa hai độ đo

Vo đồng đề xuất cấu trúc liệu có tên MWIT-tree [39] mở rộng khác IT-tree để khai thác FWUI với lần quét liệu dựa tính chất bao đóng giảm wus Cấu trúc gồm nhiều nút nút gồm ba thành phần {X, t(X), wus(X)} X tập mục, t(X) tidset(X) wus(X) độ hỗ trợ trọng số hữu ích X Tuy nhiên tiếp cận có hạn chế nhớ sử dụng lƣu trữ tidset tập mục lớn, điều ảnh hƣởng đến thời gian khai thác FWUI

1.3.4 Khai thác TRFIk

(39)

27

quá ít, nghĩa ngƣời sử dụng khơng kiểm sốt đƣợc số lƣợng FI tìm thấy, v.v… Trong trƣờng hợp nhƣ khai thác TRFIk giải đƣợc

yêu cầu

Fang đồng [17] đề 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 liệu theo chiều dọc gồm hai bƣớc Đầu tiên VTK quét CSDL để chuyển liệu sang chiều dọc tính support 1-itemset đƣa chúng vào TRFI-Table theo thứ tự giảm dần của support Mỗi thành phần TRFI-Table gồm hai thành phần, count (support tập mục) hai danh sách tập mục có support Bƣớc thứ 2, l-itemset TRFI-Table đƣợc kết nối với để tạo các (l+1)-itemset, tập mục đƣợc tạo thành đƣợc chèn vào TRFI-Table support lớn giá trị số k TRFI-TRFI-Table (phần tử cuối TRFI-Table) Thuật tốn kết thúc khơng cịn tập mục đƣợc cập nhật vào TRFI-Table VTK thuật toán hiệu song có một số điểm yếu nhƣ:

- Bộ nhớ sử dụng lớn lƣu trữ tidset tập mục

- Tốn nhiều thời gian thực kết nối l-itemset để tạo (l+1)-itemset từ TRFI-Table, phải xét cặp với m số lƣợng tập mục TRFI-Table

Deng đồng [8,10] đề xuất thuật toán NTK dựa cấu trúc N-list để tiết kiệm nhớ, giảm thời gian tính tốn khai thác TRFIk

NTK tạo PPC-tree giống với FP-tree Dựa PPC-tree sinh N-list 1-itemset, từ khai thác TRFIk NTK cải thiện đƣợc

nhớ lƣu trữ tidset tập mục, song tốn thời gian nhiều quét CSDL hai lần để tạo PPC-tree

(40)

28

của tập mục Tuy nhiên nhƣ NTK thuật toán iNTK phải quét CSDL hai lần để tạo PPC-tree tốn thời gian duyệt để tạo N-list 1-itemset

Hai thuật toán NTK iNTK cải tiến đƣợc nhớ nhƣng gặp phải hạn chế thứ hai VTK nêu

1.4 Khai thác FI CSDL có phân cấp mục

CSDL có phân cấp mục theo Định nghĩa 1.2 CSDL có nhiều ứng dụng thực tế, mục CSDL có mối quan hệ định với thông qua phân cấp, mục nút mục có mặt giao dịch CSDL, mục nút cha phân cấp mục mức khái quát mục nút Do đó, tốn nhận đƣợc quan tâm từ nhiều nhóm nghiên cứu [4, 5, 6, 14, 15, 20, 28, 30, 35, 36]

Một số định nghĩa liên quan đến khai thác FI CSDL có phân cấp các mục đƣợc trình bày [30]:

Một giao dịch CSDL có phân cấp mục t = tid, X, X = (Y Z) tập mục có giao dịch (Y) mục cha Y phân cấp (Z)

Định nghĩa 1.14 Tập X FI support(X) minsup, đồng thời trong X không tồn cặp mục có quan hệ cha con, nhƣ X phổ biến khi:

{ 

( )

(41)

29

Khai thác với ngưỡng phổ biến

Khai thác FI CSDL phân cấp sử dụng ngƣỡng phổ biến việc coi mục cha cấp phân cấp mục (là mục CSDL) có vai trò nhƣ nhau, đƣợc khai thác với ngƣỡng phổ biến Một số nghiên cứu theo tiếp cận nhƣ [4, 5, 15, 20] Tuy nhiên, nhiều CSDL thực tế mục xuất nhƣng lại quan trọng cần đƣợc quan tâm mục khác Đồng thời mục cha phân cấp có tần suất xuất nhiều sau đƣợc thêm vào CSDL để khai thác Do đó, khai thác nhiều khả xuất mục tập mục phổ biến tìm thấy Do cần đặt nhiều ngƣỡng phổ biến để lọc đƣợc tập mục phổ biến đáp ứng đƣợc nhu cầu ngƣời sử dụng Từ hình thành tiếp cập khác tự nhiên ngƣời ta sử dụng nhiều ngƣỡng phổ biến để khai thác

Khai thác với nhiều ngưỡng phổ biến

Khai thác tập mục phổ biến CSDL phân cấp mà mục đƣợc xác định ngƣỡng hỗ trợ khác nhau, điều giúp cho việc khai thác luật kết hợp thú vị từ mục xuất CSDL nhƣng lại có tầm quan trọng cao mục khác Một số nghiên cứu theo hƣớng [30, 35] cho việc khai thác tập mục phổ biến với nhiều ngƣỡng hỗ trợ cần thiết cần đƣợc đầu tƣ nghiên cứu nhiều loại CSDL khác

Định nghĩa 1.15 ms(x) độ hỗ trợ nhỏ mục x (I J), tập mục X = {x1, x2, …, xk} với xi (I J) i đƣợc gọi phổ biến nếu:

support(X) ms(xi)

(42)

30

hỗ trợ tối thiểu mục, từ đƣa cơng thức tính ngƣỡng hỗ trợ cho 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 có đặc điểm ngƣời sử dụng tự đƣa ngƣỡng tối thiểu cho mục theo quan điểm cá nhân để khai thác đƣợc luật thú vị, nhiên điều làm khó khăn cho ngƣời sử dụng số lƣợng 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 quét CSDL nhiều lần

Kế thừa công thức từ [30], Vo đồng [36] sử dụng hƣớng tiếp cận theo thuật toán Eclat [49] với việc đề xuất cấu trúc liệu GIT-tree mở rộng IT-tree Tuy nhiên, hạn chế nghiên cứu việc thêm mục cha phân cấp vào giao dịch CSDL, thao tác làm tăng nhớ lƣu trữ CSDL dẫn đến tăng thời gian khai thác phải phai thác CSDL lớn

Với CSDL phân cấp DB Ví dụ 1.2, sau thêm mục cha vào giao dịch có chứa nút con, CSDL gồm giao dịch nhƣ Bảng 1.13:

Bảng 1.13 DB Ví dụ 1.2 sau 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

(43)

31

1.5 Tiếp cận bit-vector khai thác FI

Các thuật toán khai thác FI dựa IT-tree CSDL nhị phân hay mở rộng IT-tree để khai thác loại CSDL khác nhƣ: cấu trúc GIT-tree khai thác FI CSDL nhị phân có phân cấp mục, cấu trúc WIT-tree dùng khai thác FWI CSDL trọng số, hay MWIT-WIT-tree dùng khai thác FWUI CSDL số lƣợng, v.v… cho thấy hiệu cao mặt thời gian cần duyệt liệu lần Tuy nhiên nhƣ phân tích trên, nhớ sử dụng lƣu tidset tập mục lớn

Đã có số nghiên cứu nhằm tối ƣu hóa nhớ để nâng cao hiệu phƣơng pháp dựa IT-tree Một số thuật toán dEclat [50] Zaki đồng đề xuất với cấu trúc diffset thay tidset Tuy nhiên diffset có hiệu CSDL dày (là CSDL có nhiều mục giao dịch) Trong thực tế CSDL thƣa lại phổ biến

Một hƣớng hiệu sử dụng phƣơng pháp bit-vector tiết kiệm đƣợc nhớ lƣu trữ tidset (mỗi giao dịch cần bit), đồng thời tận dụng đƣợc tốc độ cao phép toán bit (bitwise)

Đầu tiên, Luoie & Liu [31] đề xuất sử dụng bit-vector biểu diễn tidset tập mục sau Dong & Han [13] (Song đồng [33]) cụ thể hóa đề xuất cấu trúc BitTable, với việc sử dụng bit-vector mảng byte để ghi nhận giao dịch tập mục BitTable cần sử dụng ( +1) byte cho tập mục để lƣu tidset (T số lƣợng giao dịch CSDL), đồng thời sử dụng phép toán AND bit để tính giao hai tidset nhằm xác định tidset tập mục từ hai tập mục có

(44)

32

lãng phí nhớ, đồng thời dẫn đến tốn thời gian xác định giao hai BitTable

Tiếp đến, Vo đồng đề xuất cấu trúc DBV (Dynamic bit-vector) [38] cải tiến BitTable với việc loại bỏ byte có giá trị đầu cuối biểu diễn tidset mảng byte

Tuy nhiên DBV cịn chứa nhiều byte có giá trị “ở giữa”, điều làm cho cấu trúc DBV chƣa thật tối ƣu nhớ, tốn thời gian tính tốn byte có giá trị Đặc biệt CSDL thƣa, số lƣợng byte có giá trị lớn

Ngoài ra, cấu trúc BitTable DBV sử dụng mảng byte Do đó, số lƣợng phần tử DBV lớn, CSDL có số lƣợng giao dịch nhiều Nghiên cứu sử dụng phần tử số nguyên lớn nhƣ bốn byte hay tám byte tăng tốc tính tốn DBV lên nhiều hệ máy tính hỗ trợ 64 bit phổ biến Tuy nhiên, khó khăn sử dụng số nguyên lớn việc xác định tidset csủa tập mục để tính giá trị twu, wus khai thác FWUI CSDL số lƣợng tw, ws khai thác FWI CSDL trọng số

1.6 Kết luận chƣơng

Có thể nói, khai thác FI khâu quan trọng khai thác liệu, phục vụ cho việc khai thác luật kết hợp yêu cầu khác nhằm mối quan hệ, quy luật mục CSDL Vì vậy, tốn thu hút đƣợc nhiều nhóm nghiên cứu 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 hai lần quét CSDL duyệt FP-tree Tiếp đến Zaki với tiếp cận theo liệu dọc đề xuất khai thác FI với lần quét CSDL

(45)

33

thác liệu giới Trong đó, khai thác FWI với hai độ đo tw ws CSDL trọng số trƣờng hợp riêng CSDL số lƣợng đƣợc quan tâm từ sớm với việc áp dụng thuật toán Apriori, FP-Growth hay Eclat Cùng với khai thác FWUI với độ đo twu giao dịch wus tập mục đƣợc biết đến lần với nghiên cứu Khan đồng Phƣơng pháp khai thác FWI FWUI từ CSDL số lƣợng tốt đến phƣơng pháp tiếp cận quét CSDL lần sử dụng cấu trúc MWIT-tree [40] Tuy nhiên, nhƣ phân tích trên, cấu trúc liệu sử dụng thuật tốn cịn nhiều hạn chế Do đó, cần phát triển cấu trúc để cải thiện nhớ thời gian khai thác thuật toán

CSDL có phân cấp mục CSDL có mặt nhiều ứng dụng thực tế Do đó, thời gian gần khai thác FI loại CSDL nhận đƣợc nhiều quan tâm nghiên cứu Từ việc khai thác ngƣỡng hỗ trợ, tiếp đến khai thác nhiều ngƣỡng hỗ trợ, mục có ngƣỡng hỗ trợ riêng qua xây dựng công thức xác định độ hỗ trợ tối thiểu cho tập mục Tuy nhiên, nghiên cứu cịn có nhiều hạn chế, thời gian nhớ sử dụng lớn, nhiều tồn cần đƣợc nghiên cứu khắc phục để khai thác hiệu loại CSDL Một số việc thêm mục nút cha phân cấp vào giao dịch có chứa mục CSDL hạn chế lớn, gây bùng nổ dung lƣợng CSDL, CSDL có nhiều phân cấp hay phân cấp có độ cao lớn Đây điểm hạn chế cần đƣợc cải tiến để giảm thời gian khai thác dung lƣợng nhớ sử dụng

(46)

34

(47)

35

CHƢƠNG KHAI THÁC TẬP MỤC PHỔ BIẾN TRÊN CƠ SỞ DỮ LIỆU SỐ LƢỢNG

Tiếp cận bit-vector biểu diễn tidset tập mục hƣớng phát triển hiệu quả, tận dụng đƣợc tốc độ tính toán phép toán bit, đồng thời tiết kiệm đƣợc nhớ lƣu trữ tidset giao dịch cần đánh dấu bit Do đó, nhiều nghiên cứu liên quan đến biểu diễn chuỗi phần tử có tính liên tục ngƣời ta thƣờng sử dụng phƣơng pháp bit-vector Đối với khai thác tập mục phổ biến ngƣời ta sửa dụng phƣơng pháp bit-vector từ sớm, nhiên việc sử dụng phƣơng pháp nguyên thủy [13, 31] chƣa đƣợc cải tiến triệt để nhƣ DBV [38] để loại bỏ nhớ thừa nhằm tối ƣu nhớ nhƣ tăng tốc độ tính tốn tốt

Trong chƣơng này, luận án trình bày số cải tiến theo hƣớng tiếp cận với việc đề xuất hai cấu trúc liệu IWS MBiS sử dụng thuật toán khai thác tập phổ biến Cấu trúc IWS cải tiến cấu trúc DBV [38] việc loại bỏ tất các đoạn hai byte (word) liên tiếp có giá trị bit-vector giúp giảm nhớ lƣu trữ tidset tập mục Đồng thời luận án đề xuất mảng MAP khai báo trƣớc vị trí bit số nguyên hai byte để giúp tính nhanh độ phổ biến ws tập mục Cấu trúc MBiS [I] đề xuất khác theo hƣớng tiếp cận bit-vector, MBiS lƣu đoạn bit liên tiếp bit-vector Cấu trúc cho phép việc xác định nhanh hợp tập mục thông qua xác định giao MBiS chúng, cần cập nhật lại vị trí đầu đoạn cuối đoạn phép toán lấy MAX MIN hai đầu đoạn cuối đoạn trƣớc

(48)

36

Đồng thời, chƣơng trình bày đề xuất hiệu cho toán khai thác hiệu FWUIk CSDL số lƣợng với hai cấu trúc DTab

DHeap Các kết thực nghiệm cho thấy cấu trúc đề xuất có hiệu cấu trúc có

2.1 Thuật tốn khai thác tập FWI

Phần luận án trình bày cấu trúc Interval word segment - IWS cải tiến BDV, đƣợc công bố hội thảo quốc tế SMC 2015 [II], sau đƣợc phát triển mở rộng, thử nghiệm nhiều liệu công bố [V]

2.1.1 Giới thiệu

Định nghĩa 2.1 Interval word segment (IWS) tập mục X thuộc CSDL DB cấu trúc gồm nhiều đoạn, đoạn word (hai byte) liên tiếp khác bit-vector biểu diễn tidset tập mục X

Mỗi đoạn gồm hai thành phần:

Start: Vị trí word đoạn bit-vector Word list: Danh sách giá trị word liên tiếp khác

Ví dụ 2.1: Cho tập mục X CSDL DB biểu diễn bit-vector đƣợc cho dƣới dạng byte nhƣ bảng 2.1

Bảng 2.1 Bit-vector

Chỉ số byte 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 0 0 0 0 0

Bit-vector Bảng 2.1 (còn đƣợc gọi BitTable) gồm 21 byte có giá trị 0, bit-vector đƣợc biểu diễn qua cấu trúc DBV [43] Bảng 2.2 nhƣ sau:

Bảng 2.2 DBV bit-vector ví dụ 2.1

Chỉ số byte 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Giá trị 0 0 0 0 0

(49)

37

DBV loại bỏ byte có giá trị đầu cuối bit-vector, nhiều trƣờng hợp DBV tiết kiệm nhớ tốt, nhờ tăng tốc độ tính tốn khai thác FI Tuy nhiên cấu trúc DBV tồn byte 0, CSDL thƣa số byte nhiều Do cấu trúc DBV chƣa tối ƣu đƣợc nhớ

Cấu trúc IWS đƣợc đề xuất [II, V] mở rộng MByS, với phần tử word (hai byte) IWS loại bỏ hồn tồn word có giá trị khỏi DBV, cách giải đƣợc hạn chế lãng phí nhớ DBV

Bảng 2.3 IWS từ bit-vector ví dụ 2.1

Chỉ số word 12 13 14

Giá trị byte 6 Giá trị word 1545 1281 1030 1284 1536

IWS {3(1545), 5(1, 1281, 1030), 12(1, 1284, 1536)}

IWS đƣợc biểu diễn nhƣ Bảng 2.3 có ba đoạn, đoạn thứ từ word có số 3, giá trị 1545 Đoạn thứ hai word số với ba phần tử 1, 1281 1030, v.v… Nhƣ vậy, cấu trúc IWS loại bỏ hoàn toàn word 0, lƣu giữ đoạn word liên tiếp có giá trị khác

Mệnh đề 2.1 Đoạn Sx =  ( ) đƣợc gọi đoạn của đoạn Sy =  ( ) thỏa mãn ba điều kiện sau:

1

3

(50)

38

Ví dụ 2.2: Sx = 6(1281, 1030) với sx = đoạn Sy = 5(1, 1281, 1030) với sy =5 Bởi vì, với t = ta có:

1

2 ⟹

3 = = 1281, = = 1030

Mệnh đề 2.2   IWS(X)

  đoạn đ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) 6(1281, 1030) đoạn đoạn 5(1, 1281, 1030) thuộc IWS(X) theo ví dụ 2.2

Định nghĩa 2.2 Giao hai đoạn Sx =   Sy =

  đoạn Sz, kí hiệu Sz = Sx Sy,

Với:

sz = max(sx, sy) m = min(k+sx, l+sy)

Sz =  ( ), với: = & ; = & ; …; =

Trong “&” phép AND bit

Ví dụ 2.4: Cho hai đoạn =5(1, 1281, 1030), k = = 6(3220, 8726, 3104), l = Ta có:

= max(5, 6) = 6;

m = min((5+2), (6+2)) = 7; ⟹ = 6  với:

(51)

39

Định nghĩa 2.3 Giao IWS(X) IWS(Y) đƣợc định nghĩa IWS(X Y) = IWS(X) IWS(Y) IWS(X Y) chứa đoạn, đoạn giao của đoạn IWS(X) 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

Mệnh đề 2.1 Cho đoạn Si = si( , … ) IWS(X), l số bit (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)

Với, k số bit bit-vector bit có số l asj

Chứng minh: sj là số word-vector Nhƣ có (sj - 1) word trƣớc Điều có nghĩa có [(sj - 1) 16] bit trƣớc bit-vector (mỗi word có 16 bit) Do đó, bit có vị trí l word thứ sj đƣợc ánh xạ lên bit-vector với vị trí k theo công thức:

k = (sj - 1) 16 + l

Ví dụ 2.6: Cho IWS(X) = {3(1545)}, số bit X đƣợc xác định nhƣ Bảng 2.4:

Bảng 2.4 Chỉ số bit IWS(X)

Chỉ số bit word 10 11 12 13 14 15 16 Giá trị bit 0 0 1 0 0 0

Giá trị word 1545

Chỉ số bit word {6,7,13,16}

(52)

40

32 + = 38; 32 + = 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 CSDL DB, số bit IWS(X) giao dịch 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) Với, Sum_tw = ∑ với m số lƣợng giao dịch CSDL DB

2.1.2 Thuật tốn tính giao hai IWS

Khai thác FWI với định dạng liệu dọc theo tiếp cận Eclat [5] đòi hỏi phải tính giao tidset để xác định tập mục đƣợc tạo thành từ hai tập mục cũ Điều đồng nghĩa với việc tính giao hai IWS hai tập mục tƣơng ứng theo Định nghĩa 2.3

Thuật tốn xác định giao hai IWS đƣợc trình bày nhƣ Hình 2.1

Thuật tốn 2.1:INTERSECTION_IWS

Input:

- IWS(X) gồmn1 đoạn, đoạn thứ I có start IWS(X) [i].start

- IWS(Y) gồmm1đoạn, đoạn thứjcóstart IWS(Y) [j].start Output:Z = IWS(X) IWS(Y)

(53)

41

2 10 11 12 13 14 15 16

INTERSECTION_IWS (IWS(X), IWS(Y))

i = 1; j = 1; Z = ;

while (i n1 and j m1)

Đoạn i1 IWS(X đoạn j1 IWS(Y đoạn giao

IWS(X) IWS(Y) tính từ đoạn i (IWS(X đ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]

S = S IWS(X) [k] IWS(Y) [k]}; Loại bỏ Word = S 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 tốn xác định giao hai IWS

Đầu vào thuật toán IWS(X) IWS(Y) Trong đó, IWS(X) có n1 đoạn IWS(Y) có m1 đoạn Đầu Z IWS Dòng 4, xác định đoạn giao tiếp theo IWS(X) IWS(Y) Dịng 6, tính đầu cuối đoạn giao kết quả Dòng đến 9, tính S đoạn giao kết Dịng 10, loại word có giá trị khỏi S (có thể tạo nhiều đoạn mới) Dịng 10 đến dòng 15, xác định đoạn giao IWS(X) IWS(Y)

(54)

42

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 liệu dọc Mỗi nút IWS-tree gồm ba thành phần:

- X tập mục, - IWS(X) IWS X, - ws(X) giá trị ws X

Các nút IWS-tree mức thứ 1-itemset, từ mức thứ hai, nút mức dƣới đƣợc tạo thành từ kết hợp hai nút mức với các điều kiện sau:

- Hai nút số lƣợng phần tử khác phần tử cuối - wus tập mục tạo thành thỏa mãn ngƣỡng minwus ngƣời sử

dụng đƣa vào

b Thuật tốn tính nhanh wus dựa IWS

Khai thác FWI CSDL trọng số phải xác định ws tập mục theo cơng thức 2.2 Do cần xác định vị trí bit IWS tập mục, điều đồng nghĩa với việc xác định tidset tập mục Để giải hiệu vấn đề này, luận án đề xuất sử dụng mảng MAP gồm 65.535 phần tử nhƣ Bảng 2.5 Phần tử thứ i mảng MAP chứa danh sách bit biểu diễn nhị phân i Dựa mảng MAP ta có thể tính đƣợc vị trí bit IWS bit-vector

Bảng 2.5 Mảng MAP

Chỉ số mảng … 65.534 65.535

Giá trị nhị phân 0000000000000001 0000000000000010 … 1111111111111110 1111111111111111

MAP 16 15 … 1, 2, …, 14, 15 1, 2, …, 15, 16

(55)

43

Thuật toán 2.2:CALCULATION_WS

Input: IWS(X)

- Output: ws tập mục X

- Method name: CALCULATION_WS()

1

CALCULATION_WS(IWS(X))

tidset(X) = ; for all i IWS(X)

for all j MAP [i]

tidset(X) (si - 1) 16 j; y = 0;

for all i tidset(X)

y = y + tw( );

ws = y/sum_tw; return ws

Hình 2.2 Thuật tốn tính ws tập mục X

Đầu vào thuật toán IWS tập mục X, đầu ws(X) Dòng đến dòng 4, xây dựng tidset X dựa công thức 2.1 mảng MAP Dòng đến dòng 8, tính ws(X) theo cơng thức 2.2 Cuối cùng, dịng trả giá trị ws X

Với mảng MAP việc tính tốn ws đơn giản tiết kiệm thời gian tính tốn Vì cần O(1) để xác định vị trí bit bit-vector

Do đó, độ phức tạp thuật toán O(k) với k số giao dịch tập mục X

c Thuật toán

(56)

44

Trƣớc hết, mức thứ bao gồm nút chứa 1-itemset có độ đo ws thỏa ngƣỡng minws Tất nút mức thứ thuộc lớp tƣơng đƣơng Mỗi nút kết nối với lần lƣợt nút phía sau lớp tƣơng đƣơng tạo nút lớp tƣơng đƣơng mức dƣới Hai nút chứa hai tập mục X1X2…XkY1 X1X2…XkY2 thuộc lớp tƣơng đƣơng kết nối với (các tập mục thuộc nút lớp tƣơng đƣơng có độ dài khác phần tử cuối cùng):

- Tạo nút X1X2…XkY1Y2

- ws(X1X2…XkY1Y2) minws

Nhƣ k-itemset đƣợc tạo thành từ (k-1)-itemset lớp tƣơng đƣơng mức với điều kiện tập mục tạo thành thỏa mãn ngƣỡng minws ngƣời sử dụng đƣa vào Do đó, tập mục nút IWS-tree FWI cần khai thác

Thuật tố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) minws;

Output:Tập P chứa tất FWI CSDL DB với ngưỡng minws Method name: CREATE_IWS_Tree()

1

CREATE_IWS_Tree(P) IWS-tree = 

for all li P]

[Pi] = ;

for all lj [P], (vớij i) X = li lj;

Y = INTERSECTION_IWS(IWS(li), IWS(lj));

ws_X= CALCULATION_WS(Y);//ws tập mục X

(57)

45

10 11

[Pi] = [Pi] {(X, Y, ws_X};

IWS-tree = IWS-tree Pi; CREATE_IWS_Tree( [Pi])

Hình 2.3 Thuật tốn xây dựng IWS-tree

Đầu vào thuật toán lớp tƣơng đƣơng P (chứa tập mục có độ dài khác phần tử cuối thỏa mãn minws) Dòng đến dòng 4, với tập mục li kết nối với tất tập mục lj đứng phía sau li thuộc lớp tƣơng đƣơng P tạo X tập mục Dịng tính Y = IWS(X) theo thuật tốn INTERSECTION_IWS Hình 2.1 Dịng 7, tính ws(Y) 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 Pi tại dòng Sau xây dựng xong lớp tƣơng đƣơng Pi, Pi đƣợc thêm vào IWS-tree dòng 10 Cuối gọi đệ quy với lớp tƣơng đƣơng Pi sau kết nối li với tất lj sau dịng 11

Thuật tốn IWS_FWI khai thác FWIs CSDL trọng số đƣợc trình bày Hình 2.4

Thuật toán 2.4:IWS_FWIs

Input:CSDL DB minws;

Output:IWS-tree chứa FWI DB theo ngưỡng minws Method name: IWS_FWIs()

1

IWS_FWIs(minws)

P = ; for all i I

if (CALCULATION_WS(i) minws) then

P = P {i};

CREATE_IWS_TREE(P);

Hình 2.4 Thuật tốn khai thác FWI dựa IWS-tree

(58)

46

Sau ví dụ khai thác FWI CSDL trọng số theo thuật tốn IWS_FWI

Ví dụ 2.7: Khai thác FWI CSDL DB ví dụ 1.3 với minws = 0,4 IWS ws mục đƣợc xác định nhƣ Bảng 2.6

Bảng 2.6 IWS mục

mục Tidset BitTable IWS ws

A 1, 3, 4, 000111012 {1(29)} 0,72

B 1, 2, 3, 4, 5, 001111112 {1(63)} 1,00

C 2, 4, 5, 001110102 {1(58)} 0,60

D 1, 3, 5, 001101012 {1(53)} 0,78

E 1, 2, 3, 4, 000111112 {1(31} 0,81

Trong ví dụ này, IWS có đoạn với phần tử Các giá trị ws mục thỏa mãn minws Do vậy, P = {A, B, C, D, E} 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)

[] 𝐴 }

𝐴𝐴𝐵 } 𝐴𝐷 } 𝐴𝐸 }

𝐴𝐵𝐷 } 𝐴𝐵𝐸 } 𝐴𝐷𝐸 }

𝐴𝐵𝐷𝐸 } 𝐴𝐵𝐶 }

(59)

47

Kết nối hai nút A B Ta có, IWS(A) IWS(B) = {1(29)} {1(63)}, IWS(AB) = {1(29)} Dựa thuật tố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 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, tập mục {AD, AE, ABC, ABD, ABE, ABDE} đƣợc thêm vào IWS-tree nhƣ Hình 2.5

Với nút B:

Hình 2.6 IWS-tree với nút A B (minws = 0,4)

Kết nối hai nút B 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 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ự, tập mục {BE, BDE} đƣợc thêm vào IWS-tree nhƣ Hình 2.6

Sau xét tƣơng tự với nút C, D E lại, IWS-tree đầy đủ đƣợc thể nhƣ Hình 2.7

[]

𝐴 } 𝐵 }

𝐴𝐴𝐵 } 𝐴𝐷 } 𝐴𝐸 } 𝐵𝐶 } 𝐵𝐷 } 𝐵𝐸 }

𝐴𝐵𝐷 } 𝐴𝐵𝐸 } 𝐴𝐷𝐸 } 𝐴𝐵𝐷𝐸 }

(60)

48

Nhƣ vậy, với minws = 0,4 ta có tập 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 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 C# 2014 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/ SALE-FACT-1997, SALE-FACT-1997+1998, SALE-SYNC đƣợc lấy từ CSDL FOODMART2000 Microsoft SQL server, SALE-FACT-1997+1998 đƣợc tổng hợp từ SALE-FACT-1997 SALE-FACT-1998, SYNC đƣợc kết hợp từ 1997, SALE-FACT-1998 SALE-FACT-DEC_SALE-FACT-1998

𝐴 } 𝐵 } 𝐶 } 𝐷 }

𝐸 }

𝐴𝐴𝐵 } 𝐴𝐷 } 𝐴𝐸 } 𝐵𝐶 } 𝐵𝐷 } 𝐵𝐸 } 𝐷𝐾 } 𝐷𝐸 592 }

𝐴𝐵𝐷 } 𝐴𝐵𝐸 } 𝐴𝐷𝐸 }

𝐴𝐵𝐷𝐸 }

𝐶𝐸 }

(61)

49

Các CSDL thử nghiệm đƣợc mô tả cụ thể Bảng 2.7 nhƣ sau:

Các CSDL 1, 2, 6, nguyên gốc đƣợc thêm vào bảng với giá trị ngẫu nhiên khoảng từ đến 10 làm giá trị trọng số mục

2.1.4.1 Kết thực nghiệm

Phần trình bày biểu đồ thời gian thực thi nhớ sử dụng ba phƣơng pháp DBV, DIFFSET IWS 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

139,571 64,141 27,69 000 050 100 150

001 001 000 000 000 000

ti m e (s) minws(%) DBV DIFFSET IWS 232,209 61,511 125,091 100 200 300

0.6 0.5 0.4 0.3 0.2 0.1

ti m 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

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ố

(62)

50

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 100 200 300 400

0.3 0.2 0.1 0.06 0.03 0.01

ti m e (s) minws(%) DBV IWS DIFFSET 2501,68 250,34 563,70 500 1000 1500 2000 2500 3000

0.3 0.2 0.1 0.06 0.03 0.01

ti m e (s) minws(%) DBV IWS DIFFSET 2748,776 640,854 322,957 1000 2000 3000

0.3 0.2 0.1 0.06 0.03 0.01

ti m e (s) minws(%) DBV IWS DIFFSET 41,935 48,812 6,094 20 40 60

0.96 0.95 0.94 0.93 0.92 0.9

(63)

51

Hình 2.14 So sánh thời gian chạy với CSDL ACCIDENTS b So sánh nhớ sử dụng

Hình 2.15 So sánh nhớ sử dụng với CSDL RETAIL.

Hình 2.16 So sánh nhớ sử dụng với CSDL BMS-POS

Hình 2.17 So sánh nhớ sử dụng với CSDLSALE-FACT-1997

212,667 112,667 30,742 50 100 150 200 250

0.9 0.8 0.7 0.6 0.5

ti m e (s) minws DBV IWS DIFFSET 160,687 24,002 48,479 50 100 150 200

0.6 0.5 0.4 0.3 0.2 0.1

mem o ry(M b ) minws(%) DBV IWS DIFFSET 213.67 103.038 431.725 200 400 600

0.6 0.5 0.4 0.3 0.2 0.1

m e m or y(M b ) minws(%) DBV IWS DIFFSET 622,14 509,81 542,7 200 400 600 800

0.03 0.02 0.1 0.06 0.03 0.01

(64)

52

Hình 2.18 So sánh nhớ sử dụng với CSDLSALE-FACT-1997+1998

Hình 2.19 So sánh nhớ sử dụng với CSDLSALE-FACT-SYNC

Hình 2.20 So sánh nhớ sử dụng với CSDLCONNECT

Hình 2.21 So sánh nhớ sử dụng với CSDL ACCIDENT

1477,976 1284,567 1344,846 500 1000 1500 2000

0.3 0.2 0.1 0.06 0.03 0.01

m e m or y(M b ) minws(%) DBV IWS DIFFSET 1543,975 1400,239 1482,239 500 1000 1500 2000

0.6 0.5 0.4 0.3 0.2 0.1

m e m or y(M b ) minws(%) DBV IWS DIFFSET 41,935 48,81 6,094 20 40 60

0.96 0.95 0.94 0.93 0.92 0.9

m e m or y(M b ) minws DBV IWS DIFFSET 78,172 112,667 30,742 50 100 150

0.9 0.8 0.7 0.6 0.5

(65)

53

Các kết thử nghiệm cho thấy hiệu IWS CSDL thƣa (RETAIL, MBS-POS) CSDL trung bình (các CSDL SALE_FACT), cịn CSDL dày (CONNECT, ACCIDENT) DIFFSET có hiệu rõ rệt, với CSDL dày tidset tập mục lớn, nên diffset nhỏ (do diffset lấy phần bù) Ví dụ, với CSDL RETAIL IWS 27,69s cịn Diffset 67,141s độ phổ biến minws = 0,1% Cịn với liệu ACCIDENT MBiS 112,667s Diffset 30,742s độ phổ biến minws = 0,5

Đối với CSDL thƣa trung bình, số lƣợng mục xuất giao dịch ít, biểu diễn phƣơng pháp bit-vector có loại bỏ đoạn byte có giá trị tiết kiệm đƣợc nhiều nhớ Đồng thời với việc cần nhớ biểu diễn tidset IWS việc tính tốn IWS nhanh hơn, việc tính giao IWS phụ thuộc vào số đoạn word Nên thời gian khai thác sử dụng IWS nhỏ so với DBV hay DIFFSET CSDL thƣa Tƣơng tự nhƣ IWS có hiệu tốt CSDL có mức độ trung bình

(66)

54

2.2 Thuật toán khai thác FWUI

Phần trình bày cấu trúc liệu Multi bit segment áp dụng vào toán khai thác FWUI Đây tiếp cận khác theo hƣớng loại bỏ hoàn toàn bit bit-vector, lƣu giữ lại đầu đoạn cuối đoạn đoạn bit liên tục Nội dung đƣợc cơng bố cơng trình [I]

2.2.1 Cấu trúc Multi bit segment

Định nghĩa 2.5 Multi bit segment (MBiS) cấu trúc lƣu lại đoạn bit liên tiếp từ bit-vector biểu diễn tidset tập mục Mỗi đoạn MBiS gồm thành phần:

Start: Chỉ số bit đầu đoạn End: Chỉ số bit cuối đoạn Một ví dụ MBiS nhƣ sau:

Bảng 2.8 Bit-vector với 96 phần tử

Chỉ số bit … 15 16 17 … 35 36 37 … 58 59 60 … 80 81 82 … 96 Giá trị bit 0 0 1 … 0 … 1 … 0 …

Bảng 2.8 trình bày bit-vector gồm 96 phần tử (tƣơng ứng với 12 byte) MBiS bit-vector gồm hai đoạn tƣơng ứng nhƣ sau:

MBiS: [16,35], [59,80]

Cho MBiS(X) MBiS(Y) MBiS củatập mục X tập mục Y thuộc CSDL DB Ta có định nghĩa sau:

Định nghĩa 2.6 MBiS tập mục X bao gồm nhiều đoạn, đoạn các bit liên tiếp bit-vector biểu diễn tidset tập mục X:

MBiS(X) = { [ ], [ ], , [ ]},

Với ei si,i {1, 2, ,k} i {2, 3, ,k}

(67)

55

Bảng 2.9 MBiS từ bit-vector Bảng 2.8 [16, 35] [59, 80]

Đoạn Đoạn

Định nghĩa 2.7 Phần tử i đƣợc gọi thuộc MBiS(X)(i MBiS(X)) tồn đoạn [ , ] đoạn củaMBiS(X) cho i

Ví dụ 2.9: Với MBiS(X) = {[16, 35], [59, 80]}, ta nói 30 thuộc MBiS(X) 16 30 35, mà [16, 35] đoạn thuộc MBiS(X)

Định nghĩa 2.8 Giao MBiS(X) MBiS(Y) đƣợc định nghĩa MBiS(X) MBiS(Y) Nếu i MBiS(X) MBiS(X), thìi MBiS(X) i MBiS(Y) 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 CSDL DB, số bit MBiS(X) giao dịch CSDL DB, cơng thức 1.4 đƣợc viết lại nhƣ sau:

wus(X) ∑ (2.3) Với: Sum_twu = ∑ với m số lƣợng giao dịch 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 Đoạn i có Starts = Si End = Ei MBiS(Y) có m1 đoạn Đoạn j có Starts = Sj End = Ej Output: Z = MBiS(X) MBiS(Y)

Method name: INTERSECTION_MBiS()

INTERSECTION_MBiS(MBiS(X), MBiS(Y))

(68)

56

3 10 11 12 13

while (i and j )

i1 IWS(X) j1 IWS(Y đoạn giao IWS(X) IWS(Y), tính từ đoạn i IWS(X đoạn j 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 kết củaMBiS(X) MBiS(Y)

Hình 2.22 Thuật tốn xác định giao hai MBiS

Độ phức tạp thuật tốn INTERSECTION_MBiS hình 2.22 O(n + m), với n m số lƣợng đoạn tƣơng ứng MBiS(X) MByS(Y) Để xác định giao hai MBiS, ta cần xác định max đoạn giao nhƣ dòng 6, start end đoạn giao cần tìm Do tiết kiệm đƣợc thời gian xử lý

2.2.3 Thuật toán khai thác FWUI dựa MBiS-tree 2.2.3.1 Cấu trúc MBiS-tree

Cấu trúc liệu MBiS-tree đƣợc đề xuất [I] dùng để khai thác FWUI Mỗi nút MBiS-tree gồm ba thành phần X, MBiS(X) wus(X), trong đó:

- X tập mục,

- MBiS(X) MBiS X, - wus(X) giá trị wus X

(69)

57

2.2.3.2 Thuật tốn tính wus tập mục

Để khai thác FWUI, cần phải xác định wus tập mục theo công thức 2.3 Do cần phải xác định tidset tập mục dựa MBiS tập mục Thuật tốn đƣợc trình bày Hình 2.23

Thuật toán2.6:CALCULATION_WUS

Input: MBiS(X)

Output: wus X

Method name: CALCULATION_WUS()

2

CALCULATION_WUS(MBiS(X)) for all i MBiS(X)

for all j đoạn i MBiS(X) s = s + twu( ;

return (s/Sum_twu);

Hình 2.23 Thuật tốn tính wus dựa MBiS

Việc tính wus tập mục dựa MBiS đơn giản, cấu trúc MBiS lƣu đầu cuối đoạn bit liên tiếp bit-vector Do cần độ phức tạp O(1) để xác định ID giao dịch Nên độ phức tạp thuật toán CALCULATION_WUS() O(k) với k số lƣợng giao dịch chứa X Nói cách khác k tổng số bit bit-vector tập mục X

2.2.3.3 Thuật toán MBiS-FWUI

Lớp (mức 0) MBiS-tree đƣợc kí hiệu [] Lớp thứ chứa 1-itemset thỏa mãn minwus Mức thứ k chứa k-itemset thỏa mãn minwus

(70)

58

thêm vào MBiS-tree giá trị wus tập mục minwus Do vậy, MBiS-tree chứa tất FWUI khai thác theo ngƣỡng minwus

Q trình xây dựng MBiS-tree theo mơ tả đƣợc trình bày thuật tốn MBiS-FWUI

Thuật tốn 2.7:MBiS_FWUI

Input:CSDL BD vàminwus;

Output:MBiS-tree chứa tất FWUI thỏa mãn minwus DB Method name: MBiS_FWUI()

1 10 11 12 13 14

MBiS_FWUI()

[] = j I|wus_ j minwus; MBiS-tree = ; P = ;

FWUI_MINE(P);

FWUI_mine( [P])

for all li P]

[Pi] = ;

for all lj [P], (with j i) 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 tốn khai thác FWUI dựa MBiS-tree

(71)

59

theo thuật tốn 2.5 Dịng 11 tính wus theo thuật tốn 2.6 Dịng 12, tập mục X đƣợc kết nạp vào lớp Pi thỏa mãn minwus Dòng 13, lớp tƣơng đƣơng Pi đƣợc kết nạp vào MBiS-tree Cuối cùng, dòng 14 gọi đệ qui với lớp Pi

2.2.4 Kết thực nghiệm

CSDL thực nghiệm môi trƣờng thực nghiệm nhƣ mục 2.1.4 Số lƣợng cho mục xuất giao dịch đƣợc thêm cách sinh ngẫu nhiên khoảng từ đến 10 CSDL: RETAIL, BMS-POS, CONNECT, ACCIDENTS

Sau hình kết thực nghiệm với cấu trúc MBiS đƣợc sử dụng thuật toán MBiS_FWUI so sánh với thuật toán cài đặt cấu trúc DBV DIFFSET

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 CSDL RETAIL

Hình 2.26 So sánh thời gian chạy CSDL BMS-POS

139,571

29,648 64,141

0 50 100 150

0.6 0.5 0.4 0.3 0.2 0.1

ti

m

e

(s)

minwus(%)

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

ti

m

e

(s)

minwus(%)

(72)

60

Hình 2.27 So sánh thời gian chạy CSDL SALE-FACT-1997

Hình 2.28 So sánh thời gian chạy CSDL SALE-FACT-1997+1998

Hình 2.29 So sánh thời gian chạy CSDL SALE-FACT-SYNC

Hình 2.30 So sánh thời gian chạy CSDL CONNECT

309,301 98,594 72,427 100 200 300 400

0.3 0.2 0.1 0.06 0.03 0.01

ti me(s) minwus(%) DBV MBiS DIFFSET 2501,68 345,81 563,70 500 1000 1500 2000 2500 3000

0.3 0.2 0.1 0.06 0.03 0.01

ti me(s) minwus(%) DBV MBiS DIFFSET 2748,776

640,854 526,32

0 1000 2000 3000

0.3 0.2 0.1 0.06 0.03 0.01

ti m e (s) minwus(%) DBV MBiS DIFFSET 41,935 55,202 6,094 20 40 60

0.96 0.95 0.94 0.93 0.92 0.9

(73)

61

Hình 2.31 So sánh thời gian chạy CSDL ACCIDENTS 2.2.4.1 So sánh nhớ:

Hình 2.32 So sánh nhớ sử dụng CSDL RETAIL.

Hình 2.33 So sánh nhớ sử dụng CSDL BMS-POS

Hình 2.34 So sánh nhớ sử dụng CSDL SALE-FACT-1997

212,667 139,278 30,742 50 100 150 200 250

0.9 0.8 0.7 0.6 0.5

ti m e (s) minwus(%) DBV MBiS DIFFSET 160,687 35,131 48,479 50 100 150 200

0.6 0.5 0.4 0.3 0.2 0.1

m e m or y(M b ) minwus(%) DBV MBiS DIFFSET 213,67 144,981 431,725 100 200 300 400 500

0.6 0.5 0.4 0.3 0.2 0.1

m e m or y(M b ) minwus(%) DBV MBiS DIFFSET 622,14 720 542,7 200 400 600 800

0.03 0.02 0.1 0.06 0.03 0.01

(74)

62

Hình 2.35 So sánh nhớ sử dụng CSDL SALE-FACT-1997+1998

Hình 2.36 So sánh nhớ sử dụng CSDL SALE-FACT-SYNC

Hình 2.37 So sánh nhớ sử dụng CSDL CONNECT

Hình 2.38 So sánh nhớ sử dụng CSDL ACCIDENT

1477,976 1549,32

1344,846 500 1000 1500 2000

0.3 0.2 0.1 0.06 0.03 0.01

m e m or y(M b ) minwus(%) DBV MBiS DIFFSET 1543,975 1699,922 1482,239 500 1000 1500 2000

0.6 0.5 0.4 0.3 0.2 0.1

me mor y( M b ) minwus(%) DBV MBIS DIFFSET 41,935 46,579 6,094 10 20 30 40 50

0.96 0.95 0.94 0.93 0.92 0.9

m e m or y(M b ) minwus(%) DBV MBiS DIFFSET 78,172 132,436 30,742 50 100 150

0.9 0.8 0.7 0.6 0.5

(75)

63

Hình 2.25 đến 2.29 Hình 2.32 đến 2.36 cho thấy cấu trúc MBiS hiệu DBV DIFFSET CSDL thƣa Ví dụ, CSDL RETAIL với minws = 0,1% Thời gian khai thác MBiS, DIFFSET DBV lần lƣợt 29,648s, 64,141s 139,571s Bộ nhớ sử dụng IWS, MBiS, DIFFSET DBV lần lƣợt 35,131MB, 48,479MB 160,687MB

Hình 2.30, 2.31, 2.37 2.38 cho thấy MBiS không tốt DBV DIFFSET CSDL dày Do MBiS bị phân mảnh thành nhiều đoạn bit 1, việc xác định giao MBiS cặp tập mục tốn nhiều thời gian số lƣợng đoạn bit lớn

Đối với CSDL thƣa, số lƣợng mục giao dịch ít, nên số đoạn MBiS khơng nhiều, cấu trúc MBiS lại có lợi xác định nhanh giao hai MBiS dó đó, MBiS có hiệu liệu thƣa so với cấu trúc có, kể tiếp cận Diffset Đối với CSDL CSDL dày ngƣợc lại, mục xuất nhiều giao dịch, dó tidset chúng biểu diễn MBiS có nhiều đoạn, điều làm cho nhớ tăng lên cần thêm nhớ để lƣu đầu cuối đoạn, ngồi với đoạn bốn phần tử làm cho nhớ cần nhiều cách biểu diễn thơng thƣờng Do MBiS không hiệu phƣơng pháp khác CSDL dày, kết thực nghiệm hai CSDL CONNECT ACCIDENT thể nhận định

2.3 Thuật tốn khai thác TRFWUIk

Phần trình bày kiến thức sở toán khai thác TRFWUIk

CSDL số lƣợng đề xuất hai cấu trúc DTab DHeap với hai thuật toán tƣơng ứng DTab-TRFWUI DHEAP_TRFWUI khai thác FWUIk

Nội dung cấu trúc DTab đƣợc cơng bố cơng trình [IV] 2.3.1 Một số khái niệm

(76)

64

Rx = |{wus(Y)|wus(Y) wus(X), Y I}|

Mệnh đề 2.1: Cho hai tập mục X Y (X, Y I) Nếu wus(X) = wus(Y) Rx = Ry

Định nghĩa 2.11 TRFWUIk CSDL số lƣợng BD tập tất

tập mục X mà X I Rx k:

TRFWUIk = { X I| Rx k}

Ví dụ 2.11: Xét CSDL DB ví dụ 1.2, ta có TRFWUI3, TRFWUI4, TRFWUI5 nhƣ 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}

4 {1,0: B},{0,898: E, BE},{0,803: A, AB, ABE}, {0,764: D, BD}

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 = ta có sáu FWUI k = có mƣời bốn FWUI thỏa mãn Trong E BE có nhóm độ đo wus Tƣơng tự, A, AB ABE có nhóm có wus = 0,803

Mệnh đề 2.2: Tập mục X (X I) CSDL số lƣợng DB, X TRFWUIk tập mục Y (Y I X Y) TRFWUIk

Nhƣ vậy, toán khai thác TRFWUIk từ CSDL số lƣợng tốn tìm

tất tập mục X cho {X|X I, Rx k}

2.3.2 Cấu trúc DTab

(77)

65

1,0

0,898

0,803

0,764

0,662 NULL

Hình 2.39 DTab với k =

DTab Hình 2.40 có năm phần tử, phần tử thứ 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 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 việc loại phần tử cuối khỏi DTab chi phí O(1)

2.3.3 Cấu trúc TR-tree

TR-tree gồm nhiều mức, mức gồm nhiều lớp tƣơng đƣơng, lớp tƣơng đƣơng gồm nhiều nút, nút lớp tƣơng đƣơng có nút cha mức trên, có số phần tử khác phần tử cuối

Để tối ƣu nhớ lƣu trữ tidset tập mục tăng tốc độ tính tốn khai thác TRFWUIk, phần tidset tập mục đƣợc biểu

diễn cấu trúc IWS [II, V] đƣợc trình bày mục 2.1 Mỗi nút gồm ba thành phần:

- Tập mục X

- IWS X

- wus X

Kết hợp hai nút lớp tƣơng đƣơng tạo nút TR-tree mức wus tập mục tạo thành min-DTab Đồng thời chèn wus(X) vào DTab cập nhật lại min-DTab

2.3.4 Thuật toán khai thác TRFWUIk sử dụng cấu trúc liệu DTab

(78)

66

đƣa giá trị wus mục vào DTab theo thứ tự giảm dần min-DTab giá trị nhỏ wus min-DTab (min-DTab[k])

Bước 2: Kết nối cặp l-itemset (Xl và Yl) lớp tƣơng đƣơng để tạo (l+1)-itemset {X, wus_X, IWS(X)} lớp wus_Xl wus_Yl cùng min-DTab:

Nếu DTab chƣa đủ k phần tử bổ sung wus-X vào DTab Ngƣợc lại, wus_X min-DTab thì:

- Nếu DTab tồn giá trị = wus_X thêm nút {X, wus_X, IWS(X)} vào TR-tree

- Ngƣợc lại, loại phần tử thứ k DTab (DHaep) chèn wus_X vào DTab cho đảm bảo tính giảm dần DTab, đồng thời thêm nút {X, wus_X, IWS(X)} vào TR-tree

Bước 3: Lặp lại bƣớc khơng có thêm tập mục đƣợc tạo

Kết thúc thuật toán, tập mục TR-tree có wus min-DTab TRFWUIk khai thác đƣợc

Thuật tốn đƣợc mơ tả nhƣ Hình 2.40:

Thuật toán 2.9:GEN_DTAB-TR-TREE

Input:CSDL DB k; Output:DTab, TR-tree

Method name: GEN_DTAB-TR-TREE()

2

GEN_DTAB-TR-TREE(DB, k)

d = 0;

[] =  j I, j 1-itemset; for all j []

if (d k) then

(79)

67

9 10 11 12 13 14 15 16 17 18 19 20 21 22

DTAB-TR-TREE( [P]); for all li [P]

[Pi] = ;

if (wus_li min-DTab) then

for all lj [P], với (j i)

if (wus _lj min-DTab) then X = lI lj;

IWS_X = INTERSECTION_IWS(IWS(li), IWS(lj)); Tính wus_X dựa 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 tốn tạo TR-tree sử dụng DTab

Dịng 3, tìm 1-itemset xếp giảm dần theo wus Dòng đến dòng 6, kết nạp 1-itemset vào DTab Dịng 15 sử dụng hai thuật tốn INTERSECTION_IWS(IWS(li), IWS(lj)) đƣợc trình bày [V] dùng để tính giao hai IWS Dòng 17 18, wus min-DTab chèn nút vào TR-tree Dịng 19 đến dòng 21, wus > min-DTab chèn wus vào DTab cập nhật lại giá trị min-DTab Dòng 22 gọi đệ quy với lớp tƣơng đƣơng Pi

(80)

68

Kết thúc thuật toán GEN_TR-Tree tạo TR-tree chứa tập mục đƣợc xét trình khai thác TRFWUIk, nhiều tập mục thuộcTR-tree

nhƣng không TRFWUIk wus đƣợc cập nhật DTab loại

tập mục khỏi TRFWUIk Thuật toán DTab-TRFWUI Hình 2.41 có

chức lọc tập mục TR-tree TRFWUIk

Thuật toán 2.10:DTAB_TRFWUI

Input:CSDL DB ngưỡng k Output: Z TRFWUIk

Method name: DTAB_TRFWUI()

1

DTAB_TRFWUI(TR-tree,min-DTab)

GEN_DTAB-TR-TREE(DB, k) Z = ;

for all X TR-tree

if (X.wus min-DTab)then Z {X.itemset, X.wus};

Hình 2.41 Thuật tốn lọc 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 nút thuộc TR-tree lọc tập mục có wus khơng nhỏ min-DTab-chính TRFWUIk từ dịng đến

dịng

2.3.5 Thuật tốn khai thác nhanh TRFWUIk dựa 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 giá trị wus thỏa mãn ngƣỡng min-DTab tập mục trình khai thác TRFWUIk nhƣ trình bày

(81)

69

thứ tự ƣu tiên xử lý trƣớc (đống max) Thao tác cập nhật giá trị vào DHeap chi phí O(log(k)) Nên thay DTab DHeap giúp giảm thời gian đáng kể khai thác TRFWUIk Một ví dụ với DHeap đƣợc trình

bày hình 2.42

Hình 2.42 DHeap với k = với CSDL ví dụ 1.4 2.3.5.2 Thuật toán khai thác nhanh TRFWUIk dựa DHeap

Thuật toán DHEAP_TRFWUI khai thác nhanh TRFWUIk CSDL số

lƣợng dựa 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 cấu trúc DHeap trình cập nhật giá trị wus Hình 2.44 thuật tốn tạo TR-tree kết hợp DHeap trình cắt nhánh tập mục chắn không thỏa mãn:

Thuật toán 2.9:GEN_DHEAP-TR-TREE

Input:CSDL DB k; Output:DHeap, TR-tree

Method name: GEN_DHEAP-TR-TREE()

GEN_DHEAP-TR-TREE(DB, k)

d = 0;

[] =  j I|j 1-itemset; for all j []

if (d k) then

INSRERT_DHEAP(wus_j); // wus mục j DHEAP-TR-TREE( [P]);

P = [];

(82)

70

10 11 12 13 14 15 16 17 18 19 20

[Pi] = ;

if (wus_li min-Dheap) then

for all lj [P], (vớij i)

if (wus_lj min-DTab) then X = li lj;

IWS_X = INTERSECTION_IWS(IWS(li), IWS(lj));

Tính wus_X dựa 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.43 Thuật toán tạo TR-tree sử dụng DHeap Thuật toán lọc TRFWUIk từ TR-tree nhƣ Hình 2.45

Thuật tốn 2.10:DHEAP_TRFWUI

Input:CSDL DB ngưỡng k Output: Z TRFWUIk

Method name: DHEAP_TRFWUI()

DHEAP_TRFWUI(TR-tree, min-DHeap)

GEN_DHEAP-TR-TREE(DB, k) Z = ;

for all X TR-tree

if (X.wus min-DHeap)then

Z {X.itemset, X.wus};

Hình 2.44 Thuật toán lọc TRFWUIk 2.3.6 Kết thực nghiệm

2.3.6.1 CSDL thực nghiệm

(83)

71

2.3.6.2 Kết thực nghiệm

Hình 2.45 So sánh thời gian chạy CSDL MBS-POS

Hình 2.46 So sánh thời gian chạy CSD L RETAIL

Hình 2.47 So sánh thời gian chạy CSDL CONNECT

75,28 141,21 527,81 100 200 300 400 500 600

100 200 300 400 500

Ti m e (s) k Dheap-TRFWUI DTab-TRFWUI VTK 107,4 211,66 728,12 100 200 300 400 500 600 700 800

100 200 300 400 500

Ti m e (s) k Dheap-TRFWUI DTab-TRFWUI VTK 68,2 164,22 578,62 100 200 300 400 500 600 700

100 200 300 400 500

(84)

72

Hình 2.48 So sánh thời gian CSDL SALE-FACT-1997

Hình 2.49 So sánh thời gian CSDL SALE-FACT-1997+1998

Hình 2.50 So sánh thời gian CSDL SALE-FACT-SYNC

Các kết thực nghiệm từ Hình 2.46 đến 2.51 cho thấy hiệu phƣơng pháp Dtab-TRFWUI DHEAP_TRFWUI so với VTK CSDL thực nghiệm Phƣơng pháp hiệu DHEAP_TRFWUI với việc sử dụng cấu trúc DHeap Ví dụ CSDL RETAIL với k = 500, VTK có thời gian xử lý 527,81s, DTab-TRFWUI 141,21s, DHEAP_TRFWUI 107,4s Thời gian chạy VTK nhiều 3,74 lần so với DTab-FWUI nhiều DHEAP_TRFWUI 4,91 lần

104,2 279,02 732,06 200 400 600 800

100 200 300 400 500

Ti m e (s) k DHeap-TRFWUI DTab-TRFWUI VTK 109,12 281,17 739,15 200 400 600 800

100 200 300 400 500

Ti m e (s) k DHeap-TRFWUI DTab-TRFWUI VTK 97,61 269,2 685,1 200 400 600 800

100 200 300 400 500

(85)

73

Kết thực nghiệm cho thấy việc sử dụng DHeap, DTab hiệu quả, không tốn thời gian lọc tập mục lớp để kết nối chúng lại trên TR-tree có sẵn lớp Đồng thời việc cập nhật giá trị min-DTab với chi phí O(1) min-DTab, DHeap cắt nhánh nhanh TR-tree Ngồi ra, thao tác tìm chèn phần tử vào DHeap thời gian O(nlogn)

2.4 Kết luận chƣơng

Chƣơng tập trung trình bày kết nghiên cứu khai thác nhanh tập mục phổ biến CSDL số lƣợng với cấu trúc đề xuất MBiS [I], IWS [II, V] theo tiếp cận cải tiến cấu trúc liệu lƣu tidset theo bit-vector Đồng thời đƣa toán khai thác Top-rank-k tập phổ CSDL số lƣợng đề xuất hai cấu trúc DTab [III], DHeap với hai thuật toán DTab-TRFWUI [III] DHEAP_TRFWUI để giải hiệu toán

Các đề xuất tối ƣu bit-vector với IWS cách loại bỏ hồn tồn word hai byte có giá trị biểu diễn bit-vector tidset tập mục Nghĩa IWS lƣu word khác liên tiếp bit-vector tidset tập Đồng thời đề xuất sử dụng mảng MAP lƣu trữ vị trí bit số có giá trị khoảng hai byte để tính nhanh ws (đối với khai thác FWI) wus (đối với khai thác FWUI) Các đề xuất thật có hiệu CSDL thƣa Kết thực nghiệm mục 2.2.4.3 thể rõ điều

(86)

74

Cuối cùng, chƣơng đề xuất toán khai thác TRFWUIk CSDL số

lƣợng, toán chƣa đƣợc đề cập trƣớc đây, có nhiều cơng bố liên quan đến toán CSDL nhị phân Cấu trúc DTab với khai thác theo tiếp cận lần quét CSDL cho thấy hiệu so với thuật toán VTK Tiếp theo luận án đề xuất cấu trúc DHeap dựa cấu trúc Heap, với cấu trúc DHeap việc tìm vị trí chèn wus tập mục O(nlogn) giúp giảm thời gian khai thác TRFWUIk Các kết thực nghiệm mục

(87)

75

CHƢƠNG 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ó phân cấp mục kết hợp CSDL số lƣợng CSDL có phân cấp mục Do đó, khai thác tập mục phổ biến CSDL số lƣợng có phân cấp mục đƣợc kế thừa từ phƣơng pháp khai thác tập mục phổ biến CSDL số lƣợng CSDL có phân cấp Vì vậy, việc khó khăn phức tạp toán khai thác FWUI CSDL số lƣợng có phân cấp đƣợc kế thừa từ tốn Ngồi ra, đặc trƣng riêng toán việc xác định trọng số mục cha phân cấp nhƣ nào? Và xác định số lƣợng mục cha giao dịch CSDL sao? v.v làm cho toán khai thác tập mục phổ biến CSDL số lƣợng có phân cấp mục thêm phức tạp cần có đề xuất tốt để giảm thiểu khó khăn

CSDL số lƣợng có phân cấp mục CSDL xuất nhiều ứng dụng thực tế, phân cấp đƣợc sử dụng nhƣ để phân loại nhóm mặt hàng, chủng loại hàng hóa Các mục cha phân cấp mức khái quan cho mục Tuy nhiên, nay, toán khai thác tập mục phổ biến loại CSDL chƣa đƣợc quan tâm nghiên cứu Do vậy, phần nội dung chƣơng luận án đề xuất toán khai thác FWUI CSDL số lƣợng có phân cấp mục mục 3.1 đề xuất thuật toán MINE_FWUI dựa cấu trúc HIT-tree để khai thác FWUI mục 3.2, nội dung đƣợc trình bày cơng bố [IV]

Tiếp theo, phần 3.3 luận án trình bày số cải tiến nâng cao hiệu khai thác FWUI CSDL số lƣợng có phân cấp mục nhƣ:

(88)

76

(ii) Đề xuất mệnh đề việc xác định tidset mục nút cha dựa tidset mục nút Với đề xuất tốn thời gian thêm mục nút cha vào CSDL không làm tăng thêm nhớ lƣu trữ

(iii) Xác định nhanh mối quan hệ cha - mục phân cấp Luận án đƣa mệnh đề việc xác định mối quan hệ cha mục tập mục tạo thành cách cần xác định mối quan hệ cặp mục tập mục

Ngồi ra, cấu trúc đề xuất chƣơng nhƣ IWS, MBiS đƣợc áp dụng vào để giải hiệu toán khai thác FWUI CSDL số lƣợng có phân cấp mục chƣơng

3.1 Giới thiệu toán

Định nghĩa 3.1 CSDL số lƣợng có phân cấp mục -hierarchical quantitative databases (HQDB) gồm bốn thành phần: T, I, W, Trtrong đó, T = {t1, t2, …, tm} tập giao dịch, I = {i1, i2, …, in} tập mục, W = {w1, w2, …, wn} tập trọng số (lợi ích) tƣơng ứng mục trong tập mục I Tr tập phân cấp thể mối quan hệ các mục Mỗi giao dịch tk có dạng tk = { , , …, }, số nguyên số lƣợng mục thứ i giao dịch tk, k = m

Ví dụ 3.1: Cho HQBD HD = T, I, W, Tr với tập mục I = {A, B, C, D, E}, giao dịch T trọng số W đƣợc trình bày Bảng 3.1 Bảng 3.2, các phân cấp Tr mục nhƣ Hình 3.1

Bảng 3.1 Giao dịch HD Bảng 3.2 Trọng số

Giao dịch A B C D E F Item Weight

t1 1 A 0,3

t2 B 0,2

t3 2 2 C 0,5

t4 1 D 0,6

t5 2 E 0,9

(89)

77

Và tập phân cấp Tr nhƣ Hình 3.1

Hình 3.1 Tập phân cấp Tr

Trong kí hiệu A, B, C, D, E, F đại diện cho tập mặt hàng theo Bảng 3.3 nhƣ sau:

Theo Bảng 3.1 Bảng 3.2, CSDL HD có sáu giao dịch {t1, t2, t3, t4, t5,

t6} sáu mục {A, B, C, D, E, F}, trọng số mục tƣơng ứng {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 giao

dịch t1 có mục A(Desktop), mục B(Ink-jet Printer), hai mục D(Notebook), mục E(Scanner) khơng có mục C với F

Tập J = {G, K, H} tập mục cha phân cấp không xuất trong giao dịch CSDL HD Tuy nhiên chúng có vai trị định, thể hiện mối quan hệ mục CSDL HD Do đó, khai thác FI CSDL phân cấp đòi hỏi phải khai thác tập mục phân cấp bao gồm (I J)

Bảng 3.3 Tên mặt hàng mục

ID mục mục

A Desktop

B Ink-jet Printer C Laser Printer

D Notebook

E Scanner

F Dot-matrix Printer

G Non-impact

H PC

K Printer

B

E

C

G F

K

A D

(90)

78

HQDB có kế thừa hồn tồn định nghĩa, tính chất CSDL số lƣợng có phân cấp nhƣ trình bày chƣơng Ngồi ra, khai thác FWUI HQDB cần phải tính tốn xác định trọng số mục cha, đồng thời phải xác định số lƣợng mục cha giao dịch dựa mục chúng giao dịch Thơng thƣờng xác định đại lƣợng thông qua hàm MAX, MIN, SUM hay AVERAGE giá trị số lƣợng trọng số mục Tuy nhiên, sử dụng cơng thức MIN AVERAGE số lƣợng trọng số mục cha nhỏ mục nhiều trƣờng hợp Điều khơng thực tế, mục cha mức khái quát mục nên số lƣợng trọng số khơng thể nhỏ mục Do phạm vi luận án, tác giả đề xuất sử dụng hai hàm MAX SUM xác định trọng số số lƣợng mục cha phân cấp giao dịch dựa trọng số số lƣợng mục phân cấp có sẵn giao dịch (là mục nút lá)

Trong CSDL thực tế, trọng số hay số lƣợng mục cha nhƣ tổng trọng số hay số lƣợng trọng số hay số lƣợng mục (lợi nhuận, giá trị, v.v…) sử dụng hàm SUM để xác định trọng số, số lƣợng cho mục cha Còn trƣờng hợp trọng số, số lƣợng mục cha nhƣ đại diện cho trọng số số lƣợng cho mục (mức độ yêu thích, phản hồi,…) sử dụng hàm MAX để xác định trọng số, số lƣợng mục cha Trên sở đó, luận án đề xuất hai định nghĩa sau:

Định nghĩa 3.2 Trọng số mục cha phân cấp hàm Fun_weight trọng số mục nút nhƣ sau:

weight(A) Fun_weight(weight(A1); weight(A2 weight(Ak))

(91)

79

Ví dụ 3.2: Với Fun_weight hàm MAX: weight(K) =

MAX(weight(C), weight(B), weight(F)) = MAX(0,5; 0,2;0,1) = 0,5

Định nghĩa 3.3 Số lƣợng mục cha phân cấp giao dịch đƣợc xác định hàm Fun_quatity số lƣợng mục giao dịch nhƣ sau:

quantity(A) tk = Fun_quantity(quantity(A1); quantity(A2 quantity(Ak))

Trong đó: A, A1, A2, ,Ak tk A1, A2, , Ak A phân cấp Fun_quantity hàm MAX hàm SUM tùy thuộc vào CSDL thực tế

Ví dụ 3.3: Với Fun_quantity hàm SUM, ta có quantity(K) t5 = SUM(quantity(B); quantity(C); quantity(F))(do B, C, F t5) = SUM(2; 2; 1) =

Định nghĩa 3.4 Tập mục X I J) với I tập mục CSDL (tập nút phân cấp) J tập mục cha phân cấp đƣợc gọi phổ biến wus(X) minwus, với minwus ngƣời dùng xác định trƣớc

3.2 Thuật toán khai thác FWUI HQDB

Để khai thác FWUI HQDB bao gồm mục cha phân cấp, cần xác định weight cho mục cha (theo Định nghĩa 3.2), đồng thời cần xác định số lƣợng cho mục cha (theo Định nghĩa 3.3) giao dịch thêm mục cha vào giao dịch [19]

3.2.1 Thuật toán xác định weight cho mục cha

Thuật toán xác định weight cho mục cha phân cấp theo Định nghĩa 3.2 đƣợc trình bày nhƣ sau:

Thuật toán3.1:CALCULATION_WEGHTED

Input: R gốc phân cấp Tr

(92)

80

- Method name: CALCULATION_WEGHTED()

2

CALCULATION_WEGHTED(R) for all r children of R if (weight(r) = 0)then

CALCULATION_WEGHTED(r); else

weight(R) = Fun_weight (weight(R), weight(r)); ChènR.weight vào WeightTable;

Hình 3.2 Thuật tốn tính weight cho mục cha

Thuật tốn CALCULATION_WEGHTED Hình 3.2 thuật toán đệ quy Bắt đầu từ R gốc phân cấp Duyệt hết toàn để xác định weight mục cha Mỗi xác định đƣợc weight mục cha (line 6) đƣợc chèn vào WeightTable (bảng WeightTable) chứa weight tất mục CSDL)

3.2.2 Thuật toán thêm mục cha vào CSDL

Thuật toán thêm mục cha vào CSDL đồng thời xác định weight cho các mục cha 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 phân cấpTr

- Output:CSDL HD (HD + mục nút cha chèn vào giao dịch)

- Method name: ADD_PARENT()

2

ADD_PARENT (R) for all t HD for all i t

if ( r Tr|r cha i) then if (r t) then

r.quantity = Fun_quantity (r.quantity, i.quantity);

else

t r;

r.quantity = i.quantity;

(93)

81

Thuật toán ADD_PARENT() quét lần lƣợt giao dịch CSDL, với mục CSDL tìm mục cha cấp thêm vào CSDL mục cha chƣa đƣợc thêm vào mục phân giao dịch Dòng 1, quét dòng CSDL Dòng 2, qt mục mỗi giao dịch Dịng 3, tìm r mục cha i 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 xác định lại số lƣợng cho r theo Định nghĩa 3.3, chƣa chèn chèn r vào giao dịch t với quantity quantity 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 HQDB theo Định nghĩa 3.4, luận án đề nghị sử dụng cấu trúc HIT-tree HIT-tree mở rộng IT-tree [54] HIT-tree gồm nhiều mức, mức gồm nhiều lớp tƣơng đƣơng, 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 tập mục, tidset(X) tập giao dịch chứa X wus(X) độ hỗ trợ trọng số hữu ích X đƣợc xác định theo công thức 1.4 Mỗi lớp tƣơng đƣơng đƣợc tạo từ kết nối mục cha lớp với lần lƣợt nút phía sau lớp tƣơng đƣơng (để tránh trùng lặp), nút đƣợc tạo thành wus(X) nút thỏa mãn ngƣỡng minwus

3.2.3.2 Thuật tốn khai thác FWUI

Thuật toán 3.3:MINE_FWUIs

Input:HQDB HD, phân cấp Tr ngưỡng minwus Output:HIT-tree chứa FWUI

Method name: MINE_FWUIs()

2

MINE_FWUIs() for all R TR

CALCULATION_WEIGHTED(R);

(94)

82

5 10 11 12 13 14 15 16

F = { i (I J), wus_i minwus}; HIT-tree ;

CREATE_HIT-tree(F)

P = ;

for all i F

for j F (with j>i) //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 tốn khai thác FWUI từ HQDB

Ví dụ 3.4: Thuật tốn MINE_FWUIs Hình 3.4 với CSDL HD trong ví dụ 3.1 minwus = 0,6 nhƣ sau:

Dòng 2, thủ tục ADD_PARENT() cho kết nhƣ Bảng 3.4 Việc thêm mục cha, số lƣợng mục cha vào CSDL đƣợc thực theo Định nghĩa 3.3, việc thêm trọng số mục cha theo Định nghĩa 3.2, ta có kết Bảng 3.4 và 3.5 Đồng thời, twu giao dịch đƣợc tính nhƣ 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 A 0,3

t2 3 B 0,2

t3 2 2 2 C 0,5

t4 1 1 D 0,6

t5 2 2 E 0,9

t6 1 1 1 F 0,1

G 0,5

H 0,6

(95)

83

Bảng 3.6 twu giao dịch

ID twu

t1

2

7 = 0,68

t2

5 = 1,12

t3

8 = 0,84

t4

3

5 = 0,76

t5 2

9 = 0,84

t6

7 = 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:

Bảng 3.7 Tập 1-itemset phổ biến

mục wus F

A 68 84 76 84

4 76 = 0,65 A

B 68 84 76 84 43

4 76 = 1,0 B

C 76 84 43

4 76 = 0,67 C

D 68 84 84 43

4 76 = 0,6 D

E 68 84 76 84

4 76 = 0,91 E

F 84 84 43

4 76 = 0,45

G 68 84 76 84 43

4 76 = 1,0 G

H 68 84 76 84 43

4 76 = 0,76 H

K 68 84 76 84 43

(96)

84

Từ dòng đến dòng 16 thủ tục đệ quy CREATE_HIT-tree() xây dựng cây HIT-tree, sau xây dựng xong HIT-tree với ngƣỡng minwus, tập mục nut HIT-tree FWUI cần khai thác Cây HIT-tree với ngƣỡng minwus = 0,6 CSDL HD nhƣ Hình 3.5

Hình 3.5 Cây HIT-tree với CSDL HD minwus = 0,6

Xét nút A 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 H cha A phân cấp

Tƣơng tự với nút B, C, D, E, G, H, K ta có HIT-tree nhƣ Hình 3.5 có nút FWUI

3.3 Một số cải tiến nâng cao hiệu khai thác FWUI HQDB 3.3.1 Cấu trúc EDBV

(97)

85

phƣơng pháp Giải đƣợc vấn đề nhớ nâng cao hiệu mặt thời gian tiếp cận

Zaki đồng [50] đề xuất sử dụng kĩ thuật diffset thay cho tidset Kĩ thuật diffset giải pháp hiệu nhằm rút gọn nhớ so với tidset, đồng thời giúp tính nhanh độ hỗ trợ tốn khai thác FI Tuy nhiên, đặc điểm diffset lấy phần bù tidset nên diffset khơng có hiệu CSDL thƣa

Vo đồng [38] đề xuất DBV nhằm rút gọn nhớ lƣu trữ tidset BitTable [13] rút ngắn thời gian tính tốn Cách tiếp cận hiệu loại bỏ hoàn toàn byte đầu cuối bit-vector sử dụng phép AND bit để tính giao tidset hai tập mục Đồng thời sử dụng mảng LOOKUP để định nghĩa trƣớc số lƣợng bit byte, điều giúp tính nhanh độ hỗ trợ tập mục thơng qua DBV Từ DBV đƣợc sử dụng với mảng mà phần tử byte Đây hạn chế lớn DBV, tính giao hai DBV tập mục phải sử dụng nhiều phép toán AND bit byte hai DBV

Cấu trúc MBiS đƣợc đề xuất trình bày chƣơng cấu trúc lƣu giữ đoạn bit liên tiếp BitTable MBiS có đặc điểm xác định giao tidset thông qua MBiS nhanh, cần cập nhật lại đầu cuối đoạn Tuy nhiên, cấu trúc MBiS khơng có hiệu nhiều liệu lớn tính phân mảnh tidset lớn dẫn đến MBiS tốn nhớ để lƣu trữ tốn thời gian xác định giao số đoạn MBiS lớn

3.3.1.1 Xác định tidset tập mục dựa EDBV

(98)

86

Do phép AND bit thực LI, LI có 64 bit đại diện cho 64 giao dịch liên tiếp

Tuy nhiên vấn đề đặt làm để tính đƣợc wus tập mục với EDBV EIWS với LI Không đủ nhớ định nghĩa trƣớc mảng 264 phần tử để lƣu vị trí bit số khoảng từ đến 264 nhƣ cách làm MByS hay IWS

Để tính nhanh tidset 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ảng MAP gồm 216 (65536) phần tử nhƣ cấu trúc IWS Trong đó, phần tử thứ i chứa danh sách vị trí các bit 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 … 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 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 số nguyên hai byte (word) từ phải qua trái Mỗi lần AND với 65.535 ta đƣợc word, ánh xạ word vào MAP ta đƣợc danh sách vị trí bit word đó, từ ta xác định đƣợc ID giao dịch tập mục

Ví dụ 3.5: Cho K LI, K = 178.455.221.385.174.000, biểu diễn nhị phân K bao gồm 64 bít nhƣ sau:

0000001001111010000000000001010000001110111110100001101111110000

Cụ thể, số K đƣợc mô tả nhƣ Bảng 3.9

Bảng 3.9 Biểu diễn số nguyên K dƣới dạng bốn đoạn, đoạn 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

(99)

87

Hình 3.6 mơ tả ba lần dịch bit K để tách word, sau ánh xạ vào MAP để có vị trí bit word đƣợc định nghĩa trƣớc

Mệnh đề 3.1 Chỉ số bit có vị trí thứ i đoạn thứ j word thứ k thuộc EDBV bit-vector l đƣợc xác định theo công thức 3.1:

l = (k-1) × 64 + (j-1)×16 + i (3.1) Trong đó:

- j số hiệu đoạn word block

- i số bit đoạn thứ j block thứ k - k số word EDBV

Chứng minh:

Dễ thấy trƣớc block thứ k có (k - 1) × 64 bit (do 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 đó, số bit thứ i đoạn thứ j thuộc block k bit - vector đƣợc xác định theo công thức:

Index_bit-vector(i) =(k - 1) × 64 +(j - 1)×16 + i

634 20 3.834 7.126

AND

65.535 = 7.126  MAP[7.126] = {4, 5, 7, 8, 9, 10, 11, 12}

Bƣớc 634 20 3.834

AND

65.535 = 3.834 MAP[3.834]={5, 6, 7, 9, 10, 11, 12, 13, 15}

Bƣớc 634 20

AND

65.535 = 20  MAP[20] = {12, 14}

Bƣớc 0 634

AND

65.535 = 634  MAP[634] = {7, 10, 11, 12, 13, 15}

(100)

88

Ví dụ 3.6: Với số K ví dụ 3.5, ta có tập vị trí bit K đƣợc xác định nhƣ sau:

Word thứ 4: 7.126 có tập số {4, 5, 7, 8, 9, 10, 11, 12} {52, 53, 55, 56, 57, 58, 59, 60} số đƣợc cộng thêm với (4 - 1) 16 = 48 theo công thức 3.1

Word thứ ba: 3.834 có tập số {5, 6, 7, 9, 10, 11, 12, 13, 15} {37, 38, 39, 41, 42, 43, 44, 45, 47}, 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 số {12, 14} {20, 22} 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 số {7, 10, 11, 12, 13, 15} tập giữ nguyên word số nên (j - 1) = với j =

Do đó, tập hợp index bit K {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 tốn tính nhanh wus tập mục dựa mảng MAP Tính wus theo cơng thức 1.4 thao tác thƣờng xuyên toán khai thác FWUI Do đó, địi hỏi phải xác định đƣợc tidset tập mục tƣơng ứng Dựa mảng MAP Mệnh đề 3.1, luận án đề xuất thuật toán xác định nhanh wus tập mục dựa mảng MAP đƣợc trình bày nhƣ hình 3.7

Thuật toán 3.4:FAST_ CALCULATION_WUS

Input: EDBV(X)

Output: wus tập mục X

Methode name: FAST_CALCULATION_WUS()

2

FAST_CALCULATION_WUS(EDBV(X))

for all i EDBV(X) //xét word EDBV(X)

k = EDBV(X) [i];// lấy word thứ i

t = // dùng để xác định vị trí đoạn k

(101)

89

6 10 11 12 13 14 15

m = k &65535;// lấy đoạn thứ t k pos = i × 64 +(t×16);

for all j MAP [m] do// xét danh sách với số m

tidset(X)pos + j;// ánh xạ vị trí bit-vector k = k >> 16;// k dịch phải 16 bít

t- - ;// chuyển sang đoạn k

y = 0;

for all i tidset(X)

y + = twu [i];

wus = y/sum_twu; return wus

Hình 3.7 Thuật tốn tính nhanh wus tập mục 3.3.2 Tính tidset nút cha từ tidset nút

Việc thêm mục cha vào CSDL khai thác tập mục CSDL phân cấp theo phƣơng pháp trƣớc làm cho nhớ tăng lên tốn thời gian quét chèn 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 mục phân cấp - mục có CSDL gốc

Mệnh đề 3.2 Tidset mục cha phân cấp đƣợc xác định hợp tidset mục nút

Nhƣ vậy, tidset(X) = tidset(X1) tidset(X2) tidset(Xk)

Trong X1, X2, , Xk mục nút mục X

Ví dụ 3.7: Xét CSDL HD, H cha A D 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}

(102)

90

Thuật toán xác định tidset mục cha dựa vào tidset mục đồng thời tính twu giao dịch đƣợc trình bày nhƣ Hình 3.8

Thuật toán 3.5:CREAT_TIDSET

Input:HQDB HD, minsup

Output:tập L chứa 1-itemset

- Method name: CREAT_TIDSET()

10 11 12 13

CREAT_TIDSET(Tr) for all t T

twu [t] = 0;

L = ;

for all i t

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

tidset(h) t; //cập nhật tidset cho mục cha i weight(h) = Fun_weight(weight(h), weight(i));

quantity (h) = Fun_quantity(quantity(h), quantity(i);

L h;

for all l L

twu [t] = twu [t] + quantity(l) weight(l);

Hình 3.8 Thuật tốn xác định tidset mục tính twu giao dịch Thuật tốn CREAT_TIDSET() thực nhƣ sau:

(103)

91

vào giao dịch t Dịng 13 14, tính twu [t] với mục cha có nút giao dịch t

Nhƣ vậy, thuật toán CREAT_TIDSET() cần lần quét CSDL xây dựng xong tidset tất các mục, đồng thời tính twu giao dịch mà không cần phải thêm mục cha vào CSDL nhƣ thuật toán MINE_FWUIs Hình 3.4 Bằng việc xác định tidset mục cha thông qua mục giao dịch bỏ đƣợc công đoạn tiêu tốn nhiều thời gian quét thêm mục cha vào CSDL

3.3.3 Kiểm tra mối quan hệ cha mục tập mục

Dòng số 11 thuật tốn MINE_FWUIs Hình 3.4 có chức kiểm tra mối quan hệ cha cặp hai mục X - mục tạo thành từ Fi Fj, giống nhƣ Vo đồng [37] xét hết tất cặp phần tử X với (có tất cặp với m số lƣợng mục tập mục X) Trong phần luận án đề xuất phƣơng pháp kiểm tra nhanh tính cha mục tập mục đƣợc tạo thành HIT-tree dựa vào Mệnh đề 3.2 nhƣ sau:

Mệnh đề 3.3 Cho Fi = X1X2 XkY1 Fj = X1X2…XkY2 là hai tập mục thuộc hai nút lớp tƣơng đƣơng HIT-tree, tập mục X = Fi Fj = X1X2…XkY1Y2 Ta nói X không tồn hai cặp mục có quan hệ cha Y1 Y2 khơng có quan hệ cha với

(104)

92

3.3.4 Thuật toán khai thác nhanh FWUI HQDB

Dựa cải tiến trình bày trên, thuật tốn khai thác nhanh FWUI từ HQDB có tên FAST_MINE_FWUIs đƣợc đề xuất phần Trong module ADD_PARENT() đƣợc sử dụng thuật tốn MINE_FWUIs khơng cịn đƣợc sử dụng thuật toán Đồng thời cấu trúc EDBV với phần tử LI việc kiểm tra nhanh mối quan hệ mục tập mục đƣợc thiết lập

Thuật toán3.6:FAST_MINE_FWUIs

Input:HQDBHD độ đo minwus Output:HIT-tree chứa tất FWUI

Method name: FAST_MINE_FWUIs()

2 10 11 12 13 14 15

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); CREATE_HIT-TREE(F)

P = ; // khởi tạo lớp for all i F

for j F (vớij>i)do //duyệt j sau i

if (Y1 parent(Y2) and Y1 parent(Y2)) then

X = Fi Fj;

T = EDBV(Fi) EDBV(Fj); //T EDBV X

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)

(105)

93

Thuật tốn FAST_MINE_FWUIs() Hình 3.9 sử dụng thủ tục CREATE_TIDSET() với lần quét CSDL để xây dựng tidset mục bao gồm mục thuộc mục cha phân theo Mệnh đề 3.2 Bên cạnh đó, thuật tốn tính twu tất giao dịch Dòng 10 thuật tốn MINE_FWUIs() kiểm tra tồn cặp mục tập mục X đƣợc thay bằng dòng FAST_MINE_FWUIs() với việc kiểm tra cặp (Y1,

Y2), đóY1, Y2 lần lƣợt phần tử cuối Fi Fj theo Mệnh đề 3.3 Dòng 12 MINE_FWUIs() đƣợc thay dòng 10 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 thực nghiệm 3.4.1 CSDL thực nghiệm

CSDL thực nghiệm bao gồm ba CSDL FACT-1997, SALE-FACT-1997+1998 SALE-FACT-SYNC đƣợc cho bảng 2.7 Đây HQDB rút từ CSDL Foodmart2000 SQL2000 Bảng 3.10 mô tả 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

SALE-FACT-SYNC 58.308

Các CSDL có chung phân cấp gồm sáu cấp đƣợc trình bày cụ thể Bảng 3.11

Bảng 3.11 Các mức phân cấp

Mức Tên mức Số lƣợng nút

1 Product_family

2 Product_department 24

(106)

94

4 Product_subcategory 56

5 Product_class 110

6 Product 1560

Theo Bảng 3.11 CSDL thực nghiệm có ba phân cấp (mức có ba nút) Độ cao phân cấp sáu (có sáu cấp)

3.4.2 Kết thực nghiệm 3.4.2.1 So sánh nhớ

Bảng 3.12 So sánh nhớ số lƣợng mục

CSDL So sánh MINE_FWUIs FAST_MINE_FWUIs 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ể việc thêm không thêm mục thuộc mục cha phân cấp hai thuật toán MINE_FWUIs FAST_MINE_FWUIs Số lƣợng mục dung lƣợng nhớ tăng lên đáng kể sau thêm mục cha phân cấp vào CSDL

Ví dụ với CSDL SALE-FACT-1997, số lƣợng mục ban đầu 86.837, sau thêm mục cha 275.539, nhƣ việc thêm mục cha phân cấp làm số lƣợng mục tăng 317% Tƣơng tự nhƣ vậy, dung lƣợng liệu 4,65 MB, sau thêm mục cha 13,52 MB, nhƣ dung lƣợng liệu tăng 290%

3.4.2.2 Thực nghiệm với hàm MAX SUM

(107)

95

Trong mục này, luận án thống kê số lƣợng tỉ lệ G-FWUI (Generalized FWUI: FWUI chứa mục cha phân cấp) CSDL SALE-FACT-SYNC với 02 ngƣỡng minwus nhỏ 0,001% 0,003% Đồng thời, so sánh số lƣợng tỉ lệ G-FWUI khai thác đƣợc sử dụng cặp hàm (max, max) (sum, sum) xác định trọng số mục cha số lƣợng mục cha giao dịch

Bảng 3.13 Thực nghiệm CSDL SALE-FACT-SYNC

Số cấp

minwus = 0,001% minwus = 0,003%

G-FWUI G-FWUI

(max, max) (sum, sum) (max, max) (sum, 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

Số liệu thực nghiệm từ bảng 3.13 với CSDL SALE-FACT-SYNC cho thấy có độ cao lớn số lƣợng FWUI khai thác đƣợc lớn, điều hợp lý có nhiều mục cha đƣợc thêm vào CSDL Tƣơng tự nhƣ thế, số lƣợng G-FWUI đƣợc khai thác nhiều

(108)

96

cặp hàm (max, max), nên mục nút cha tạo nhiều G-FWUI kết hợp với mục CSDL có trọng số số lƣợng nhỏ Đây lý mà sử dụng cặp hàm (sum, sum) tạo nhiều G-FWUI so với cặp hàm lại

Tùy theo CSDL thực tế nhƣ mà việc xác định trọng số hay số lƣợng mục nút cha sử dụng cặp hàm bốn cặp cho phù hợp

3.4.2.3 So sánh thời gian

Kết thực nghiệm ba CSDL cho Bảng 3.10 với thuật toán MINE_FWUIs sử dụng cấu trúc DBV, MBiS, EDBV EIWS đƣợc chỉ hình 3.10-3.12:

Hình 3.10 So sánh thời gian CSDL SALE-FACT-1997

Hình 3.11 So sánh thời gian CSDLSALE-FACT-1997+1998

308,02 234,82 174,82 156,32 000 050 100 150 200 250 300 350

000 000 000 000 000 000

ti me (s ) minwus (%) DBV MBiS EDBV EIWS 2634,16 2228,732 1028,981 899,458 500 1000 1500 2000 2500 3000

0.3 0.2 0.1 0.06 0.03 0.01

(109)

97

Hình 3.12 So sánh thời gian CSDL SALE-FACT-SYNC

Hình 3.10-3.12 so sánh thời gian chạy bốn cấu trúc DBV, MBiS, EDBV EIWS với thuật toán MIN_FWUIs Kết thực nghiệm thuật toán MINE_FWUIs hiệu 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 EIWS lần lƣợt 308,02s, 234,82s, 174,82s 156,32s Nhƣ EIWS nhanh EDBV, MBiS vàDBV lần lƣợt 1,12; 1,34 1,76 lần

Cũng nhƣ kết thực nghiệm chƣơng 2, cấu trúc IWS MBiS có hiệu CSDL thƣờng CSDL thƣa Do khai thác tập mục phổ biến CSDL số lƣợng có phân cấp mục có kết tƣơng tự Ngồi ra, ta thấy thời gian khai thác FWUI CSDL số lƣợng có phân cấp lớn so với CSDL số lƣợng thông thƣờng (cùng so sánh CSDL SALE-FACT) việc thêm mục nút cha phân cấp vào CSDL phải xác định trọng số, số lƣợng cho mục Đồng thời trình khai thác phải kiểm tra mối quan hệ cha mục tập mục tạo thành Mặt khác, sau thêm mục nút cha vào CSDL, CSDL tạo thành lớn CSDL gốc cần nhiều thời gian để khai thác CSDL so với CSDL gốc

Kết thực nghiệm với thuật tốn FAST_MINE_FWUIs MINE_FWUIs đƣợc trình bày qua Hình 3.13-3.15:

2757,776 2109,512 1292,55 910,23

500 1000 1500 2000 2500 3000

0.3 0.2 0.1 0.06 0.03 0.01

ti

me(s

)

minwus(%)

(110)

98

Hình 3.13 So sánh thời gian CSDL SALE-FACT-1997

Hình 3.14 So sánh thời gian CSDL SALE-FACT-1997+1998

Hình 3.15 So sánh thời gian CSDL SALE-FACT-SYNC

Hình 3.13-3.15 hiệu thuật toán FAST_MINE_FWUIs so với MINE_FWUIs sử dụng cấu trúc EIWS Điều thể ƣu điểm việc không chèn thêm mục cha vào CSDL xác định nhanh mối quan hệ cha tập mục tạo thành từ hai tập mục lớp tƣơng đƣơng HIT-tree Cụ thể ta có kết CSDL SALE-FACT-1997 nhƣ Bảng 3.14 sau đây:

156,321 45,563 50 100 150 200

0.3 0.2 0.1 0.06 0.03 0.01

ti me(s ) minwus(%) MINE_FWUIs- EIWS FAST_MINE_FWUIs-EIWS 393,452 899,458 200 400 600 800 1000

0.3 0.2 0.1 0.06 0.03 0.01

ti me(s ) minwus(%) MINE_FWUIs-EIWS FAST_MINE_FWUIs-EIWS 495,872 1021,441 500 1000 1500

0.3 0.2 0.1 0.06 0.03 0.01

ti

me(s

)

minwus(%)

(111)

99

Bảng 3.14 So sánh thời gian chạy CSDL SALE-FACT-1997 Thuật toán

minwus

MINE_FWUIs FAST_MINE_FWUIs

DBV MBiS EDBV EIWS EDBV EIWS

0,3% 18,41 16,68 11,68 6,21 4,68 2,33

0,2% 45,59 33,53 21,53 12,38 11,53 6,43 0,1% 57,26 42,03 26,03 19,32 17,03 10,12 0,06% 71,82 60,92 30,923 28,41 24,92 14,24 0,03% 121,46 90,76 52,76 45,46 30,76 18,54 0,01% 308,02 234,82 174,13 156,32 90,65 45,56

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 90,65s nhanh thuật toán MINE_FWUIs (174,13s) 1,93 lần Điều cho thấy tính hiệu việc khơng thêm mục cha vào CSDL việc xác định nhanh mối quan hệ cha mục tập mục tạo thành từ hai tập mục lớp tƣơng đƣơng HIT-tree

Bên cạnh đó, cấu trúc EIWS cho thấy hiệu tốt so với phƣơng pháp khác Ví dụ với minwus = 0,01%, thuật tốn FAST_MINE_FWUIs với cấu trúc EDBV có thời gian chạy 90,65s, với cấu trúc EIWS có thời gian chạy 45,56s Nhƣ sử dụng cấu trúc EIWS nhanh 49,8% so với cấu trúc EDBV

(112)

100

3.5 Kết luận chƣơng

Chƣơng luận án đề xuất hai cấu trúc EDBV EIWS với phần tử LI, mở rộng DBV IWS Đồng thời đề xuất sử dụng mảng MAP định nghĩa trƣớc vị trí bit số nguyên hai byte sử dụng phép dịch AND bit để “cắt” word (hai byte) từ LI để ánh xạ vào mảng MAP để tính tidset tập mục giúp tính nhanh wus chúng Các kết thực nghiệm từ Hình 3.10-3.12 cho thấy hiệu EIWS EDBV cấu trúc trƣớc ba CSDL thực nghiệm lấy từ Foodmart2000 SQL2000

(113)

101

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN

Các kết đạt

Luận án khảo sát nghiên cứu có khai thác tập mục phổ biến CSDL, đặc biệt khai thác FWI FWUI CSDL số lƣợng khai thác FI CSDL có phân cấp mục Trên sở đó, luận án đề xuất cấu trúc MBiS [I], cấu trúc IWS [II] cấu trúc DTab [IV] để khai thác hiệu tập mục phổ biến CSDL số lƣợng Tiếp đến, luận án đề xuất toán khai thác tập mục phổ biến CSDL số lƣợng có phân cấp mục Luận án đề xuất số cải tiến nhƣ tính tidset mục cha dựa tidset mục con, cấu trúc EDBV, EIWS mở rộng cấu trúc DBV IWS áp dụng khai thác hiệu tập mục CSDL số lƣợng có phân cấp mục Các kết nghiên cứu nêu đƣợc công bố tạp chí hội thảo nƣớc quốc tế uy tín

Đối với khai thác tập mục CSDL số lƣợng, cấu trúc liệu đƣợc đề xuất luận án IWS MBiS cấu trúc theo hƣớng tiếp cận bit-vector, cải tiến hiệu rõ rệt so với cấu trúc có nhƣ BitTable hay DBV nhớ sử dụng nhƣ thời gian xử lý Bên cạnh đó, cấu trúc IWS, luận án đề xuất sử dụng mảng MAP định nghĩa trƣớc vị trí bit 1 phần tử cấu trúc để tính nhanh wus (đối với khai thác FWUI) và ws (đối với khai thác FWI) CSDL số lƣợng Đồng thời luận án đề xuất cấu trúc DTab DHeap khai thác Top-rank-k tập mục phổ biến CSDL số lƣợng Hiệu cấu trúc đƣợc minh họa cụ thể qua kết thực nghiệm chƣơng

(114)

102

với khai thác FWI) Bên cạnh đó, luận án đề xuất số mệnh đề nhằm xác định tidset mục cha thông qua tidset mục phân cấp xác định nhanh mối quan hệ cha mục tập mục để giảm nhớ lƣu trữ CSDL tăng tốc tính tốn cho tốn khai thác FWUI HQDB Các kết thực nghiệm chƣơng cho thấy hiệu đề xuất toán

Hướng phát triển

Luận án nghiên cứu phƣơng pháp khai thác tập mục phổ biến CSDL số lƣợng CSDL số lƣợng có phân cấp mục Luận án đề xuất số thuật toán với cấu trúc liệu hiệu phƣơng pháp khai thác tập phổ biến có Tuy nhiên, tốn CSDL số lƣợng có phân cấp cần đƣợc mở rộng nghiên cứu tiếp nhƣ:

1 Giải toán khai thác tập mục phổ biến đóng, tập phổ biến tối đại HQDB

2 Nghiên cứu hƣớng tiếp cận hiệu khai thác tập mục phổ biến HQDB dày

3 Mở rộng toán khai thác FWUI HQBD lớn, cần sử dụng hệ thống tính tốn hiệu cao để giải tốn với mơ hình song song hóa thuật toán cách hợp lý

(115)

103

DANH MỤC CƠNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN ĐẾN LUẬN ÁN

[I] Nguyen Duy Ham, Vo Dinh Bay, Nguyen Thi Hong Minh, Tzung Pei Hong (2015), “MBiS: an efficient method for mining frequent weighted utility itemsets from QDB”, Journal of Computer Science and Cybernetics,

31(1), pp.17–30

[II] Nguyen Duy Ham, Bay Vo, Nguyen Thi Hong Minh, Tzung Pei Hong (2015), “An improved algorithm for mining frequent weighted itemsets”, in Proc of the International conf on IEEE System, Man, Cybernetics, Hong Kong, pp 2579–2584

[III] Nguyễn Duy Hàm, Võ Đình Bảy, Nguyễn Thị Hồng Minh (2015), “Thuật toán hiệu khai thác tập phổ biến từ sở liệu số lƣợng có phân cấp mục”, Hội nghị khoa học quốc gia lần thứ 8:“Nghiên cứu

ứng dụng CNTT”, Viện CNTT – Đại học Quốc gia Hà Nội, tr 679-686

[IV] Nguyễn Duy Hàm, Võ Đình Bảy, Nguyễn Thị Hồng Minh (2015), “Thuật tốn hiệu 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 CNTT

TT”, tr 312–317

(116)

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

(117)

105

[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] Elena, B., Luca, C., Tania, C., & Paolo, G (2012) Generalized association rule mining with constraints Information Science (Elsevier Science Inc), 194, 68-84 [15] Elena, B., Luca, C., Tania, C., Vincenzo, D., & Paolo, G (2014) Expressive

generalized itemsets Information Sciences, 278, 327-343

[16] 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

[17] 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

[18] 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

[19] 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 [20] 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

[21] 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

[22] Lan, C G., Hong, P T., & Lee, Y H (2014) An efficient approach for finding weighted sequential patterns from sequence databases Applied

(118)

106

[23] 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

[24] 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

[25] 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

[26] 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

[27] Le, T., & Vo, B (2015) An N-list-based algorithm for mining frequent closed patterns Expert Systems with Applications, 42(19), pp 6648-6657

[28] Lee, Y C., Hong, P T., & Chen C, H (2010) Mining Generalized Association Rules with Quantitative Data under Multiple Support Constraints, Computational Collective Intelligence Technologies and Applications Lecture

Notes in Computer Science, 6422, pp 224-231

[29] 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

[30] 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

[31] 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

[32] Ramkumar, G D., Ranka, S., & Tsur, S (1998) Weighted Association Rules: Model and Algorithm Proc of conference on Knowledge Discovery and Data

(119)

107

[33] Song, W., Yang, B., & Xu, Z (2008) Index-BitTableFI: An improve algorithm for mining frequent itemsets Knowledge - Based System, 21(6), pp 507-513

[34] 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

[35] 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

[36] Vo, B., & Le, B (2009) Fast Algorithm for Mining Generalized Association Rules International Journal of Database and Application, 2(3), pp 1-12 [37] 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

[38] 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

[39] 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

[40] Vo, B., Le, T., Coenen, F., & Hong, P T (2016) Mining frequent itemsets using the N-list and subsume concepts International Journal of Machine

Learning and Cybernetics, 7(2), pp 253-265

[41] Vo, B., Nguyen, Y., & Nguyen, D (2013) Mining frequent weighted closed itemsets Proc of Conf on Advanced Computational Methods for Knowledge

Engineering, pp 379-390

[42] Wang, W., Yang, J., & Yu, P (2000) Efficient mining of weighted association rules (WAR) Proc of the conference on ACM SIGKDD

(120)

108

[43] 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

[44] 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

[45] 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

[46] 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

[47] 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

[48] 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

[49] Zaki, M J (2000) Scalable algorithms for association mining IEEE

transactions on Knowledge and Data Engineering, 12(3), pp 372-390

[50] Zaki, M J., & Gouda, K (2003) Fast vertical mining using Diffset Proc of

, pp 253-265

Ngày đăng: 02/02/2021, 07:18

Tài liệu cùng người dùng

Tài liệu liên quan