Lời mở đầu Khai thác luật kết hợp là một nhiệm vụ cơ bản và rất quan trọng trong khai thác dữ liệu, được ứng dụng trong nhiều lĩnh vực khác nhau như: phân tích thị trường chứng khoán, t
Trang 1ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Mã số: 60.48.01.01
TP HỒ CHÍ MINH – NĂM 2015
Trang 2ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
Mã số: 60.48.01.01
NGƯỜI HƯỚNG DẪN KHOA HỌC
TS PHẠM THỊ THIẾT
TP HỒ CHÍ MINH – NĂM 2015
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan luận văn Thạc sĩ “Khai thác top-rank-k tập phổ biến đóng”
ngành Khoa học máy tính là công trình của chính bản thân tôi Luận văn có sử dụng thông tin trích dẫn từ nhiều nguồn khác nhau, các thông tin trích dẫn đều được ghi
rõ nguồn gốc
TP.HCM, tháng 09 năm 2015
Tác giả luận văn
Trịnh Đồng Thạch Trúc
Trang 4LỜI CẢM ƠN
Đầu tiên, tôi xin gửi lời cảm ơn chân thành và sâu sắc đến cô Phạm Thị Thiết
và thầy Võ Đình Bảy, người đã tận tình hướng dẫn và giúp đỡ tôi trong suốt thời gian thực hiện đề tài
Tôi xin cảm ơn đến quý Thầy/Cô trường Đại học Công nghệ Thông tin đã tận tình dạy dỗ và truyền đạt kiến thức cho tôi trong suốt khoá học tại Trường
Tôi xin cảm ơn đến bạn bè, đồng nghiệp, những người luôn sát cánh động viên
và tạo mọi điều kiện tốt nhất để tôi có thể học tập và hoàn thành được luận văn này
Con xin cảm ơn Ba Mẹ, anh chị đã hết lòng thương yêu, động viên, giúp đỡ
con vượt qua khó khăn và tạo điều kiện thuận lợi để con hoàn thành công việc học tập của mình
Mặc dù đã rất cố gắng để hoàn thành luận văn, nhưng do hạn chế về thời gian
và kiến thức nên luận văn không tránh khỏi những khiếm khuyết nhất định Rất mong nhận được những ý kiến góp ý quý báu của quý thầy cô
Trịnh Đồng Thạch Trúc
Trang 5MỤC LỤC
MỤC LỤC 1
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 3
DANH MỤC CÁC BẢNG 4
DANH MỤC HÌNH VẼ, ĐỒ THỊ 5
MỞ ĐẦU 6
CHƯƠNG 1: TỔNG QUAN 8
1.1 Khai thác dữ liệu 8
1.1.1 Tổng quan về khai thác dữ liệu 8
1.1.2 Quy trình phát hiện tri thức từ cơ sở dữ liệu 8
1.1.3 Các kỹ thuật khai thác dữ liệu 11
1.1.4 Kiến trúc của hệ thống khai thác dữ liệu 12
1.1.5 Một số ứng dụng của khai thác dữ liệu 12
1.2 Mục tiêu chính của luận văn 13
1.3 Đối tượng nghiên cứu 13
1.4 Phạm vi nghiên cứu 13
1.5 Đóng góp của luận văn 13
1.6 Kết luận chương 14
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 15
2.1 Khai thác tập phổ biến đóng [2] 15
2.1.1 Khái niệm tập phổ biến đóng 15
2.1.2 Các cách tổ chức dữ liệu 17
2.1.3 Các phương pháp khai thác tập phổ biến đóng [14] 18
2.2 Thuật toán khai thác tập phổ biến đóng DCI_PLUS 19
2.2.1 BitTable 19
2.2.2 Một số định nghĩa, tính chất liên quan [12] 19
2.2.3 Thuật toán DCI_PLUS 21
2.2.4 Ví dụ minh họa 25
2.3 Bit-Vector động (DBV) và thuật toán giao hai DBV 26
2.3.1 Bit-Vector động [14] 26
Trang 62.3.2 Thuật toán giao hai DBV [14] 28
2.3.3 Cách tính độ hỗ trợ của DBV 29
2.4 Khai thác top-rank-k mẫu phổ biến 29
2.4.1 Một số định nghĩa về mẫu phổ biến 30
2.4.2 Thuật toán iNTK 31
CHƯƠNG 3: KHAI THÁC TOP-RANK-K TẬP PHỔ BIẾN ĐÓNG 36
3.1 Nêu bài toán 36
3.2 Các định nghĩa 36
3.3 Thuật toán khai thác top-rank-k tập phổ biến đóng 37
3.3.1 Ý tưởng 37
3.3.2 Thuật toán 37
3.3.3 Minh họa thuật toán 42
3.3.4 Cải tiến thuật toán TRK_BitTable 44
CHƯƠNG 4: KẾT QUẢ THỰC NGHIỆM 47
4.1 Cơ sở dữ liệu và môi trường thực nghiệm 47
4.2 So sánh về thời gian thực hiện 47
4.3 So sánh về bộ nhớ sử dụng 50
4.4 Tổng kết chương 53
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 54
5.1 Kết luận 54
5.2 Hướng phát triển 54
TÀI LIỆU THAM KHẢO 56
Trang 7DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Từ viết tắt Tiếng Anh Tiếng Việt
minsup Minimum support Độ hỗ trợ tối thiểu
FCI Frequent Closed Itemset Tập phổ biến đóng DBV Dynamic Bit-Vector Bit-Vector động
Trang 8DANH MỤC CÁC BẢNG
Bảng 2-1: Cơ sở dữ liệu giao dịch D 15
Bảng 2-2 CSDL D biểu diễn theo 2 cách 17
Bảng 2-3 Bảng dữ liệu sử dụng mô tả BitTable cho CSDL D 19
Bảng 2-4 Bảng BitTable biểu diễn dạng thập phân 19
Bảng 2-5 BitTable (mã hóa 32bit) và closure của các item phổ biến được sắp xếp tăng dần theo support 25
Bảng 2-6: Tập phổ biến đóng và độ hộ trợ tương ứng 26
Bảng 2-7: Cho tập dữ liệu ví dụ DB E 31
Bảng 2-8: Hạng (Rank) và độ phổ biến của tất cả các mẫu trong tập DB E 31
Bảng 2-9 Tập hợp các mẫu 1-pattern và tập subsume của chúng trong DB E 34
Bảng 2-10 Kết quả lưu trong Tab k sau bước 2 34
Bảng 2-11: Tập các mẫu 2-pattern ứng viên và subsume index của chúng 35
Bảng 2-12: Kết quả lưu trong Tab k sau bước 3 35
Bảng 2-13: Kết quả cuối cùng lưu trong Tab k 35
Bảng 3-1 Các item, BitTable và support tương ứng trong D 42
Bảng 3-2 Closure của các item 43
Bảng 3-3 Top-rank-k tập phổ biến đóng được sinh ra theo thuật toán TRK_BitTable 44
Bảng 3-4 Các giá trị DBV, closure và support tương ứng 46
Trang 9DANH MỤC HÌNH VẼ, ĐỒ THỊ
Hình 1-1: Quy trình phát hiện tri thức từ cơ sở dữ liệu [5] 9
Hình 1-2 Kiến trúc của một hệ thống khai thác dữ liệu điển hình [5] 12
Hình 2-1: Kết nối Galois [2] 16
Hình 2-2 Thuật toán DCI_PLUS cho khai thác tập phổ biến đóng 22
Hình 2-3 Thuật toán DCI_CLOSED+ [12] được gọi trong DCI_PLUS 24
Hình 2-4: Bit vector dài 40 bytes 27
Hình 2-5: Đại diện DBV cho bit vector 27
Hình 2-6: Ví dụ tính giao giữa hai DBV 28
Hình 2-7: Thuật toán giao 2 DBV [14] 29
Hình 2-8: Bảng tính số bit 1 của các giá trị [14] 29
Hình 2-9 Thuật toán khai thác tập top-rank-k mẫu phổ biến iNTK [6] 34
Hình 3-1 Thuật toán TRK_BitTable, khai thác top-rank-k FCI 39
Hình 3-2 Thuật toán DCI_CLOSED++ 41
Hình 3-3 Thuật toán TRK_DBV 46
Hình 4-1 Thời gian thực thi của TRK_DBV và TRK_BitTable đối với CSDL Accidents 48
Hình 4-2 Thời gian thực thi của TRK_DBV và TRK_BitTable đối với CSDL Chess 49
Hình 4-3 Thời gian thực thi của TRK_DBV và TRK_BitTable đối với CSDL Pumbs 49
Hình 4-4 Bộ nhớ sử dụng của TRK_DBV và TRK_BitTable đối với CSDL Accidents 51
Hình 4-5 Bộ nhớ sử dụng của TRK_DBV và TRK_BitTable đối với CSDL Chess 52
Hình 4-6 Bộ nhớ sử dụng của TRK_DBV và TRK_BitTable đối với CSDL pumbs 52
Trang 10MỞ ĐẦU
1 Lời mở đầu
Khai thác luật kết hợp là một nhiệm vụ cơ bản và rất quan trọng trong khai thác dữ liệu, được ứng dụng trong nhiều lĩnh vực khác nhau như: phân tích thị trường chứng khoán, tài chính, tìm các rối loạn gen trong sinh học… Tuy nhiên, khai thác luật kết hợp từ một cơ sở dữ liệu có kích thước vừa phải cũng đã sinh ra một số lượng lớn các luật Kết quả là, nhiều luật trong số đó là dư thừa, và thực tế chúng trở nên vô dụng Để khắc phục vấn đề này, các phương pháp khai thác luật không dư thừa được đặt ra
Khai thác luật kết hợp từ tập phổ biến đóng sẽ khắc phục được những nhược điểm trên Tập phổ biến đóng (FCI) đóng một vai trò quan trọng trong việc cắt tỉa luật dư thừa
Luận văn tập trung nghiên cứu giải pháp tối ưu cho bài toán khai thác tập phổ biến đóng Dựa trên một số công trình đã nghiên cứu trong lĩnh vực khai thác tập phổ biến đóng đã được công bố trong những năm gần đây, từ đó luận văn trình bày những vấn đề chính sau đây:
- Kỹ thuật khai thác tập phổ biến đóng và hướng tiếp cận mới trong những năm gần đây
- Trình bày thuật toán khai thác tập phổ biến đóng dựa trên mô hình dữ liệu BitTable được đề cập trong thuật toán DCI_PLUS [12]
- Trình bày mô hình dữ liệu DBV [14] được sử dụng trong cho quá trình khai thác tập phổ biến đóng
- Đề xuất thuật toán khai thác top-rank-k tập phổ biến đóng dựa vào cách tiếp
cận của thuật toán DCI_PLUS với 2 thuật toán đề xuất là TRK_BitTable và TRK_DBV
- Kết quả thực nghiệm trên một số cơ sở dữ liệu để so sánh và rút ra kết luận
về việc áp dụng hai mô hình dữ liệu vào thuật toán đề xuất
2 Bố cục đề tài
Chương 1: Tổng quan
Trang 11Chương 2: Cơ sở lý thuyết
Chương 3: Khai thác top-rank-k tập phổ biến đóng
Chương 4: Kết quả thực nghiệm
Chương 5: Kết luận và hướng phát triển
Luận văn trình bày trong 5 chương Chương 1 giới thiệu tổng quan về khai thác dữ liệu (data mining), một số kỹ thuật khai thác dữ liệu và ứng dụng của khai thác dữ liệu; đồng thời trình bày hướng nghiên cứu, phạm vi nghiên cứu và đóng góp của luận văn Chương 2 trình bày cơ sở lý thuyết của bài toán khai thác tập phổ
biến đóng và bài toán khai thác top-rank-k tập phổ biến đóng Chương 3 trình bày chi tiết hai phương pháp khai thác top-rank-k tập phổ biến đóng được đề xuất dựa
trên thuật toán DCI_PLUS bằng việc sử dụng hai mô hình dữ liệu khác nhau là chuỗi bit động và BitTable Kết quả thực nghiệm triển khai trên CSDL tổng hợp IBM được mô tả trong chương 4 Chương 5 trình bày kết luận chung và định hướng phát triển của đề tài Cuối cùng, phần tham khảo trình bày các bài báo, sách được tham khảo, trích dẫn trong luận văn
Trang 12CHƯƠNG 1: TỔNG QUAN 1.1 Khai thác dữ liệu
1.1.1 Tổng quan về khai thác dữ liệu
Khai thác dữ liệu (KTDL) được định nghĩa như là một quá trình trích xuất hay khai thác tri thức từ một lượng lớn dữ liệu Một ví dụ hay được sử dụng là việc khai thác vàng từ đá và cát, KTDL được ví như công việc "đãi cát tìm vàng" trong một tập hợp lớn các dữ liệu cho trước Thuật ngữ KTDL được hiểu như việc tìm kiếm một tập hợp nhỏ có giá trị từ một số lượng lớn các dữ liệu thô Có nhiều thuật ngữ hiện được dùng cũng có nghĩa tương tự với từ KTDL như khai thác tri thức (knowledge mining) , rút trích tri thức (knowledge extraction), phân tích dữ liệu/mẫu (data/patern analysis), khảo cổ dữ liệu (data archaeoloogy)), nạo vét dữ liệu (data dredging), v.v.[5]
1.1.2 Quy trình phát hiện tri thức từ cơ sở dữ liệu
Sự phát triển nhanh chóng của một lượng lớn dữ liệu được thu thập và lưu trữ trong các CSDL lớn đã vượt ra ngoài khả năng của con người để có thể hiểu được chúng nếu không có những công cụ hỗ trợ tốt Tình huống này đã đặt chúng ta trong hoàn cảnh có nhiều dữ liệu nhưng thiếu thông tin, thiếu tri thức Với một khối lượng lớn dữ liệu như vậy rõ ràng là các phương pháp thủ công truyền thống áp dụng để phân tích dữ liệu không còn phù hợp nữa Do vậy, khai thác dữ liệu (KTDL) nhằm phát hiện các tri thức mới giúp ích cho hoạt động của con người đã trở thành một lĩnh vực quan trọng của ngành Công nghệ thông tin
Khai thác dữ liệu được sử dụng để tự động khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ liệu khổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập dữ liệu đó Khai thác dữ liệu là một trong bảy bước của quá trình khám phá tri thức trong hình 1.1
Trang 13Hình 1-1: Quy trình phát hiện tri thức từ cơ sở dữ liệu [5]
- Làm sạch dữ liệu: Loại bỏ dữ liệu nhiễu hoặc dữ liệu không cần thiết
- Tích hợp dữ liệu: Quá trình hợp nhất dữ liệu thành những kho dữ liệu sau khi đã làm sạch và tiền xử lý
- Trích chọn dữ liệu: Chọn những dữ liệu liên quan trực tiếp đến nhiệm vụ
- Chuyển đổi dữ liệu: Các dữ liệu được chuyển đổi sang các dạng phù hợp cho quá trình xử lý
- Khai thác dữ liệu: Là một trong các bước quan trọng nhất, trong đó sử dụng những phương pháp thông minh để trích lọc ra những mẫu dữ liệu
- Ước lượng mẫu: Quá trình đánh giá các kết quả tìm được thông qua các độ
đo nào đó
- Biểu diễn tri thức: Quá trình này sử dụng các kỹ thuật để biểu diễn và thể
hiện trực quan cho người dùng
1.1.2.1 Xác định vấn đề
Trong thực tế, các cơ sở dữ liệu được chuyên môn hóa và phân chia theo các lĩnh vực khác nhau như sản phẩm, kinh doanh, tài chính,… Vì vậy mà việc xác định
Trang 14lĩnh vực và định nghĩa bài toán giúp định hướng cho giai đoạn tiếp theo thu thập và tiền xử lý dữ liệu
1.1.2.2 Thu thập và tiền xử lý dữ liệu
Các cơ sở dữ liệu thu được thường chứa rất nhiều thuộc tính nhưng lại không đầy đủ, không thuần nhất, có nhiều lỗi và các giá trị đặc biệt Vì vậy, giai đoạn thu thập và tiền xử lý dữ liệu trở nên rất quan trọng trong quá trình phát hiện tri thức từ
cơ sở dữ liệu Người ta chia giai đoạn thu thập và tiền xử lý dữ liệu thành các công đoạn như sau:
1.1.2.4 Minh họa và đánh giá
Các tri thức phát hiện từ cơ sở dữ liệu cần được tổng hợp dưới dạng các báo cáo phục vụ cho các mục đích hỗ trợ quyết định khác nhau
1.1.2.5 Đưa kết quả vào thực tế
Các kết quả của quá trình phát hiện tri thức có thể được đưa vào ứng dụng trong những lĩnh vực khác nhau Do các kết quả có thể là các dự báo hoặc các mô tả nên chúng có thể được đưa vào các hệ thống hỗ trợ ra quyết định nhằm tự động hóa quá trình này
Trang 151.1.3 Các kỹ thuật khai thác dữ liệu
Khai thác dữ liệu có đặc tính riêng của nó và thực hiện theo các bước trong quá trình khai thác tri thức Sau đây là các kỹ thuật khai thác dữ liệu thường được
sử dụng phổ biến trong ứng dụng khai thác dữ liệu:
1.1.3.1 Khai thác dữ liệu dự đoán
Nhiệm vụ của KTDL dự đoán là đưa ra các dự đoán dựa vào các suy diễn trên
cơ sở dữ liệu hiện thời Bao gồm các kỹ thuật: Phân loại (Classification); hồi qui (Regression)
a) Phân loại
Mục tiêu của phương pháp phân loại dữ liệu là dự đoán nhãn lớp cho các mẫu
dữ liệu Quá trình phân loại dữ liệu thường gồm hai bước: xây dựng mô hình và sử dụng mô hình để phân loại dữ liệu
Bước 1: Xây dựng mô hình dựa trên việc phân tích các mẫu dữ liệu cho trước Bước 2: Sử dụng mô hình để phân loại dữ liệu Hay nói các khác, phân loại là học một hàm ánh xạ một mục dữ liệu vào trong số các lớp cho trước
b) Hồi quy
Phương pháp hồi quy khác với phương pháp phân loại dữ liệu ở chỗ, hồi qui dùng để dự đoán về các giá trị liên tục còn phân loại dữ liệu chỉ dùng để dự đoán về các giá trị rời rạc Hồi quy là một hàm học ánh xạ mục dữ liệu thành một biến dự đoán có giá trị thực
1.1.3.2 Khai thác dữ liệu mô tả
Kỹ thuật này có nhiệm vụ mô tả về các tính chất hoặc các đặc tính chung của
dữ liệu trong CSDL hiện có Bao gồm các kỹ thuật: phân cụm; khai thác luật kết hợp,
a) Phân cụm
Mục tiêu chính của phương pháp phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một
Trang 16cụm là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng
b) Khai thác luật kết hợp
Mục tiêu của phương pháp này là phát hiện và tìm ra các mối liên hệ giữa các giá trị trong cơ sở dữ liệu Kết quả là tìm ra tập luật kết hợp
1.1.4 Kiến trúc của hệ thống khai thác dữ liệu
Kiến trúc điển hình của một hệ thống KTDL được trình bày trong hình 1.2
Hình 1-2 Kiến trúc của một hệ thống khai thác dữ liệu điển hình [5]
1.1.5 Một số ứng dụng của khai thác dữ liệu
- Tài chính và thị trường chứng khoán: Phân tích tình hình tài chính và dự báo giá của các loại cổ phiếu trong thị trường chứng khoán Danh mục giá, lãi suất, phát hiện gian lận
- Thông tin sản xuất: Điều khiển và lập kế hoạch, hệ thống quản lý, phân tích kết quả thử nghiệm
- Thông tin khoa học: dự báo thời tiết, CSDL sinh học (ngân hàng gen), khoa học địa lý (dự báo động đất)
Trang 17- Điều trị y học và chăm sóc y tế: Một số thông tin về chuẩn đoán bệnh được lưu trong các hệ cơ sở dữ liệu bệnh án Phân tích mối liên hệ giữa các triệu chứng của bệnh để chuẩn đoán và đề nghị phương pháp điều trị
- Ngoài ra còn nhiều lĩnh vự khác như: marketing, ngân hàng, viễn thông, du lịch, internet,…
1.2 Mục tiêu chính của luận văn
Mục tiêu chính của luận văn là tìm hiểu bài toán khai thác tập phổ biến đóng
(FCI) bằng thuật toán DCI_PLUS[12], thuật toán về khai thác Top-rank-k tập phổ biến iNTK[6] Đề xuất hai thuật toán khai thác top-rank-k tập phổ biến đóng dựa
trên thuật toán DCI_PLUS với hai mô hình dữ liệu khác nhau là BitTable[1,12] và DBV[14], sau đó tiến hành thực nghiệm trên hai thuật toán để so sánh đánh giá tính hiệu quả
1.3 Đối tượng nghiên cứu
Nghiên cứu các công trình liên quan đến khai thác tập phổ biến đóng đã có Tập trung đi sâu vào nghiên cứu vấn đề khai thác tập phổ biến đóng của giải thuật DCI_PLUS
Ngoài ra, nghiên cứu các công trình và giải thuật khai thác top-rank-k tập phổ
biến
1.4 Phạm vi nghiên cứu
Đề tài chỉ xét trên bài toán khai thác FCI dựa vào thuật toán DCI_PLUS
Thuật toán khai thác top-rank-k FCI tự đề xuất và cải tiến tiến thuật toán đề xuất
dựa trên hai mô hình dữ liệu khác nhau Tiến hành cài đặt thực nghiệm trên các bộ
cơ sở dữ liệu chuẩn để kiểm chứng kết quả thực thi
1.5 Đóng góp của luận văn
Để khai thác FCI, một tham số cần được xác định là độ hỗ trợ tối thiểu
(minSup) Việc khai thác top-rank-k tập phổ biến đóng nhằm phục vụ cho các truy
vấn là cần thiết Tuy nhiên, nếu chúng ta dựa vào FCI đã được khai thác để truy vấn
top-rank-k này sẽ gặp phải hai vấn đề lớn: 1) Nếu minSup lớn, số lượng FCI sinh ra
có thể không đủ lọc ra top-rank-k khi k lớn 2) Khi minSup quá nhỏ dẫn đến số
Trang 18lượng FCI quá lớn, tốn thời gian khai thác và không gian lưu trữ Làm thế nào để có
thể trực tiếp khai thác top-rank-k tập phổ biến đóng mà không cần dựa vào ngưỡng
độ hỗ trợ tối thiểu là một việc làm cấp thiết, góp phần nâng cao hiệu quả khai thác
Tác giả đã đề xuất hai thuật toán khai thác top-rank-k FCI TRK_BitTable và
TRK_DBVlà cải tiến của thuật toán TRK_BitTable, giúp cải thiện đáng kể về thời
gian và bộ nhớ trong khai thác top-rank-k tập phổ biến đóng
1.6 Kết luận chương
Chương mở đầu đã giới thiệu tổng quan về mục tiêu và đối tượng của khai thác dữ liệu Với những ưu điểm của khai khác dữ liệu đã mang đến những ứng dụng phổ biến và rộng rãi trong nhiều lĩnh vực khác nhau, phục vụ nhu cầu ngày càng cao của con người Bên cạnh đó với sự phát triển nhanh chóng của công nghệ
sẽ thúc đẩy và cho ra đời nhiều thuật toán mới tối ưu hơn các thuật toán đã có và hỗ trợ người dùng tốt hơn trong việc ra những quyết định mang tính chiến lược Trong chương này cũng giới hạn phạm vi nghiên cứu của đề tài là đề xuất thuật toán khai
thác top-rank-k tập phổ biến đóng dựa trên thuật toán khai thác FCI là DCI_PLUS
sau đó tiến hành cải tiến thuật toán đã đề xuất Trong các chương tiếp theo sẽ đi sâu vào tìm hiểu các kỹ thuật sẽ được sử dụng
Trang 19CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Khai thác tập phổ biến đóng [2]
2.1.1 Khái niệm tập phổ biến đóng
Định nghĩa về dữ liệu giao dịch:
Cho I = {i 1 , i 2 ,…, i n } là tập tất cả các mục dữ liệu (ItemSet) T = {t 1 , t 2 , …, t m }
là tập tất cả các giao dịch (Transactions) trong CSDL giao dịch D CSDL được cho
là quan hệ hai ngôi I T Nếu mục i I xảy ra trong giao dịch t T thì ta viết
Cho CSDL giao dịch D và tập dữ liệu X I Độ hỗ trợ của một itemset X, kí
hiệu sup(X), chính là số các giao tác trong D có chứa X
Định nghĩa tập phổ biến:
Cho X là một itemset, X được gọi là tập phổ biến nếu sup(X) ≥ minsup, trong
đó minsup là ngưỡng độ hỗ trợ tối thiểu do người dùng xác định Nhiệm vụ chính của quá trình khai thác tập phổ biến là tìm tất cả các itemset trong CSDL có độ hỗ trợ lớn hơn hoặc bằng minsup
Trang 20Kết nối Galois:
Cho quan hệ hai ngôi I T chứa CSDL cần khai thác Đặt: X I và Y T
Với P(S) gồm tất cả các tập con của S Ta định nghĩa hai ánh xạ giữa P(I) và P(T)
được gọi là kết nối Galois như sau:
giao dịch Y và i(Y) là i(Y) Y
Ví dụ: t(AEF) = t(A) t(E) t(F) = 17 124578910 124578910 = 17
Hình 2-1: Kết nối Galois [2]
Định nghĩa toán tử đóng:
Cho: X I và ánh xạ c: P(I) P(I) với c(X) = i(t(X)) Ánh xạ c được gọi là
toán tử đóng
Ví dụ: xét CSDL được cho trong bảng 2-1 ta có
c(BEF) = i(t(BEF)) = i(48) = BEF
c(AEF) = i(t(AEF)) = i(17) = ACEFG
Trang 21Định nghĩa tập đóng:
Cho X I X được gọi là tập đóng khi và chỉ khi c(X) = X X được gọi là tập
phổ biến đóng nếu X phổ biến và X là tập đóng
Bổ đề 2.1 [12]: Cho một itemset X và một item i ∈ I, t(X) ⊆ t (i) ⇔ i ∈ c(X)
Ví dụ: xét CSDL được cho trong bảng 2-1 ta có:
Do: c(BEF) = i(t(BEF)) = i(48) = BEF BEF là tập đóng
Do: c(AEF) = i(t(AEF)) = i(17) = ACEFG AEF không phải là tập đóng
2.1.2 Các cách tổ chức dữ liệu
Có hai dạng tổ chức dữ liệu cơ bản:
- Dạng biểu diễn ngang: Dữ liệu được tổ chức theo chiều ngang, mỗi hàng đại diện cho dãy sự kiện (event) tương ứng với từng giao dịch
- Dạng biểu diễn dọc: Dữ liệu được tổ chức theo chiều dọc, mỗi hàng đại diện cho dãy đối tượng tương ứng với sự kiện
Ví dụ: Xét CSDL D được cho trong bảng 2-1 ta có:
Bảng 2-2 CSDL D biểu diễn theo 2 cách
Mã giao dịch Mã danh mục
trong các giao dịch
Mã danh mục Các giao dịch chứa
Trang 22Trong hai cách tổ chức dữ liệu theo chiều dọc và ngang, thao tác đếm độ hỗ trợ cho một danh mục ở CSDL được tổ chức theo chiều dọc đơn giản và nhanh hơn Bởi vì theo cách tổ chức này, ta lấy được ngay các giao dịch ứng với danh mục mà không phải duyệt toàn bộ CSDL Hơn nữa, đối với CSDL lớn, việc tổ chức theo chiều dọc mang tính cô đọng, giúp thực thi nhanh hơn và cho phép lặp lại việc tìm các tập biến một cách dễ dàng Tuy nhiên, dữ liệu gốc ban đầu thường được tổ chức theo chiều ngang, nếu muốn tổ chức theo chiều dọc phải có bước tiền xử lý để chuyển đổi
2.1.3 Các phương pháp khai thác tập phổ biến đóng [14]
Có rất nhiều thuật toán khai thác FCI đã được đề xuất Có thể chia ra làm 4 loại sau [7, 17]:
(i) Phương pháp sinh và kiểm tra: Chủ yếu dựa trên thuật toán Apriori và sử dụng các phương pháp tiếp cận level-wise để khai thác FCI Ví dụ như Close [9] và A-Close [10]
(ii) Phương pháp chia để trị: Chọn chiến lược chia để trị và sử dụng cấu trúc
dữ liệu thu gọn được mở rộng từ cây mẫu phổ biến để khai thác Ví dụ như Closet [11], Closet+ [17] và FPClose [4]
(iii) Phương pháp lai: Kết hợp hai chiến lược ở trên để khai thác FCI Đầu tiên chuyển cơ sở dữ liệu thành định dạng dữ liệu theo chiều dọc Những phương pháp này phát triển những thuộc tính và sử dụng bảng băm để cắt tỉa tập chỉ mục không đóng CHARM [19] và CloseMiner [13] sử dụng phương pháp này
(iv) Phương pháp lai không trùng lặp: Phương pháp này khác phương pháp lai trên ở chỗ nó không sử dụng kỹ thuật subsumption-checking, như vậy FCI không cần lưu trong bộ nhớ chính Chúng không sử dụng kỹ thuật bảng băm như CHARM [19] DCI-Close [8] cũng thuộc vào phương pháp này
Trang 232.2 Thuật toán khai thác tập phổ biến đóng DCI_PLUS
2.2.1 BitTable
BitTable [1]là tập các số nguyên mà sự hiện diện của nó biểu thị cho các item Nếu item thứ i xuất hiện trong giao tác t thì bit thứ i của t trong BitTable sẽ mang giá trị 1, ngược lại sẽ mang giá trị 0 Với dữ liệu được nén, thì BitTable được sử dụng theo chiều dọc Nếu kích cỡ (số giao tác) của item là S, kích cỡ của cơ sở dữ liệu là lớn hơn kích cỡ W của bộ nhớ thì kích cỡ của mảng BitTable sẽ là: 𝑊𝑆 + 1
được sử dụng để lưu trữ dữ liệu nén
Ví dụ: Xét CSDL D được cho trong bảng 2-1 ta có:
Dữ liệu được nén vào bảng BitTable như sau
Bảng 2-3 Bảng dữ liệu sử dụng mô tả BitTable cho CSDL D
hạn, xét item A, ta có dãy bit là 1000001000, nghĩa là cần 2 byte để lưu dãy bit này trong đó byte đầu chứa giá trị là 130 và byte thứ 2 chứa giá trị 0
Bảng 2-4 Bảng BitTable biểu diễn dạng thập phân
A B C D E F G H I J
130 17 129 88 219 219 190 229 32 0
2.2.2 Một số định nghĩa, tính chất liên quan [12]
Định Nghĩa 2.1: BitTable[X] ⊆ BitTable[Y] nếu và chỉ nếu BitTable[X] ∧
BitTable[Y] = BitTable[X]
Trang 24Định nghĩa 2.2: (Subsumption) Một item i được subsumed bởi một itemset X
nếu i∈ X và c(i) = X Ký hiệu tập subsumed của i là Si và gọi S i là subsumed của i
Định nghĩa 2.3: Cho Y là một tập phổ biến đóng và J là tập subsumed, với J ⊈
hoặc J ≺ c(Y ∪ J) \ Y ∪ J
Định nghĩa 2.4: Cho một gen = Y ∪ J, trong đó Y là một tập phổ biến đóng và
nghĩa là POST_SET (gen) = {K ⊆ I | K ⊈ gen và J ≺ K}
Định lý 2.1: Đối với mỗi 𝑖𝑡𝑒𝑚𝑠𝑒𝑡 đóng 𝑌̅ = c(∅), tồn tại một chuỗi n subsumed itemset Si 0≺ Si 1 ≺ ≺ Si n-1 , n ≥ 1.Với Gen 0 , gen 1 , , Gen n-1 =Y 0 ∪
Y 0 = c(∅), ∀ j ∈ [0, n - 1], Y j + 1 = c(Y j∪ S j ) , và Y n = 𝑌̅
Hệ quả 2.1: Với mỗi itemset đóng Y̅ c (∅), chuỗi tập sinh có thứ tự trong định lý 2.1 là duy nhất
Định lý 2.2: Cho gen = Y ∪ J, trong đó Y là một itemset đóng, và J là một
Định lý 2.3: S j là một subsumed itemset của item j với supp (S j ) = minsup, với
S j’ là một FCI
Chứng minh [12] Chứng minh định lý này theo phương pháp phản chứng
Giả sử có tồn tại một item j’ mà j ≺ j’ và j’ S j, S j∪ S j’ là một FCI Hàm t là một hàm đơn điệu giảm Nếu S j⊂ S j∪ S j’ , t(S j ∪ S j) ⊆ t(S j) Như vậy, supp(S j∪ S j ) ≤
Kết quả là, nếu supp(S j∪ S j’ ) = supp(S j ), ta có supp(S j∪ S j’ ) = minsup Điều này có
nghĩa là:
Trang 25Hệ quả 2.2: Cho X là một FCI với supp(X) = minsup, với minsup là ngưỡng
hỗ trợ tối thiểu Không tồn tại item j X để X ∪ j là một FCI
Hệ quả 2.3: Một subsumed itemset X của một item phổ biến hoặc là một FCI
hoặc một itemset phổ biến
2.2.3 Thuật toán DCI_PLUS
Thuật toán DCI_PLUS [12] là một cải tiến của thuật toán DCI_CLOSED [8] Thuật toán này sinh ra tập phổ biến đóng và tập sinh tối tiểu nhỏ nhất của mỗi
itemset đóng Mục đích làm giảm chi phí tính toán cho khai thác FCI Vì vậy, phải
đảm bảo rằng số lượng tập con được kiểm tra cũng như tính closure là nhỏ nhất Vì
DCI_CLOSED dựa trên Tidlist, với mỗi item, Tidlist có thể khá dài và mất nhiều không gian bộ nhớ cũng như thời gian tính toán cho việc giao với Tidlist khác Để giảm kích thước của những Tidlist dài cũng như chi phí sau đó của phép giao, thuật toán DCI_PLUS sử dụng kỹ thuật BitTable Khi DCI_CLOSED tìm thấy FCI bằng cách mở rộng một tập sinh với itemset phổ biến, kết quả là nhiều tập con hơn được kiểm tra Hơn nữa, để giảm chi phí kiểm tra tập con trong Tidlist, mục đích của thuật toán DCI_PLUS là lấy closure của những item phổ biến đặt ở POST_SET thay vì những item phổ biến Vì vậy hiệu quả của thuật toán đạt được vì đã tính
closure từ đầu cho những item phổ biến và chỉ phụ thuộc vào bản chất tự nhiên của
dữ liệu vào
Trong giới hạn, luận văn chỉ xét trường hợp sinh ra tập phổ biến đóng của thuật toán chứ không xét tới tập sinh tối tiểu được sinh kèm, do đó phần mã giả của thuật toán so với nguyên bản đã được rút gọn phần sinh tập sinh tối tiểu
Trang 26Thuật toán DCI_PLUS:
Input Dataset D, minsup
Output: Tất cả tập phổ biến đóng thỏa minsup và support của
chúng
1 for each transaction t D do
2 for each item i t do
3 BitMatrix[i][t] =1;
4 end for
5 end for
6 F 1 item phổ biến
7 Chuyển BitMatrix sang BitTable
8 Sắp xếp F 1 theo chiều tăng support và thứ tự từ điển
(bước 9 -17 tính closure của các item phổ biến)
9 for each item i F1 do
10 S i = S i {i}; {khởi tạo Si rỗng}
11 for each item j F1 với i ≺ j do
12 if(BitTable[i] BitTable[j]) then
Hình 2-2 Thuật toán DCI_PLUS cho khai thác tập phổ biến đóng [12]
Dựa trên những phân tích trên, thuật toán DCI_PLUS [12] tích hợp các kỹ thuật được sử dụng trong DCI_CLOSED ở các giai đoạn khác nhau Trong bước đầu tiên, sau khi tìm thấy các item phổ biến, tiến hành tính closure cho mỗi item phổ biến này Lấy closure của các item phổ biến làm đầu vào cho DCI_CLOSED+
Trang 27Đầu tiên, cơ sở dữ liệu D được duyệt qua để xây dựng BitTable và xác định các item đơn (1 item) phổ biến F 1 ⊆ I Các item không phổ biến bị loại bỏ và các item phổ biến được sắp xếp theo thứ tự tăng dần của độ hỗ trợ Nếu hai item phổ
biến cùng độ hỗ trợ thì sẽ được sắp xếp theo thứ tự từ điển Sau đó, tạo ra
POST_SET bằng cách tính closure của mỗi item đơn phổ biến Thủ tục
DCI_CLOSED+ được gọi với input là CLOSED_SET = ∅, PRE_SET = ∅ và POST_SET
Thuật toán DCI_CLOSED +
Input CLOSED_SET,PRE_SET, POST_SET, minsup
Output: Tất cả tập phổ biến đóng thỏa minsup
Trang 2820 end if
21 end for
22 Save CLOSED_SETnew, supp (CLOSED_SETNEW);
23 if(supp(newgen)> minsup) then
24 call DCI_CLOSED+(CLOSED_SETNEW,PRE_SET,
32 Function is_dup(newgen) {kiểm tra trùng lặp}
33 for each itemset I PRE_SET do
34 if BitTable(newgen)BitTable(I) then
Hình 2-3 Thuật toán DCI_CLOSED+ [12] được gọi trong DCI_PLUS
Thủ tục DCI_CLOSED+ thực hiện lấy ra phần tử đầu tiên trên POST_SET và
lưu trữ itemset này trong một biến tạm Nếu độ hỗ trợ của itemset này bằng ngưỡng
hỗ trợ tối thiểu và CLOSED_SET hiện tại rỗng, việc sinh tập mới không được tiến hành và itemset lấy ra được xác định là tập phổ biến đóng, nếu nó đáp ứng tính có
thứ tự (order- preserving) Nếu độ hỗ trợ của itemset lấy ra lớn hơn ngưỡng hỗ trợ tối thiểu, tập sinh mới được hình thành bằng cách kết hợp itemset được lấy ra với
CLOSED_SET hiện tại và độ hỗ trợ tương ứng được xác định Tập sinh mới được kiểm tra trùng lặp nếu độ hỗ trợ của nó lớn hơn hoặc bằng với độ hỗ trợ tối thiểu Nếu tập sinh mới không phổ biến và không có thứ tự, sẽ bị loại bỏ mà không cần
tính closure FCI được hình thành bằng cách tính closure của nó Các itemset không
Trang 29là CLOSED_SET hiện tại, được thêm vào POST_SETnew Thủ tục gọi đệ quy với các đối số mới: CLOSED_SETnew, PRE_SET, POST_SETnew.
2.2.4 Ví dụ minh họa
Cho CSDL D trong bảng 2-1 gồm 10 transaction và 10 item, giả sử ngưỡng hỗ
trợ tối thiểu là 20% Sau khi duyệt qua CSDL, BitTable của những item phổ biến
được cho trong bảng 2-5
Bảng 2-5 BitTable (mã hóa 32bit) và closure của các item phổ biến được sắp xếp
tăng dần theo support
Item Closure bitTable Support
mỗi item phổ biến Để rõ ràng hơn, chúng ta xét item A Item i mà A ≺ i ∈ F1 là B,
C, D, H, E, F, G Chúng ta thấy rằng BitTable [A] là một tập con của BitTables C,
E, F, G bởi định nghĩa 2.1 Do đó, A được gộp vào itemset ACEFG, itemset này sẽ
có BitTable giống A Tương tự tìm closure của tất cả các item phổ biến còn lại Kết quả POST_SET = {ACEFG, BEF, CEFG, DEF, H, EF, F, G} Chi tiết các item phổ biến, độ hỗ trợ, closure và giá trị BitTable của chúng được đưa ra trong
Bảng 2-5
Thủ tục DCI_CLOSED+ được gọi với đối số là: PRE_SET = ∅, POST_SET và CLOSED_SET = ∅ Phần tử đầu tiên ACEFG của POST_SET được lấy ra và gán cho I PRE_SET rỗng, độ hỗ trợ của ACEFG bằng minsup, vì vậy nó là một FCI và không cần phải tính closure của nó Sau đó ACEFG được thêm vào PRE_SET Tương tự như vậy, BEF là phần tử đầu tiên của POST_SET được gán cho I Độ hỗ trợ của BEF bằng minsup, và giá trị BitTable BEF không là tập con của các giá trị
Trang 30BitTable itemset ACEFG ở PRE_SET Nó là một FCI và thêm vào PRE_SET Tiếp
theo, itemset CEFG được xử lý Độ hỗ trợ của CEFG bằng minsup, và giá trị
BitTable của nó là một tập con của BitTable itemset ACEFG ở PRE_SET Do đó, nó
được cắt tỉa, và không được tính closure Khi DEF được xử lý, độ hỗ trợ của nó lớn hơn so với minsup, và giá trị BitTable không là tập con của các giá trị BitTable của bất kỳ itemset nào ở PRE_SET Giá trị BitTable của DEF không là tập con của bất
kỳ giá trị BitTable của itemset J ⊈ DEF với DEF ≺ J DEF là một FCI và thủ tục
DCI_CLOSED+ được gọi đệ quy bằng đối số mới PRE_SET = {ACEFG, BEF},
CLOSED_SETnew = DEF, POST_SET new = {H, G} EF và F không ở
POST_SETnew vì chúng thuộc về CLOSED_SET Khi CLOSED_SET khác rỗng,
DEF được kết hợp với H để tạo thành Newgen là DEFH Tương tự, ta có DEFH là
một FCI Thủ tục gọi đệ quy với đối số PRE_SET = {ACEFG, BEF},
CLOSED_SETnew = DEFH, POST_SET new = {G} Bây giờ, CLOSED_SET khác rỗng, và tập sinh DEFHG được hình thành Vì không có itemset trong PRE_SET mà
BitTable của DEFHG là tập con vì vậy nó là một FCI và POST_SET rỗng Vì vậy, DEF được thêm vào PRE_SET Việc thi hành trở lại với DEF kết hợp với G để hình
thành DEFG, và lặp lại các thủ tục tương tự, ta có DEFG là một FCI Sau quá trình này, thuật toán bắt đầu từ Newgen là H, và các thủ tục lặp đi lặp lại tương tự để sinh
ra tất cả các FCI và độ hỗ trợ tương ứng Kết quả được cho trong bảng 2-6
HEF HEFG
HG
EF EFG
G
0.5 0.3 0.5 0.8 0.6 0.8
2.3 Bit-Vector động (DBV) và thuật toán giao hai DBV
2.3.1 Bit-Vector động [14]
Bit-Vector của mỗi itemset luôn chiếm kích thước cố định tương ứng với số
lượng giao dịch trong cơ sở dữ liệu, do đó, nó tiêu tốn nhiều bộ nhớ và thời gian