Tải bản đầy đủ (.pdf) (61 trang)

KHAI THÁC TOP RANK k tập PHỔ BIẾN ĐÓNG

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (6.72 MB, 61 trang )

ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN


TRỊNH ĐỒNG THẠCH TRÚC

KHAI THÁC TOP-RANK-K
TẬP PHỔ BIẾN ĐÓNG

LUẬN VĂN THẠC SĨ
NGÀNH KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01

TP HỒ CHÍ MINH – NĂM 2015


ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN


TRỊNH ĐỒNG THẠCH TRÚC

KHAI THÁC TOP-RANK-K
TẬP PHỔ BIẾN ĐÓNG

LUẬN VĂN THẠC SĨ
NGÀNH KHOA HỌC MÁY TÍNH
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


LỜ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


LỜ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


MỤ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:
1.1

TỔNG QUAN ..................................................................................8

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


CƠ SỞ LÝ THUYẾT.....................................................................15

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


2.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

-2-


DANH 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

CSDL

Dataset

Cơ sở dữ liệu

minsup


Minimum support

Độ hỗ trợ tối thiểu

Sup

Support

Độ hỗ trợ

DM/KTDL

Data Mining

Khai thác dữ liệu

FCI

Frequent Closed Itemset

Tập phổ biến đóng

DBV

Dynamic Bit-Vector

Bit-Vector động

-3-



DANH 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ụ DBE ........................................................................31
Bảng 2-8: Hạng (Rank) và độ phổ biến của tất cả các mẫu trong tập DBE. ..............31
Bảng 2-9 Tập hợp các mẫu 1-pattern và tập subsume của chúng trong DBE ...........34
Bảng 2-10. Kết quả lưu trong Tabk 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 Tabk sau bước 3 .........................................................35
Bảng 2-13: Kết quả cuối cùng lưu trong Tabk ..........................................................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

-4-


DANH 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

-5-


MỞ ĐẦ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
-6-


Chươ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.

-7-


CHƯƠ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.

-8-


Hì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
-9-


lĩ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:
- Chọn lọc dữ liệu.
- Làm sạch dữ liệu.
- Làm giàu dữ liệu.
- Mã hóa.
1.1.2.3 Khai thác dữ liệu
Giai đoạn khai thác dữ liệu được bắt đầu sau khi dữ liệu đã được thu thập và
tiến hành xử lý. Trong giai đoạn này, công việc chủ yếu là xác định được bài toán
khai thác dữ liệu, tiến hành lựa chọn phương pháp khai thác phù hợp với dữ liệu có
được và tách ra các tri thức cần thiết.
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.


-10-


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

-11-


cụ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).
-12-


- Đ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ố
-13-


lượ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_DBV là 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.

-14-


CHƯƠ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 = {i1, i2,…, in} là tập tất cả các mục dữ liệu (ItemSet). T = {t1, t2, …, tm}
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
là: (i, t)   , kí hiệu: it.
Ví dụ: xét CSDL sau:
Bảng 2-1: Cơ sở dữ liệu giao dịch D
Transactions
1

2
3
4
5
6
7
8
9
10

Items
A, C, E, F, G, H
D, E, F, H
G, H, I
B, D, E, F, G
D, E, F, G
G, H
A, C, E, F, G
B, E, F, H
D, E, F, G, H
D, E, F, G, H, J

Giao dịch thứ ba có thể được biểu diễn là {G3, H3, I3}.
Định nghĩa độ hỗ trợ:
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.
-15-


Kế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:
a. t: P(I) ↦ P(T), t(X) ={y T| x X, xy}
b. i: P(T) ↦ P(I), i(Y) ={x I| y Y, xy}
Hình 2-1 Minh họa hai ánh xạ (a) và (b), trong đó ánh xạ t(X) là tập tất cả các
giao dịch có chứa itemset X (hay còn gọi là Tidset của Itemset (X) và i(Y) là tập tất
cả các mục dữ liệu có trong tất cả các giao dịch trong Y. Kí hiệu itemset X và tập các
giao dịch tương ứng với nó t(X) là: X  t(X) và được gọi là IT-pair. Tương tự với tập
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
i(123) =i(1)  i(2)  i(3) = ACEFGH  DEFH  GHI = H

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.

-16-


Đị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
Biểu diễn ngang

Biểu diễn dọc

Mã giao dịch Mã danh mục
trong các giao

Mã danh mục

Các giao dịch chứa

1

E,
A, F, G, C, H
dịch


A

1, 7

2

E, F, D, H

B

4, 8

3

G, I, H

C

1, 7

4

E, F, B, G, D

D

2, 4, 5, 9, 10

5


E, F, G, D

E

1, 2, 4, 5, 7, 8, 9, 10

6

G, H

F

1, 2, 4, 5, 7, 8, 9, 10

7

E, A, F, G, C

G

1, 3, 4, 5, 6, 7, 9, 10

8

E, F, B, H

H

1, 2, 3, 6, 8, 9, 10


9

E, F, G, D, H

I

3

10

E, F, G, D, J, H

J

10

danh mục

-17-


Trong 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.

-18-


2.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

Tid
1
2
3
4
5
6
7
8
9
10

A
1
0
0
0
0
0
1

0
0
0

B
0
0
0
1
0
0
0
1
0
0

C
1
0
0
0
0
0
1
0
0
0

D
0

1
0
1
1
0
0
0
1
1

E
1
1
0
1
1
0
1
1
1
1

F
1
1
0
1
1
0
1

1
1
1

G
1
0
1
1
1
1
1
0
1
1

H
1
1
1
0
0
1
0
1
1
1

I
0

0
1
0
0
0
0
0
0
0

J
0
0
0
0
0
0
0
0
0
1

Bảng 2-4 là biểu diễn thập phân của các item của dữ liệu trên bảng 2-3. Chẳng
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
130
0


B
17
0

C D E
F
G
H I
129 88 219 219 190 229 32
0
3
3
3
3
3
0

J
0
1

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].
-19-


Đị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 Si 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 ⊈

Y. khi đó, Y ∪ J được gọi là đảm bảo thứ tự (order preserving) nếu c(Y ∪ J) = Y ∪ 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à
J là một closure itemset của item j với J ⊈ Y. PRE_SET của gen được định nghĩa là
PRE_SET (gen) = {K ⊆ I | K ⊈ gen và K ≺ J}, và POST_SET của gen được định
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 Si0 ≺ Si1 ≺. . . ≺ Sin-1, n ≥ 1.Với  Gen0, gen1,. . . , Genn-1 =Y0 ∪
Si0, Y1 ∪ Si1,. . . , Yn-1 ∪ Sin-1, với điều kiện geni khác nhau là tập sinh có thứ tự, với
Y0 = c(∅), ∀ j ∈ [0, n - 1], Yj + 1 = c(Yj ∪ Sj) , và Yn = 𝑌̅.
̅  c (∅), chuỗi tập sinh có thứ tự trong
Hệ quả 2.1: Với mỗi itemset đóng Y
đị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
closure itemset của item j với J ⊈ Y. Nếu tồn tại một K ∈ PRE_SET (gen) và
BitTable(gen) ⊆ BitTable(K), gen không đảm bảo thứ tự, và do đó, nó được cắt bỏ.
Định lý 2.3: Sj là một subsumed itemset của item j với supp (Sj) = minsup, với
minsup là ngưỡng hỗ trợ tối thiểu. Không tồn tại item j’ với j ≺ j’ và j’ Sj để Sj ∪
Sj’ 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, Sj ∪ Sj’ là một FCI. Hàm t là một
hàm đơn điệu giảm. Nếu Sj ⊂ Sj ∪ Sj’, t(S j ∪ S j) ⊆ t(S j). Như vậy, supp(Sj ∪ Sj) ≤
supp(Sj). Bây giờ, nếu supp (Sj ∪ Sj’) Kết quả là, nếu supp(Sj ∪ Sj’) = supp(Sj), ta có supp(Sj ∪ Sj’) = minsup. Điều này có
nghĩa là:

-20-


t(Sj ∪ Sj’) = t(Sj), Sj’ ∈ Sj ∪ Sj’ và supp(Sj) = minsup


⇒ t(Sj) = t(Sj ∪ Sj’) = t(Sj) ∩ t(Sj’)
⇒ t(Sj) ⊆ t(Sj’).
Điều này rõ ràng cho thấy j’∈ Sj của Bổ đề 2.1, dẫn đến mâu thuẫn. Mâu thuẫn
này chứng minh định lý.
Hệ 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.

-21-



×