1. Trang chủ
  2. » Luận Văn - Báo Cáo

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 52 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 120
Dung lượng 3,26 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tuy nhiên, các nghiên cứu này mới đề cập trên CSDL nhị phân, chưa được nghiên cứu áp dụng trên CSDL số lượng, do đặc thù của CSDL số lượng cần tính trọng số các giao dịch của các tập mục

Trang 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

Hà Nội - 2016

Trang 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

XÁC NHẬN NCS ĐÃ CHỈNH SỬA THEO QUYẾT NGHỊ

CỦA HỘI ĐỒNG ĐÁNH GIÁ LUẬN ÁN

Luận án Tiến sĩ

Hà Nội - 2016

Trang 3

i

LỜI CAM ĐOAN

Tôi xin cam đoan luận án này là công trình nghiên cứu do tác giả thực hiện dưới sự hướng dẫn của tập thể cán bộ hướng dẫn Luận án có sử dụng thông tin trích dẫn từ nhiều nguồn tham khảo khác nhau, các thông tin trích dẫn đều được ghi rõ nguồn gốc Các số liệu thực nghiệm, kết quả nghiên cứu trình bày trong luận án là hoàn toàn trung thực, chưa được công bố bởi tác giả nào hay trong bất kì công trình nào khác

Tác giả

Nguyễn Duy Hàm

Trang 4

ii

LỜI CẢM ƠN

Luận án Tiến sĩ này được thực hiện tại trường Đại học Khoa học và Tự nhiên - Đại học Quốc gia Hà Nội với sự hướng dẫn khoa học của TS Nguyễn Thị Hồng Minh, PGS.TS.Võ Đình Bảy và TS Lê Quang Minh Nghiên cứu sinh xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo, cô giáo hướng dẫn đã định hướng khoa học, tận tâm giúp đỡ và chỉ bảo tỉ mỉ trong suốt quá trình nghiên cứu mới có thể hoàn thiện bản luận án này Nghiên cứu sinh luôn ghi nhớ công lao dạy dỗ, dìu dắt vào con đường khoa học của cố PGS.TS Hoàng Chí Thành - người đã hướng dẫn Nghiên cứu sinh ở giai đoạn đầu làm nghiên cứu khoa học Nghiên cứu sinh xin chân thành cảm ơn các nhà khoa học, tác giả các công trình nghiên cứu đã được trích dẫn trong luận án vì đây là nguồn tài liệu quý báu để Nghiên cứu sinh phát triển và hoàn thiện các công bố của mình

Nghiên cứu sinh xin chân thành cảm ơn Ban Giám hiệu, lãnh đạo Khoa Toán -

Cơ - Tin học, các thầy cô, giảng viên Bộ môn Tin học - Trường Đại học Khoa học Tự nhiên - Đại học Quốc gia Hà Nội đã tạo những điều kiện thuận lợi nhất để Nghiên cứu sinh hoàn thành chương trình học tập và thực hiện hoàn tất luận án của mình Nghiên cứu sinh xin chân thành cảm ơn Ban Giám hiệu Trường Đại học An ninh nhân dân, tập thể giáo viên Bộ môn Toán - Tin học Trường Đại học An ninh nhân dân nơi Nghiên cứu sinh công tác và các bạn bè thân thiết đã luôn tạo điều kiện, động viên, khuyến khích và hỗ trợ tối đa để Nghiên cứu sinh hoàn thành bản luận án này

Cuối cùng, con xin cảm ơn Bố Mẹ, đặc biệt là Mẹ - người đã luôn hy sinh tất

cả vì sự nghiệp học tập của các con, rất tiếc mẹ đã không đợi được đến ngày con hoàn thành luận án Xin cảm ơn gia đình, chị gái và các em đã luôn đồng hành, động viên, chia sẻ giúp duy trì nhiệt huyết và nghị lực để đi đến hoàn thành bản luận án này./

TP Hồ Chí Minh, tháng năm 2016

Trang 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 1

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

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

1.1.1 Một số khái niệm cơ bản 8

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 trên CSDL ngang 15

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

1.3 Một số phương pháp khai thác FWI và FWUI trên 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 trên CSDL có sự phân cấp các mục 28

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

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

CHƯƠNG 2 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 toán tính giao của hai IWS 40

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

2.1.4 Kết quả 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 trên MBiS-tree 56

2.2.4 Kết quả thực nghiệm 59

Trang 6

iv

2.3 Thuật toán khai thác TRFWUI k 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 dữ liệu DTab 65

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

2.3.6 Kết quả thực nghiệm 70

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

CHƯƠNG 3 KHAI THÁC TẬP MỤC PHỔ BIẾN TRÊN CƠ SỞ DỮ LIỆU SỐ LƯỢNG CÓ SỰ PHÂN CẤP CÁC MỤC 75

3.1 Giới thiệu bài toán 76

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

3.2.1 Thuật toán xác định weight cho các 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 quả khai thác FWUI trên HQDB 84

3.3.1 Cấu trúc EDBV 84

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

3.3.3 Kiểm tra mối quan hệ cha con đối với các mục trong tập mục 91

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

3.4 Kết quả thực nghiệm 93

3.4.1 CSDL thực nghiệm 93

3.4.2 Kết quả thực nghiệm 94

3.5 Kết luận chương 100

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

DANH MỤC CÔNG TRÌNH KHOA HỌC CỦA TÁC GIẢ LIÊN QUAN

ĐẾN LUẬN ÁN 103

Trang 7

v

DANH MỤC BẢNG

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

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

Bảng 1.3. ID của các mục của DB 10

Bảng 1.4. Các giao dịch của DB bằng ID 10

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

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

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

Bảng 1.8. Trọng số của các mục của 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 của CSDL DB trong ví dụ 1.4 23

Bảng 1.12. twu các giao dịch của DB trong ví dụ 1.4 25

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

Bảng 2.1. Bit-vector 36

Bảng 2.2. DBV của bit-vector trong ví dụ 2.1 36

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

Bảng 2.4. Chỉ số các bit 1 của IWS(X) 39

Bảng 2.5. Mảng MAP 42

Bảng 2.6. IWS của các 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 của HD 76

Bảng 3.2. Trọng số 76

Bảng 3.3. Tên mặt hàng của các mục 77

Trang 8

vi

Bảng 3.4. Giao dịch của HD 82

Bảng 3.5. Trọng số 82

Bảng 3.6. twu của các 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, mỗi đoạn là một word 86

Bảng 3.10. Mô tả CSDL 93

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

Bảng 3.12. So sánh bộ nhớ và số lượng các mục 94

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

Bảng 3.14. So sánh thời gian chạy trên CSDL SALE-FACT-1997 99

Trang 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 toán Apriori trong khai thác tập mục phổ biến 16

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

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

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

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

Hình 2.2 Thuật toán tính ws của tập mục X 43

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

Hình 2.4 Thuật toán khai thác FWI dựa trên 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 bộ nhớ sử dụng với CSDL RETAIL 51

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

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

Hình 2.18 So sánh bộ nhớ sử dụng với CSDL SALE-FACT-1997+1998 52

Trang 10

viii

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

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

Hình 2.21 So sánh bộ 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 toán tính wus dựa trên MBiS 57

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

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

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

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

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

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

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

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

Hình 2.32 So sánh bộ nhớ sử dụng trên CSDL RETAIL 61

Hình 2.33 So sánh bộ nhớ sử dụng trên CSDL BMS-POS 61

Hình 2.34 So sánh bộ nhớ sử dụng trên CSDL SALE-FACT-1997 61

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

Hình 2.36 So sánh bộ nhớ sử dụng trên CSDL SALE-FACT-SYNC 62

Hình 2.37 So sánh bộ nhớ sử dụng trên CSDL CONNECT 62

Hình 2.38 So sánh bộ nhớ sử dụng trên CSDL ACCIDENT 62

Hình 2.39 DTab với k = 5 65

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

Hình 2.41 Thuật toán lọc ra TRFWUIk 68

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

Hình 2.43 Thuật toán tạo TR-tree sử dụng DHeap 70

Trang 11

ix

Hình 2.44 Thuật toán lọc ra TRFWUIk 70

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

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

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

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

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

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

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

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

Hình 3.3 Thuật toá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 và minwus = 0,6 84

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

Hình 3.7 Thuật toán tính nhanh wus của các tập mục 89

Hình 3.8 Thuật toán xác định tidset các mục và tính twu của các giao dịch 90

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

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

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

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

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

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

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

Trang 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

có thứ hạng cao nhất

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 nhất

Trang 13

1

MỞ ĐẦU

Sự phát triển mạnh mẽ của Công nghệ thông tin trong những năm gần đây đã thúc đẩy sự phát triển chung của toàn xã hội Với các ứng dụng của Công nghệ thông tin, con người đã có những “trợ thủ” đắc lực hỗ trợ mình trong cuộc sống cũng như trong công việc Công nghệ thông tin ứng dụng trong rất nhiều lĩnh vực đưa đến sự tiện lợi và kết nối mọi người trên khắp thế giới lại với nhau Các ứng dụng như ngân hàng điện tử, thương mại điện

tử, v.v… đã giúp cho con người tiết kiệm rất nhiều thời gian và công sức so với thao tác thủ công trước đây Trong những ứng dụng đó, thông tin, dữ liệu thường xuyên được đưa vào để các hệ thống thông tin lưu trữ và xử lý Bên cạnh đó, một số lượng lớn các dữ liệu được cập nhật hàng ngày và tự động lưu trữ thông qua các hoạt động của con người khi tương tác với các hệ thống thông tin, mạng xã hội, v.v… làm cho dữ liệu càng ngày càng lớn và phức tạp.

Ngoài việc phục vụ cho các hệ thống thông tin hoạt động theo chức năng sẵn có thì một vấn đề đặt ra là làm sao có thể khai thác hiệu quả các loại dữ liệu lưu trữ trong hệ thống, tìm ra các tri thức quan trọng, các quy luật của dữ liệu phục vụ cho việc đưa ra các dự đoán, dự báo nhằm hỗ trợ ra quyết định

và các nhu cầu liên quan khác Ví dụ như từ cơ sở dữ liệu (CSDL) của hệ thống bán hàng trong siêu thị có thể tìm ra được quy luật (thói quen) mua hàng của các khách hàng Khách hàng thường mua các mặt hàng nào cùng với

nhau? hay độ tuổi từ “A” đến “B” thường ưa thích mặt hàng nào?, v.v Từ đó

để giúp cho việc triển khai các kế hoạch phát triển sản phẩm hiệu quả hơn của các hệ thống bán hàng như trung tâm thương mại, siêu thị, v.v…

Khai thác tập mục phổ biến trên CSDL nhị phân

Từ những yêu cầu thiết thực đó, lĩnh vực khai thác dữ liệu đã và đang được phát triển mạnh trong thời gian gần đây Một trong những bài toán quan trọng trong khai thác dữ liệu được quan tâm nghiên cứu là khai thác tập mục phổ biến (frequent itemsets - FI), từ FI có thể khai thác luật kết hợp, đưa ra

Trang 14

đề 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

và tidset (set of transaction identifiers - tập các giao dịch) của chúng Tuy nhiên, Eclat có hạn chế là cần nhiều bộ nhớ để lưu trữ tidset, do đó gián tiếp ảnh hưởng đến hiệu quả về mặt thời gian của thuật toán này Tiếp theo Zaki và các đồng sự [50] đề xuất cấu trúc diffset, với tư tưởng sử dụng phần bù của tidset, nhưng cách làm này chỉ thực sự có hiệu quả trên CSDL dày Tuy nhiên, trong khi thực tế CSDL thưa mới là loại CSDL phổ biến

Một số phát triển gần đây với cấu trúc N-list [8, 9,10,11,12, 17, 26, 40]

là các nghiên cứu dựa trên tiếp cận lai ghép giữa FP-tree và định dạng dữ liệu dọc nhằm giảm bộ nhớ giúp cải tiến thời gian khai thác và bộ nhớ sử dụng Tuy nhiên, các nghiên cứu này mới đề cập trên CSDL nhị phân, chưa được nghiên cứu áp dụng trên CSDL số lượng, do đặc thù của CSDL số lượng cần tính trọng số các giao dịch của các tập mục để xác định độ hỗ trợ của các tập mục, mà đây là một khó khăn của tiếp cận dựa trên FP-tree

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

Các chủ đề nghiên cứu trên CSDL số lượng như khai thác tập mục phổ biến có trọng số (frequent weighted itemsets - FWI) [7, 22, 23, 32, 34, 37, 41,

42, 43, 44, 45, 46, 47, 48] hay khai thác tập mục phổ biến trọng số hữu ích

Trang 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 và đồng sự [32] đề xuất bài toán khai thác luật kết hợp trọng số

và một framework để khai thác FWI Sau đó Tao và đồng sự [34] đề xuất thuật toán khai thác FWI dựa trên tiếp cận Apriori với hai độ đo trọng số giao

dịch (transaction weight - tw) và độ hỗ trợ trọng số (weight support - ws), tuy

nhiên như đã trình bày ở trên cách tiếp cận này rất tốn thời gian do quét CSDL nhiều lần Tiếp đến, Vo và các đồng sự [37] đề xuất cấu trúc WIT-tree trong khai thác FWI và cấu trúc MWIT-tree [39] trong khai thác FWUI theo tiếp cận Eclat [49] với chỉ một lần quét CSDL Hạn chế của các phương pháp này là cần nhiều bộ nhớ lưu trữ tidset của các tập mục bằng các danh sách, làm tốn thời gian xác định giao tidset của các tập mục

Một bài toán mới được đặt ra và phát triển gần đây trong khai thác FI là

khai thác k nhóm tập mục phổ biến có thứ hạng cao nhất (Top-rank-k frequent

itemset-TRFIk) [8, 11, 15, 26] Khai thác FI thông thường không kiểm soát được số lượng các tập mục phổ biến tìm thấy Trong nhiều trường hợp chỉ cần quan tâm đến một số lượng nhất định các FI, hay số lượng các nhóm FI có độ

hỗ trợ lớn nhất Khai thác TRFIk giải quyết được đòi hỏi này Bài toán khai thác TRFIk đã được Deng giới thiệu vào năm 2007 [8] với thuật toán FAE, sau đó được Fang đề xuất thuật toán VTK [17] để giải quyết Tiếp theo, Deng [11] đề xuất thuật toán NTK dựa trên cây PPC-tree (Pre-order Post-order Code tree) và cấu trúc N-list Gần đây, Le và các đồng sự [26] đề xuất thuật toán iNTK là một cải tiến của NTK iNTK sử dụng cấu trúc N-list với khái niệm subsume được giới thiệu trong [40] Đây được xem là thuật toán hiệu quả nhất cho đến hiện nay, mặc dù iNTK tốn thời gian cho việc tạo cây PPC-tree Tuy nhiên, các nghiên cứu trên mới chỉ đề cập đến CSDL nhị phân, còn trên CSDL số lượng bài toán khai thác Top-rank-k vẫn chưa được quan tâm nghiên cứu

Trang 16

4

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

Bên cạnh CSDL nhị phân và CSDL số lượng thì CSDL có sự phân cấp các mục là loại CSDL có nhiều trong ứng dụng thực tế CSDL có sự phân cấp các mục là CSDL có thể hiện mối quan hệ khách quan giữa các mục dưới dạng cây phân cấp, các mục có mặt trong CSDL là các mục ở nút lá của cây phân cấp Năm 1995, Han và các đồng sự [20] lần đầu tiên đề cập tới bài toán khai thác FI trên CSDL có sự phân cấp các mục Tiếp theo, Liu

và các đồng sự [31] đề xuất bài toán khai thác FI với nhiều ngưỡng hỗ trợ trên CSDL có sự phân cấp các mục, theo đó, mỗi mục có một ngưỡng hỗ trợ riêng biệt Từ đó đến nay đã có nhiều nghiên cứu liên quan đến bài toán này [4, 5, 6, 28, 30, 35, 36] Tuy nhiên các tiếp cận hiện nay đối với khai thác trên CSDL có sự phân cấp các mục còn có nhiều hạn chế, trong đó đặc biệt

là tốn thời gian và bộ nhớ để thêm các mục cha trên cây phân cấp vào CSDL Ngoài ra các nghiên cứu hiện tại chưa đề cập trên CSDL số lượng có

sự phân cấp các mục

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

Bài toán khai thác FI trên một số loại CSDL như đã phân tích ở trên mặc dù đã được quan tâm nghiên cứu nhiều, nhưng cho đến hiện nay các phương pháp khai thác FI trên các loại CSDL số lượng còn hạn chế là tốn

bộ nhớ và thời gian xử lý chưa được tối ưu Mặt khác, khai thác FI trên CSDL số lượng có sự phân cấp các mục hiện nay chưa được quan tâm nghiên cứu, mặc dù đây là loại CSDL có nhiều trong các ứng dụng thực tế Đồng thời, CSDL số lượng có sự phân cấp các mục là sự kết hợp giữa CSDL số lượng và CSDL có sự phân cấp các mục Do đó, đề xuất thuật toán khai thác hiệu quả FI trên CSDL số lượng có sự phân cấp các mục có thể áp dụng để khai thác hiệu quả FI trên các CSDL số lượng và CSDL có

sự phân cấp các mục, giúp cải thiện thời gian và bộ nhớ trong khai thác FI trên các hệ thống thông minh

Trang 17

5

Trên cơ sở đó, Nghiên cứu sinh chọn đề tài “Phát triển một số thuật toán hiệu quả khai thác tập mục trên cơ sở dữ liệu số lượng có sự phân cấp các mục” làm đề tài nghiên cứu cho luận án tiến sĩ của mình

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

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

Mục tiêu của luận án như sau:

i) Đối với các thuật toán hiện có trên CSDL số lượng, luận án nghiên cứu cách thức khai thác hiệu quả hơn bằng 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ó sự phân cấp mục và đề xuất phương pháp khai thác mẫu trên CSDL số lượng có sự phân cấp mục

Luận án đạt được một số kết quả như sau:

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

2 Đề xuất thuật toán hiệu quả để khai thác k nhóm tập mục phổ biến trọng

số hữu ích có thứ hạng cao nhất trên CSDL số lượng

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

Cấu trúc luận án bao gồm năm phần, ngoài phần mở đầu và phần kết

luận, nội dung luận án được trình bày trong ba chương:

Chương 1: “Tổng quan về khai thác tập mục” trình bày các khái niệm

về khai thác FI các phương pháp khai thác FI, FWI, FWUI và TRFIk Phân tích ưu điểm và hạn chế của các phương pháp này đồng thời đề xuất hướng nghiên cứu của luận án

Trang 18

6

Chương 2: “Khai thác tập mục phổ biến trên cơ sở dữ liệu số lượng”

trình bày một số cấu trúc dữ liệu mới để biểu diễn tidset của các tập mục, trên

cơ sở đó đề xuất các phương pháp hiệu quả để khai thác nhanh FWI, FWUI trên CSDL số lượng Đồng thời, trong chương này cũng đề xuất bài toán khai

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

(TRFWUIk) trên CSDL số lượng và thuật toán hiệu quả để giải quyết bài toán này với hai cấu trúc DTab và DHeap

Chương 3: “Khai thác tập mục phổ biến trên cơ sở dữ liệu số lượng

có sự phân cấp các mục” đề xuất thuật toán khai thác FWUI trên CSDL số

lượng có sự phân cấp các mục Chương này trình bày một mở rộng của cấu trúc dữ liệu trong chương 2 và một số đề xuất nhằm cải tiến thuật toán khai thác hiệu quả FWUI trên CSDL số lượng có sự phân cấp các mục

Trang 19

7

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

Chương này trình bày các nghiên cứu liên quan đến khai thác tập mục phổ biến trên các loại CSDL như CSDL nhị phân, CSDL số lượng, CSDL có

sự phân cấp các mục và khai thác k nhóm tập phổ biến có thứ hạng cao nhất

(Top-rank-k) từ các nhóm nghiên cứu trong nước và quốc tế Phần này cũng trình bày các phân tích về ưu điểm và hạn chế của các phương pháp khai thác tập mục phổ biến hiện có Từ cơ sở đó luận án đề ra các thuật toán mới dựa trên các cấu trúc dữ liệu phù hợp hơn cho các bài toán này trong chương 2 và

3 của luận án

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

Mục đích của việc khai thác tập mục là để xác định nhóm các mục (item)

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

Nội dung chương 1 sẽ trình bày một số định nghĩa và khái niệm liên quan đến bài toán khai thác tập mục trên một CSDL như CSDL nhị phân, CSDL có sự phân cấp các mục, CSDL số lượng và một biến thể của CSDL số lượng là CSDL trọng số Đồng thời chương 1 giới thiệu tổng quát một số tiếp cận chính cho bài toán khai thác tập mục trên các loại CSDL đó

Trang 20

8

1.1.1 Một số khái niệm cơ bản

Định nghĩa 1.1 CSDL nhị phân (binary database) là một bộ gồm hai

Các mục xuất hiện trong một giao dịch của CSDL tương ứng có giá trị 1,

ngược lại có giá trị 0 Ví dụ giao dịch t 1 = {1, 1, 0, 1, 1} có nghĩa các mục A,

B, D, E có trong giao dịch, mục C không có trong giao dịch

CSDL nhị phân là CSDL biểu diễn sự xuất hiện hay không của các mục trong các giao dịch Trong nhiều trường hợp, các mục trong CSDL có mối quan hệ với nhau được thể hiện qua các cây phân cấp, ví dụ "computer" là mức khái quát của "Desktop" và "Notebook", hay "Printer" là mức khái quát

Trang 21

9

của "Laser priter", "Ink-Jet printer", v.v… Những CSDL có thể hiện mối quan

hệ của các mục thông qua cây phân cấp nhƣ trên đƣợc gọi là CSDL nhị phân

Tr là cây phân cấp thể hiện mối quan hệ của các mục trong CSDL

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

hiện quan hệ các mục nhƣ Hình 1.1

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

t 1 Notebook, Laser printer

t 2 Scanner, Dot-matrix printer

t 3 Dot-matrix printer, Ink-jet printer

t 4 Notebook, Dot-matrix printer, Laser printer

t 5 Scanner

t 6 Desktop

Trang 22

Từ ID đƣợc định nghĩa trong Bảng 1.3, các giao dịch trong Bảng 1.2 và

cây phân cấp Tr đƣợc biểu diễn lại nhƣ trong Bảng 1.4 và Hình 1.2

Trang 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} là tập các mục cha của cây phân cấp không xuất hiện trong các giao dịch của DB Tuy nhiên chúng có vai trò nhất định, thể hiện mối quan hệ của các mục trong DB Do đó, khi khai thác FI trên CSDL phân cấp đòi hỏi phải khai thác cả tập các mục trên cây phân cấp bao gồm (I J)

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

Định nghĩa 1.3 CSDL số lượng (quantitative database) là một bộ ba

Với giao dịch thứ k (k = 1 m): t k = { , , …, }, là số tự nhiên

chỉ số lượng của mục thứ j trong giao dịch, j = 1 n

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

Trang 24

Theo Bảng 1.5, DB có sáu giao dịch {t 1 , t 2 , t 3 , t 4 , t 5 , t 6}, ví dụ giao dịch

= {1, 1, 0, 4, 1} có nghĩa là trong giao dịch có một mục A, một mục B, bốn mục D, một mục E, không có mục C

Trong nhiều ứng dựng thực tế, CSDL số lượng có thể không quan tâm đến số lượng của các mục trong mỗi giao dịch, mà chỉ quan tâm đến trọng số của chúng Ví dụ CSDL vi phạm giao thông, người ta chỉ quan tâm là người

vi phạm lỗi gì và mức tiền phạt tương ứng cho từng lỗi ấy, hay CSDL khám bệnh, người ta quan tâm đến bệnh nhân có những triệu chứng gì mức độ nặng nhẹ (trọng số) của từng triệu chứng ấy, v.v… Các CSDL đó được gọi là CSDL có trọng số hay CSDL trọng số - một biến thể của CSDL số lượng với

số lượng của các mục xuất hiện trong CSDL là 1

Trang 25

Ví dụ 1.3: Cho CSDL trọng số DB với tập mục I = {A, B, C, D, E}, các

giao dịch đƣợc biểu diễn trong Bảng 1.7, trọng số các mục đƣợc thể hiện trong Bảng 1.8

Trang 26

14

Định nghĩa 1.6 Độ hỗ trợ của một tập mục (support) là tần suất xuất

hiện của tập mục đó trong CSDL và được xác định theo công thức sau:

support(X) =

Trong đó:

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

- m là số lượng giao dịch của CSDL

Ví dụ 1.4: Dựa vào CSDL Bảng 1.1, ta có support(AB) = =

66,67% (tập mục AB xuất hiện trong bốn giao dịch t 1 , t 3 , t 4 , t 5)

Để khai thác FI, người ta đưa vào một ngưỡng, gọi là ngưỡng phổ biến

(minsup), tập mục phổ biến theo ngưỡng minsup là tập mục có độ hỗ trợ (support) lớn hơn hay bằng ngưỡng minsup Như vậy tập các tập mục phổ

biến - FI được xác định như sau:

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

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

k-itemset

Định nghĩa 1.8 Rank của một tập mục X thuộc CSDL DB, kí hiệu RX

là một số nguyên chỉ thứ tự tập mục X theo độ phổ biến từ cao xuống thấp của tất cả các tập mục thuộc CSDL DB

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

Định nghĩa 1.9 Cho một giá trị nguyên k và CSDL DB, k nhóm tập

mục phổ biến có độ phổ biến cao nhất ( Top - rank - k frequent itemsets - TRFIk) của CSDL DB là tập các tập mục có hạng nhỏ hơn hoặc bằng k được xác định như sau:

TRFIk = {X|X I và Rx k}

Trang 27

15

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

Bài toán khai thác FI trên CSDL DB cho trước là bài toán tìm tất cả các

tập mục của CSDL có tần số xuất hiện trong các giao dịch thỏa mãn ngưỡng

minsup do người dùng xác định trước Tập các tập mục được khai thác theo ngưỡng minsup được gọi là FI của DB

Ví dụ 1.5: Xét CSDL trong Bảng 1.1 gồm sáu giao dịch được mô tả lại như Bảng 1.9:

FI của DB với minsup = 0,5 như sau:

FI = {A, B, C, D, E, AB, AD, AE, BC, BD, BE, DE, ABD, ABE, BDE, ABDE}

Bài toán khai thác FI là bài toán tìm tất cả các tập mục của CSDL có tấn

suất xuất hiện thõa mãn ngưỡng minsup cho trước

1.2 Các phương pháp khai thác FI

1.2.1 Phương pháp khai thác FI trên CSDL ngang

CSDL ngang được hiểu là CSDL giao dịch được mô tả như các định nghĩa về các loại CSDL đã nêu ở trên (Định nghĩa 1.1, đến Định nghĩa 1.4)

Có hai phương pháp chính khai thác FI trên CSDL ngang đó là Apriori và Growth

Trang 28

FP-16

1.2.1.1 Thuật toán Apriori

Thuật toán Apriori [1, 3] do Agrawal và các đồng sự đề xuất năm 1994 Thuật toán này khai thác FI bằng cách quét CSDL nhiều lần Ý tưởng như

sau: Thuật toán quét CSDL lần thứ nhất để sinh ra tập1-itemset phổ biến, từ tập 1-itemset phổ biến quét CSDL lần thứ hai để sinh ra tập 2-itemset phổ

biến, v.v… cho đến khi không tìm được bất kì tập phổ biến nào nữa thì dừng Thuật toán Apriori dựa trên tính chất được đặt tên là tính chất Apriori (còn

được gọi là tính chất bao đóng giảm) như sau:

Cho hai tập mục X và Y của CSDL DB:

Nếu X Y ⟹ support(X) support(Y)

Thuật toán 1.1: Apriori

Input: CSDL DB và một ngưỡng minsup

Output: Các FI của DB thỏa minsup

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

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

2 Sử dụng Lk-1 để sinh ra ứng viên k-itemset Sau đó quét CSDL để tính support của các ứng viên và loại bỏ các k-itemset không phải là FI thu được k-itemset phổ biến (Lk )

3 Lặp lại bước 2 cho đến khi không tạo ra ứng viên nào nữa FI khai thác được = L1 L2

Hình 1.3 Thuật toán Apriori trong khai thác FI

Trang 29

17

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

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

Thuật toán FP-Growth [18] do Han và đồng sự đề xuất năm 2000 đã phần nào giải quyết các hạn chế của Apriori về cả thời gian xử lý và bộ nhớ sử dụng Tiếp sau đó Grahne và đồng sự đề xuất FP-Growth* [19] Đây là một tiếp cận thú vị với việc sử dụng cấu trúc cây FP-tree (Frequent Partern-tree) để nén toàn

bộ CSDL với mỗi nút trên FP-tree là các mục của CSDL ban đầu Đồng thời, thuật toán FP-Growth chỉ cần hai lần quét CSDL, giảm đáng kể thời gian so với thuật toán Apriori, đặc biệt là trong các trường hợp CSDL lớn

Bước đầu tiên, thuật toán FP-Growth quét CSDL và sắp xếp lại trật tự các mục theo thứ tự tần suất xuất hiện giảm dần trên mỗi giao dịch Bước thứ

2, FP-Growth quét CSDL và nén toàn bộ dữ liệu lên cây FP-tree Bước thứ 3,

duyệt FP-tree để khai thác các FI:

Thuật toán FP-Growth được mô tả như trong Hình 1.4

Thuật toán 1.2: FP-Growth

Input: CSDL DB và một ngưỡng minsup

Output: Các FI của DB thỏa minsup

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

2 Tạo cây FP-tree chỉ có một nút gốc được gán nhãn là “null” ký hiệu root

a Với mỗi giao dịch trong DB được thể hiện như sau: chọn và sắp xếp những danh mục phổ biến theo thứ tự giảm dần trong f_list.

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

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

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

Trang 30

18

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

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

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

ngưỡng minsup

Như vậy nếu tập mục X không thỏa mãn ngưỡng minsup thì các tập mục

là phủ của X cũng không thỏa ngưỡng minsup, do vậy ta không cần xét nhánh

do tập mục X tạo ra Áp dụng tính chất bao đóng giảm trên cây IT-tree sẽ cắt

nhánh được tất cả các nhánh chắc chắn không chứa FI và các tập mục trên tree chính là FI cần khai thác

Trang 31

19

phần tử cuối cùng Một nút mới đƣợc chèn vào IT-tree nếu độ hỗ trợ

(support) của nó thỏa mãn ngƣỡng phổ biến (minsup) do đó các nút trên

IT-tree sau khi xây dựng xong chính là các FI cần khai thác

1.2.2.2 Thuật toán Eclat

Thuật toán 1.3: Eclat

Input: CSDL DB và một ngưỡng minsup

Output: Các FI của DB thỏa minsup

Method: Eclat

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

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

3 Mỗi nút ở mức k - 1 kết hợp với các nút có cùng nút cha với nó tạo ra các nút ở mức k nếu support của các nút này thỏa ngưỡng minsup

4 Lặp lại bước 3 cho đến khi không thể tạo thêm nút mới trên IT-tree

5 Duyệt cây IT-tree để lấy ra các FI (Tất cả các nút trên IT-tree là FI)

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

Ví dụ 1.6: Cho CSDL nhị phân DB trong ví dụ 1.1 và minsup = 0,5:

Bước 1: Quét CSDL chuyển sang CSDL theo chiều dọc nhƣ trong Bảng

Trang 32

20

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

Đầu tiên, tập 1-itemset được đưa vào mức đầu tiên của cây IT-tree Sau

đó, các cặp nút trong cùng một lớp tương đương được kết nối với nhau để tạo

ra các tập mục mới ở mức tiếp theo nếu tập mục mới thỏa mãn ngưỡng

minsup như trên Hình 1.4

Bước 4: Các FI khai thác được: {A, B, C, D, E, AB, 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 là hướng tiếp cận tốt được biết đến hiện nay với chỉ một lần quét CSDL Tuy nhiên, phương pháp này có nhược điểm lớn là tốn bộ nhớ sử dụng để lưu tidset của các tập mục, do mỗi giao dịch chứa tập mục cần một ô nhớ Đồng thời bộ nhớ tạm cần thiết trong quá trình tính toán trung gian cũng rất lớn Các hạn chế này làm cho thời gian tính toán của thuật toán Eclat chưa được tối ưu Do đó, nghiên cứu đề xuất các phương pháp mới nhằm tối ưu bộ nhớ để nâng cao hiệu quả khai thác FI trên các loại CSDL theo hướng tiếp cận này có tính thực tế cao Đây cũng chính là một trong những mục tiêu nghiên cứu của luận án

Trang 33

Một dạng rút gọn của CSDL số lượng là CSDL trọng số (Định nghĩa 1.4) với các giao dịch nhị phân, tức là các mục xuất hiện trong giao dịch là 1, các mục không xuất hiện là 0, mỗi mục có một trọng số xác định CSDL trọng số cũng là CSDL được sử dụng nhiều trong các ứng dụng thực tế Với CSDL trọng số, người ta không quan tâm đến số lượng mỗi mục trong các giao dịch,

mà quan tâm đến mục đó có xuất hiện hay không và trọng số của nó Ví dụ CSDL tai nạn giao thông, với mỗi vụ tai nạn giao thông người ta chỉ cần biết có

lỗi A, lỗi B và mức phạt của các lỗi ấy, hay CSDL bệnh nhân, mỗi người bệnh

có một số triệu chứng và các triệu chứng đó nặng hay nhẹ, ở mức độ nào, v.v…

Do đó, bên cạnh khai thác FWUI trên CSDL số lượng thì khai thác FWI trên CSDL trọng số cũng được quan tâm khai thác từ nhiều nhóm nghiên cứu về khai thác dữ liệu trên thế giới [7, 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

Bài toán khai thác FWI được đề xuất lần đầu tiên bởi Ramkumar và đồng sự [32], trong nghiên cứu này, các tác giả đã đưa ra mô hình mô tả khái niệm về luật kết hợp có trọng số, trong đó đề xuất thuật toán WIS để khai thác FWI Sau đó, việc nghiên cứu bài toán khai thác FWI được chia làm hai hướng tiếp cận riêng biệt dựa theo các cách thức xác định độ đo hỗ trợ trọng

số (weight support - ws) khác nhau

Trang 34

22

Hướng tiếp cận thứ nhất khởi đầu bởi Yun và đồng sự [45] sử dụng một

hàm trung bình để tính trọng số của tập mục, từ đó tính ws của tập mục bằng

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

theo cách tính ws của cách tiếp cận này, một tập mục xuất hiện trong giao dịch

t i cũng tương đương với xuất hiện trong giao dịch t j, điều này không phản ánh được tầm quan trọng khác nhau của các giao dịch trong CSDL thực tế

Hướng tiếp cận thứ hai được đề xuất lần đầu tiên bởi Tao và đồng sự

[34] dựa trên độ đo trọng số giao dịch (transaction weight - tw) được tính

bằng trung bình cộng các trọng số của các mục có trong giao dịch và giá trị

ws của một tập mục được xác định bằng tỉ số giữa tổng các tw của các giao dịch có chứa tập mục đó và cho tổng tw của tất cả giao dịch Theo cách tiếp cận này thì giá trị ws của tập mục vừa phản ánh được mức độ xuất hiện của

tập mục trong các giao dịch, vừa thể hiện được mức độ quan trọng khác nhau của các giao dịch Một ưu điểm nữa của cách tiếp cận này là thỏa mãn tính chất bao đóng giảm một cách tự nhiên Tuy nhiên, thuật toán do Tao và đồng

sự đề xuất dựa vào việc sinh ứng viên theo phương pháp Apriori nên cần đọc CSDL nhiều lần, dẫn đến tốn thời gian xử lý và cả bộ nhớ lưu trữ Tiếp theo,

Vo và các đồng sự [37] đề xuất cách thức lưu trữ trọng số trên cây WIT-tree, một mở rộng của cây IT-tree Do chỉ cần quét CSDL một lần, cùng với áp dụng chiến lược Diffset để khai thác FWI trên cây WIT-tree, nên phương

Trang 35

23

pháp này tỏ ra hiệu quả hơn phương pháp theo hướng tiếp cận Apriori trước

đó Hạn chế của phương pháp này là ở chỗ tốn bộ nhớ để lưu trữ tidset, đó cũng là nguyên nhân làm cho thời gian xử lý chưa được tối ưu

Theo hướng tiếp cận thứ hai này, Tao [34] và các đồng sự đưa ra công

thức tính các đại lượng trọng số giao dịch (transaction weight - tw) và độ hỗ trợ trọng số (weight support - ws), trong đó tw của một giao dịch là trung bình cộng của trọng số của các mục trong giao dịch đó, còn ws của một tập mục là thương của tổng tw của các giao dịch chưa tập mục đó với tổng tw của CSDL Cách tính này được thể hiện qua hai định nghĩa 1.11 và 1.12 như sau:

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

Trang 36

Với, t(X) là tập các giao dịch chứa tập mục X và sum_tw = ∑

Với tập mục BD trong DB ở ví dụ 1.3 được xác định như sau:

ws(BD) = 0,78

Tập mục X được gọi là phổ biến nếu và chỉ nếu ws(X) minws, với minws được xác định bởi người sử dụng Bài toán khai thác FWI trên CSDL trọng số là bài toán tìm tất cả các tập mục X (X I) thỏa mãn ws(X) minws

1.3.2.2 Một số nghiên cứu liên quan

Ramkumar và các đồng sự [32] đưa ra bài toán khai thác FWI trên CSDL trọng số Sau đó, Tao và đồng sự [34] đề xuất mô hình giải quyết bài

toán này dựa trên hai đại lượng trọng số giao dịch (tw) và độ hỗ trợ trọng số (ws) với công thức tính như trên trong định nghĩa 1.15 và định nghĩa 1.16

Vo và các đồng sự [37] đề xuất cấu trúc WIT-tree là một mở rộng của IT-tree [49] Mỗi nút trên WIT-tree gồm ba thành phần ws, itemset, tidset

Sự kết nối hai nút trong cùng một lớp tương đương ở mức k tạo ra nút mới ở mức k+1, nếu ws của tập mục mới tạo thành này thỏa ngưỡng minws, tập mục

ở nút mới chính là hợp từ hai tập mục của hai nút phía trên và tidset mới chính là giao của hai tidset của hai nút đó Sau khi xây dựng xong WIT-tree,

các tập mục trên cây chính là tất cả các FWI thỏa ngưỡng khai thác minws

Tuy nhiên các tiếp cận này chưa được tối ưu cả về thời gian lẫn bộ nhớ

1.3.3 Khai thác FWUI

Bên cạnh khai thác FWI, bài toán khai thác FWUI cũng nhận được một

số quan tâm nghiên cứu [21, 39] Việc khai thác FWUI liên quan đến việc xác

định trọng số hữu ích của các giao dịch twu (transaction weight utility) và độ

hỗ trợ trọng số hữu ích wus (weight utility support)

Trang 37

25

Khan và đồng sự [21] đã đƣa ra định nghĩa hai đại lƣợng là trọng số hữu

ích của giao dịch - transaction weight utility (twu) và độ hỗ trợ trọng số hữu ích - weight utility support (wus) đƣợc biểu diễn lại nhƣ sau:

Định nghĩa 1.12 Trọng số hữu ích của các giao dịch twu đƣợc định

Trang 38

Các tập mục phổ biến xác định theo minwus thỏa ngưỡng tính chất bao

đóng giảm, điều này đã được chứng minh trong [40]

Khan và các đồng sự [21] đề xuất bài toán khai thác FWUI bằng việc đề

xuất hai độ đo trong khai thác FWUI là trọng số hữu ích của giao dịch - twu

và độ hỗ trợ trọng số hữu ích - wus, đồng thời đề xuất một “framework” trong

việc giải quyết bài toán khai thác FWUI dựa trên hai độ đo này

Vo và các đồng sự đề xuất một cấu trúc dữ liệu có tên MWIT-tree [39] là một mở rộng khác của IT-tree để khai thác FWUI với chỉ một lần quét dữ liệu

dựa trên tính chất bao đóng giảm của wus Cấu trúc này gồm nhiều nút mỗi nút gồm ba thành phần {X, t(X), wus(X)} trong đó X là tập mục, t(X) là tidset(X) và wus(X) là độ hỗ trợ trọng số hữu ích của X Tuy nhiên tiếp cận

này có hạn chế là bộ nhớ sử dụng lưu trữ tidset của các tập mục còn rất lớn, điều này ảnh hưởng đến thời gian khai thác FWUI

1.3.4 Khai thác TRFIk

Khai thác FI là bài toán trọng tâm trong khai thác dữ liệu được nhiều nhóm nghiên cứu quan tâm Tuy nhiên, trong nhiều trường hợp khai thác FI với ngưỡng cho trước không đáp ứng được các đòi hỏi thực tế Ví dụ, với

ngưỡng minsup đưa vào thì số lượng các FI khai thác được quá nhiều hoặc

Trang 39

27

quá ít, nghĩa là người sử dụng không kiểm soát được số lượng các FI tìm thấy, v.v… Trong những trường hợp như vậy khai thác TRFIk sẽ giải quyết được yêu cầu trên

Fang và các đồng sự [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 dữ liệu theo chiều dọc gồm hai bước Đầu tiên VTK quét CSDL để chuyển dữ liệu sang chiều dọc và tính

support của các 1-itemset và đưa chúng vào TRFI-Table theo thứ tự giảm dần của support Mỗi thành phần trên TRFI-Table gồm hai thành phần, một là count (support của tập mục) hai là danh sách các tập mục có cùng support Bước thứ 2, các l-itemset trong TRFI-Table được kết nối với nhau để tạo ra các (l+1)-itemset, các tập mục mới được tạo thành sẽ được chèn vào TRFI- Table nếu support của nó lớn hơn giá trị tại chỉ số k của TRFI-Table (phần tử

cuối của TRFI-Table) Thuật toán kết thúc khi không còn tập mục nào được cập nhật vào TRFI-Table VTK là một thuật toán khá hiệu quả song nó có

một số điểm yếu như:

- Bộ nhớ sử dụng lớn trong lưu trữ tidset của các tập mục

- Tốn nhiều thời gian thực hiện kết nối các l-itemset để tạo ra itemset từ TRFI-Table, do phải xét cặp với m là số lượng các tập mục trong TRFI-Table

(l+1)-Deng và các đồng sự [8,10] đã đề xuất thuật toán NTK dựa trên cấu trúc N-list để tiết kiệm bộ nhớ, giảm thời gian tính toán trong khai thác TRFIk NTK tạo ra cây PPC-tree giống với cây FP-tree Dựa trên PPC-tree sinh ra N-

list của các 1-itemset, từ đó khai thác TRFIk NTK tuy đã cải thiện được bộ nhớ lưu trữ tidset của các tập mục, song vẫn tốn thời gian nhiều do quét CSDL hai lần để tạo ra PPC-tree

Le cùng các đồng sự [26] đưa ra một cải tiến của NTK với thuật toán iNTK dựa trên cấu trúc N-list giúp giảm thời gian trong tính giao các N-list

Trang 40

1.4 Khai thác FI trên CSDL có sự phân cấp các mục

CSDL có sự phân cấp các mục theo Định nghĩa 1.2 là CSDL có nhiều trong các ứng dụng thực tế, trong đó các mục trong CSDL có mối quan hệ nhất định với nhau thông qua cây phân cấp, các mục tại nút lá là các mục

có mặt trong các giao dịch trong CSDL, các mục ở nút cha trên cây phân cấp là các mục ở mức khái quát của các mục nút lá Do đó, bài toán này đã nhận đƣợc sự quan tâm từ nhiều nhóm nghiên cứu [4, 5, 6, 14, 15, 20, 28,

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

{  ( )

Có hai tiếp cận khai thác FI trên CSDL có sự phân cấp các mục, đó là khai thác với một ngƣỡng phổ biến và khai thác với nhiều ngƣỡng phổ biến Các ngƣỡng phổ biến khác nhau đối với mỗi cấp trên cây phân cấp

Ngày đăng: 01/04/2020, 20:56

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w