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

TÌM KIẾM CÁC PHỤ THUỘC HÀM CÓ ĐIỀU KIỆN (CFD)

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 (1.32 MB, 44 trang )

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÀNH PHỐ HỒ CHÍ MINH

NGUYỄN MINH PHƯƠNG

TÌM KIẾM CÁC PHỤ THUỘC HÀM CÓ ĐIỀU KIỆN
(DISCOVERING CONDITIONAL FUNCTIONAL DEPENDENCIES)

Tiểu luận môn Khám phá tri thức và Khai thác dữ liệu

TP. HỒ CHÍ MINH - 2015


BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÀNH PHỐ HỒ CHÍ MINH

NGUYỄN MINH PHƯƠNG

TÌM KIẾM CÁC PHỤ THUỘC HÀM CÓ ĐIỀU KIỆN
(DISCOVERING CONDITIONAL FUNCTIONAL DEPENDENCIES)

Tiểu luận môn Khám phá tri thức và Khai thác dữ liệu

Người hướng dẫn khoa học:
PGS. TS. VÕ ĐÌNH BẢY

TP. HỒ CHÍ MINH – 2015

1



MỤC LỤC
TÓM TẮT ...............................................................................................................................................4
I.

GIỚI THIỆU ................................................................................................................................5
1.1.

Các công trình trước đây ..........................................................................................................6

1.2.

Các đóng góp............................................................................................................................8

1.3.

Tổ chức.....................................................................................................................................9

II.
2.1.

2.2.

2.3.
III.

CÁC PHÁT HIỆN CFD VÀ CFD.............................................................................................10
CÁC PHỤ THUỘC HÀM CÓ ĐIỀU KIỆN ..........................................................................10

2.1.1.


Các CFD ....................................................................................... 10

2.1.2.

Ngữ Nghĩa .................................................................................... 10

2.1.3.

Phân Loại các CFD ..................................................................... 11

BÀI TOÁN TÌM KIẾM CÁC CFD .......................................................................................12

2.2.1.

Các CFD cực tiểu ........................................................................ 12

2.2.2.

Các CFD phổ biến ....................................................................... 13

2.2.3.

Nêu bài toán ................................................................................. 13

Tìm ra các CFD với mẫu Tableaus ........................................................................................13
TÌM CÁC CFD KHÔNG ĐỔI ..................................................................................................15

3.1.

Các ItemSet tự do và đóng .....................................................................................................15


3.2.

CFD MINER ..........................................................................................................................17

IV.

CTANE: THUẬT TOÁN THEO CẤP ĐỘ ..............................................................................18

4.1.

Chiến lược tỉa bớt ...................................................................................................................18

4.2.

CTANE để tìm ra CFD k-phổ biến ........................................................................................20

4.3.

Tính đúng đắn ........................................................................................................................22

4.4.

Chi tiết thực hiện ....................................................................................................................22
FASTCFD: PHƯƠNG PHÁP CHIỀU SÂU ĐẦU TIÊN ........................................................24

V.
5.1.

Các tập sai phân......................................................................................................................25


5.2.

Chiến lược tỉa bớt mẫu hiệu quả ............................................................................................26

5.3.

Chi tiết thực hiện và tối ưu hóa ..............................................................................................30

5.4.

Naive Fast...............................................................................................................................31

5.5.

Fast CFD ................................................................................................................................31

5.6.

Sắp xếp lại thuộc tính năng động ...........................................................................................31

VI.

NGHIÊN CỨU VÀ THỰC NGHIỆM ......................................................................................32

6.1.

Các cài đặt thực nghiệm .........................................................................................................32

6.2.


Các kết quả thực nghiệm ........................................................................................................33
2


VII.
VIII.

6.2.1.

Khả năng mở rộng thử nghiệm .................................................. 33

6.2.2.

Dữ liệu thử nghiệm thực tế ......................................................... 36

6.2.3.

Tóm lại.......................................................................................... 37

CÁC NGHIÊN CỨU LIÊN QUAN.........................................................................................38
KẾT LUẬN ...........................................................................................................................40

TÀI LIỆU THAM KHẢO ...................................................................................................................41

3


TÓM TẮT
Tiểu luận này nghiên cứu về việc tìm ra các phụ thuộc hàm có điều kiện (CFD). CFD là sự

mở rộng gần đây của phụ thuộc hàm (FD) nhờ hỗ trợ thêm các biểu mẫu (pattern) của các hằng
số có liên quan về mặt ngữ nghĩa, và có thể được sử dụng làm các quy luật để làm sạch dữ liệu
liên quan. Tuy nhiên, tìm ra các CFD chất lượng là một quy trình tốn kém đòi hỏi nhiều nỗ lực
thủ công. Để nhận diện hiệu quả các quy luật làm sạch dữ liệu, ta cần xây dựng các kỹ thuật
phát hiện các CFD từ các hệ thức. Tìm ra các FD đặc thù đã khó, vấn đề tìm ra các CFD còn
khó hơn. Thật vậy, khai thác các biểu mẫu trong CFD mang đến rất nhiều thử thách. Bài báo
cung cấp 3 phương pháp tìm ra CFD. Phương pháp thứ nhất, được nhắc đến với tên gọi
CFDMiner, dựa trên các kỹ thuật khai thác các bộ phần tử đóng, và được sử dụng để tìm các
CFD bất biến, cụ thể là các CFD chỉ có các biểu mẫu bất biến. Các CFD bất biến đặc biệt quan
trọng đối với việc nhận diện đối tượng, vốn là điểm thiết yếu đối với việc xóa và tích hợp dữ
liệu. Hai thuật toán khác được xây dựng để tìm ra các CFD tổng hợp. Một thuật toán, được gọi
là CTANE, là một thuật toán phân cấp mở rộng thêm TANE, một thuật toán phổ biến dùng cho
khai thác các FD. Cái còn lại, được gọi là FastCFD, dựa trên phương pháp ưu tiên chiều sâu
được sử dụng trong FastFD, một phương thức tìm ra các FD. Nó tận dụng tối đa việc khai thác
bộ phần tử đóng để giảm khoảng tìm kiếm. Đã được kiểm nghiệm bởi nghiên cứu thực tiễn của
chúng tôi, CFDMiner có thể là nhiều bậc nhanh hơn so với CTANE và FastCFD đối với việc
tìm ra CFD bất biến. CTANE hoạt động ổn khi một hệ thức đưa ra là lớn, nhưng nó không thích
ứng tốt với hạng (arity) của hệ thức. FastCFD hiệu quả hơn nhiều so với CTANE khi hạng của
hệ thức là lớn; nó cũng tốt hơn khi tận dụng sự tối ưu hóa dựa trên việc khai thác bộ phần tử
đóng, FastCFD cũng thích ứng tốt với quy mô của hệ thức. Các thuật toán này tạo ra một bộ
các công cụ tìm kiếm quy luật làm sạch dữ liệu cho người dùng lựa chọn với các ứng dụng khác
nhau.

4


I.

GIỚI THIỆU


Các phụ thuộc hàm có điều kiện (CFD) gần đây đã được giới thiệu nhằm phục vụ việc làm
sạch dữ liệu. Chúng mở rộng các phụ thuộc hàm (FD) tiêu chuẩn bằng cách củng cố các biểu
mẫu của các hằng số có quan hệ về ngữ nghĩa. Các CFD đã được chứng minh là hiệu quả hơn
so với các FD trong việc phát hiện và sửa chữa các điểm không nhất quán (tình trạng không
sạch) của dữ liệu, và được trông đợi là sẽ được sử dụng bởi các công cụ làm sạch dữ liệu hiện
đang sử dụng các FD tiêu chuẩn (VD: Xem mục 3, 4, 5 ở phần tài liệu tham khảo. Xem mục 6,
7 để biết thêm các cuộc khảo sát đã thực hiện về các công cụ làm sạch dữ liệu). Tuy nhiên, để
các phương thức làm sạch dựa trên CFD có hiệu quả thực tế, cần phải có các kỹ thuật tại chỗ
có thể tự động phát hiện hoặc tìm hiểu các CFD từ dữ liệu mẫu, để dùng làm các quy luật làm
sạch dữ liệu. Thật vậy, sẽ là không thực tế nếu chỉ dựa vào các chuyên gia để thiết kế các CFD
qua một quy trình thủ công tốn kém và mất thời gian. Như được mô tả trong [8], việc tìm ra
quy luật làm sạch dữ liệu là rất quan trọng đối với các sản phẩm thương mại quản lý về dữ liệu.
Vấn đề này nhấn mạnh sự cần thiết của việc nghiên cứu vấn đề tìm ra các CFD; chẳng hạn
cho một thể hiện mẫu r của một lược đồ quan hệ R, nó dùng để tìm một vỏ bọc tiêu chuẩn của
mọi CFD nắm giữ r, nghĩa là một tập hợp các CFD tương đồng về logic với tập hợp mọi CFD
nắm giữ r. Để giảm phần dư, mỗi CFD trong vỏ bọc tiêu chuẩn phải là nhỏ nhất (minimal),
nghĩa là nontrivial và left-reduced (xem [9] để biết về các FD nontrivial và left-reduced).
Tuy nhiên, vấn đề tìm kiếm lại cực kỳ nontrivial. Vốn nó đã khó đối với các FD truyền
thống vì, so với các thứ khác, một vỏ bọc tiêu chuẩn của các FD được tìm ra từ một hệ thức r vốn
đã có tính lũy thừa ở hạng của lược đồ của r, tức là số thuộc tính trong R. Vì việc tìm ra CFD
cũng gồm cả việc tìm ra FD, nên độ phức tạp lũy thừa cũng được đưa vào việc tìm CFD. Hơn
nữa, việc tìm ra CFD đòi hỏi phải khai thác các biểu mẫu ngữ nghĩa có các hằng số, một thử
thách không gặp phải khi tìm các FD, như được mô tả trong ví dụ dưới đây. Ví dụ 1. Lược đồ
quan hệ cust dưới đây được lấy từ [1]. Nó xác định một khách hàng dựa vào số điện thoại của
(mã nước (CC), mã vùng (AC), số điện thoại (PN)), tên (NM), và địa chỉ (phố (STR), thành
phố (CT), mã zip (ZIP)). Một thể hiện r0của cust được thể hiện trong Hình 1.
Các FD truyền thống nắm giữ r0 gồm có:

Ở đây, f1 đòi hỏi rằng 2 khách hàng có cùng mã nước và mã vùng và ở cùng thành phố;
tương tự với f2.

Trái lại, các CFD nắm giữ r0 gồm không chỉ các FD f1 và f2, mà còn cả các giá trị dưới đây
(và còn hơn thế nữa):

5


MỤC LỤC
TÓM TẮT ...............................................................................................................................................4
I.

GIỚI THIỆU ................................................................................................................................5
1.1.

Các công trình trước đây ..........................................................................................................6

1.2.

Các đóng góp............................................................................................................................8

1.3.

Tổ chức.....................................................................................................................................9

II.
2.1.

2.2.

2.3.
III.


CÁC PHÁT HIỆN CFD VÀ CFD.............................................................................................10
CÁC PHỤ THUỘC HÀM CÓ ĐIỀU KIỆN ..........................................................................10

2.1.1.

Các CFD ....................................................................................... 10

2.1.2.

Ngữ Nghĩa .................................................................................... 10

2.1.3.

Phân Loại các CFD ..................................................................... 11

BÀI TOÁN TÌM KIẾM CÁC CFD .......................................................................................12

2.2.1.

Các CFD cực tiểu ........................................................................ 12

2.2.2.

Các CFD phổ biến ....................................................................... 13

2.2.3.

Nêu bài toán ................................................................................. 13


Tìm ra các CFD với mẫu Tableaus ........................................................................................13
TÌM CÁC CFD KHÔNG ĐỔI ..................................................................................................15

3.1.

Các ItemSet tự do và đóng .....................................................................................................15

3.2.

CFD MINER ..........................................................................................................................17

IV.

CTANE: THUẬT TOÁN THEO CẤP ĐỘ ..............................................................................18

4.1.

Chiến lược tỉa bớt ...................................................................................................................18

4.2.

CTANE để tìm ra CFD k-phổ biến ........................................................................................20

4.3.

Tính đúng đắn ........................................................................................................................22

4.4.

Chi tiết thực hiện ....................................................................................................................22

FASTCFD: PHƯƠNG PHÁP CHIỀU SÂU ĐẦU TIÊN ........................................................24

V.
5.1.

Các tập sai phân......................................................................................................................25

5.2.

Chiến lược tỉa bớt mẫu hiệu quả ............................................................................................26

5.3.

Chi tiết thực hiện và tối ưu hóa ..............................................................................................30

5.4.

Naive Fast...............................................................................................................................31

5.5.

Fast CFD ................................................................................................................................31

5.6.

Sắp xếp lại thuộc tính năng động ...........................................................................................31

VI.

NGHIÊN CỨU VÀ THỰC NGHIỆM ......................................................................................32


6.1.

Các cài đặt thực nghiệm .........................................................................................................32

6.2.

Các kết quả thực nghiệm ........................................................................................................33
2


hợp thuộc tính và tìm được các FD có k + 1 thuộc tính từ các tập hợp gồm k thuộc tính, và lược
bớt đi dựa trên các FD được tạo ra ở các cấp độ trước. TANE lấy thời gian tuyến tính trong cỡ
|r| của mẫu đầu vào r, và hoạt động tốt khi hạng |R| không quá lớn. Các thuật toán [16], [17],
[18] tuân theo một phương thức tiếp cận theo cấp độ tương tự. Tuy nhiên các thuật toán theo
cấp độ có thể lấy thời gian lũy thừa ở |R|. Từ đó, một thuật toán khác, được gọi là FastFD [14],
khám phá ra mối liên hệ giữa việc tìm ra FD và vấn đề tìm các vỏ bọc tối thiểu của các siêu đồ
thị, và sử dụng chiến lược theo chiều sâu để tìm các vỏ bọc tối thiểu. Nó lấy (hầu hết) thời gian
tuyến tính trong kích cỡ của output, nghĩa là trong kích cỡ của vỏ bọc FD. Nó thay đổi kích cỡ
tốt hơn so với TANE khi hạng (arity) lớn, nhưng lại dễ bị tác động bởi kích cỡ |r|. Thật vậy, nó
nằm trong thời gian O(|r|2 log |r|), khi xem xét độ phức tạp của dữ liệu (|R| được giả định là
hằng số). Ngoài ra còn có một phương thức đi từ dưới lên [15] dựa trên các kỹ thuật phục vụ
việc tìm hiểu các mô tả logic chung trong một không gian giả định. Như thể hiện trong [13],
TANE có hiệu quả hơn hẳn so với thuật toán của [15].
Gần đây, có 2 bộ thuật toán được phát triển cho việc tìm ra các CFD [10], [21]. Đối với một
FD truyền thống cố định fd, [10] cho thấy rằng sẽ là NP-complete khi tìm kiếm các biểu mẫu
hữu ích mà chúng, cùng với fd, có khả năng tạo các CFD có chất lượng. Chúng cung cấp các
thuật toán tự tìm hiệu quả để tìm ra cho các biểu mẫu từ các mẫu w.r.t một FD cố định. Một
thuật toán để tìm ra các CFD, gồm cả các FD truyền thống và các biểu mẫu liên quan, được giới
thiệu ở [21], vốn là phần mở rộng của TANE. Việc tìm ra CFD hằng số có liên quan chặt chẽ

với khai thác luật kết hợp (VD [22]) và đặc biệt là khai thác tập hợp phần tử tự do (VD [23],
[24]). Với 100% độ tin cậy, một luật kết hợp (X, tp) –> (A, α) là một CFD hằng số (X –> A, (tp ||
α)), trong đó tp là một biểu mẫu hằng số gồm các thuộc tính X và α là một giá trị trong miền của
thuộc tính A. Tốt hơn nữa là vẫn có một sự liên hệ gần gũi giữa các CFD hằng số left-reduced
và các luật kết hợp không dư, và mối liên hệ này có thể được tìm thấy nhờ tính toán các tập hợp
phần tử đóng và các tập hợp phần tử tự do.
Các ứng dụng tiềm năng của CFD trong việc làm sạch dữ liệu nhấn mạnh sự cần thiết của
các nghiên cứu sâu hơn về cách tìm CFD.
1) Như đã nhấn mạnh ở phần trước, các CFD hằng số đặc biệt quan trọng đối với việc
nhận diện đối tượng, và vì thế cần được xem xét riêng biệt. Người ta muốn có các phương pháp
hiệu quả để chỉ tìm ra các CFD hằng số, mà không phải trả mức giá để tìm ra mọi CFD. Thật
vậy, như sẽ thấy sau đây, việc tìm ra CFD hằng số thường nhanh hơn một vài bậc so với tìm ra
CFD tổng hợp.
2) Các thuật toán theo cấp độ [21] có thể không hoạt động tốt trên các hệ thức mẫu có
hạng lớn, vì độ phức tạp lũy thừa vốn có của chúng. Các phương pháp hữu ích hơn cần phải
sẵn sàng giải quyết các bộ dữ liệu có hạng lớn.
3) Một tập hợp các kỹ thuật đã được phát triển để phục vụ khai thác luật kết hợp (không
dư), và cũng là lẽ tự nhiên khi tận dụng các kỹ thuật này để tìm ra CFD. Như ta sẽ thấy, các kỹ
7


thuật này có thể không chỉ được sử dụng ở việc tìm ra CFD hằng số, mà còn làm tăng đáng kể
tốc độ tìm ra CFD tổng hợp. Theo như chúng tôi biết, không hề có công trình nào trước đây
xem xét các vấn đề này cho việc tìm ra CFD.

1.2.

Các đóng góp

Sau khi cân nhắc các lựa chọn, tác giả bài báo cung cấp 3 thuật toán cho việc tìm ra CFD:

một thuật toán để tìm ra các CFD hằng số, và 2 cái còn lại để tìm ra các CFD tổng hợp.
1) Bài báo đề xuất một khái niệm về các CFD tối giản dựa trên tính tối giản của các
cuộc tính và tính tối giản của các biểu mẫu. Theo trực giác, các CFD tối giản không chứa các
thuộc tính dư cũng như các biểu mẫu dư. Hơn nữa, ta còn xem xét các CFD phổ biến nắm giữ
một tập dữ liệu mẫu r, được gọi là các CFD, trong đó các bộ biểu mẫu hỗ trợ tập rnêu trên ở
một ngưỡng nào đó. Các CFD thường gặp cho phép ta điều chỉnh để các dữ liệu không đáng tin
cậy thích ứng với lỗi và tạp nhiễu. Các thuật toán của chúng tôi tìm ra các CFD tối giản và
thường gặp để giúp người dùng nhận diện các quy luật làm sạch dữ liệu có chất lượng từ một
tập lớn các CFD nắm giữ các mẫu.
2) Thuật toán thứ nhất của bài báo, gọi tắt là CFDMiner, để tìm kiếm CFD không đổi.
Bài báo tìm kết nối giữa các CFD không đổi cực tiểu và các mẫu đóng và tự do. Dựa trên điều
này, CFDMiner tìm ra các CFD không đổi thúc đẩy một kỹ thuật khai thác mới nhất đề
xuất trong [24], khai thác các tập mục đóng và các tập mục tự do song song, theo một
chương trình tìm kiếm sâu-bậc nhất.
3) Thuật toán thứ hai của bài báo, gọi tắt là CTANE, mở rộng TANE để tìm các CFD
chung. Nó dựa trên một tập thuộc tính/lưới bộ mẫu, và khai thác các CFD ở mức độ k +1 của
lưới (tức là, khi mỗi set at the cấp độ bao gồm k + 1 thuộc tính) với kỹ thuật tỉa bớt dựa trên
those ở mức độ k. CTANE chỉ tìm ra các CFD cực tiểu.
4) Thuật toán thứ ba của bài báo, gọi tắt là FastCFD, tìm ra các CFD chung bằng
cách sử dụng một chiến lược tìm kiếm sâu bậc nhất thay vì the cấp độwise phương pháp.
Nó là sự mở rộng không đơn giản của FastFD nêu trên, bằng cách khai thác các bộ mẫu. một
kỹ thuật tỉa bớt mới được giới thiệu bởi FastCFD, bằng thúc đẩy các CFD không đổi phát
hiện bởi CFDMiner. Ngược với CTANE, FastCFD không mất thời gian hàm mũ trong arity
của dữ liệu mẫu khi một mũ kiểu mẫu của các CFD không lớn về số mũ.
Đóng góp thứ năm và cũng là cuối cùng của bài báo là một nghiên cứu thực nghiệm
về tính hiệu quả và hiệu suất của các thuật toán của bài báo, dựa trên dữ liệu thực tế (các
tập dữ liệu Wisconsin ung thư vú và ngực từ UCI) và các tập dữ liệu tổng hợp tạo ra từ dữ
liệu lầy từ Web. Bài báo đánh giá khả năng mở rộng của các phương pháp này bằng cách
thay đổi kích thước mẫu, arity của sơ đồ quan hệ, các miền tích cực của thuộc tính, và
8



ngưỡng hỗ trợ cho các phổ biến CFD. Bài báo phát hiện ra rằng CFDMiner thường tốt hơn
CTANE và FastCFD gấp ba lần. Bài báo cũng phát hiện ra rằng FastCFD chia tỷ lệ tốt
với arity: nó nhanh hơn gấp ba lần so với CTANE khi arity bằng 10 đến 15, và nó hoạt
động tốt khi arity là lớn hơn 30; ngược lại, CTANE không thể chạy hoàn tất khi arity trên 17.
Mặt khác, CTANE nhạy cảm hơn để hỗ trợ ngưỡng và tốt hơn FastCFD khi ngưỡng lớn và
arity có kích cỡ trung bình. Bài báo cũng phát hiện ra rằng các kỹ thuật tỉa bớt của mình thông
qua khai thác tập mục là hiệu quả: nó cải thiện hiệu năng của FastCFD gấp 5-10 lần và giúp
FastCFD tính tỷ lệ tốt với kích thước mẫu. Các kết quả này cung cấp một chỉ dẫn khi phải
sử dụng CFDMiner, CTANE hoặc FastCFD trong các ứng dụng khác nhau.
Các thuật toán này cung cấp một tập của các công cụ có triển vọng để giúp giảm công việc
thủ công trong thiết kế các quy tắc chất lượng dữ liệu, để người dùng lựa chọn cho các ứng
dụng khác nhau. Chúng giúp biến làm sạch dựa trên CFD thành một công cụ chất lượng dữ
liệu thực tế.

1.3.

Tổ chức

Mục 2 định nghĩa các CFD cực tiểu và phổ biến, và đưa ra bài toán tìm kiếm. Bài báo giới
thiệu CFDMiner, CTANE và FastCFD trong các Mục 3, 4, và 5. Các kết quả thử nghiệm
trong Mục 6, các nghiên cứu liên quan trình bày trong Mục 7 và các đề tài nghiên cứu trong
tương lai trong Mục 8.

9


II.


CÁC PHÁT HIỆN CFD VÀ CFD

Trong phần này, tác giả xem lại định nghĩa của các CFD [1]. Bài báo sau đó hình thức hóa
các khái niệm về các CFD cực tiểu và các Thường xuyên CFD. Cuối cùng, bài báo đưa ra
bài toán tìm kiếm các CFD.

2.1.

CÁC PHỤ THUỘC HÀM CÓ ĐIỀU KIỆN

Xem xét một sơ đồ quan hệ R xác định trên một tập thuộc tính cố định, k ý hi ệu l à
attr(R ). Đối với mỗi thuộc tính A ϵ attr(R), chúng ta sử dụng dom(A) để biểu hiện
miền của nó.
2.1.1. Các CFD
Tính phụ thuộc chức năng điều kiện (CFD) φ trên R là một cặp (X → A, tp), trong đó 1) X là
một tập của thuộc tính trong attr(R), và A là một thuộc tính đơn lẻ trong attr(R), 2) X → A là
một FD tiêu chuẩn, gọi tắt là the FD nhúng trong φ, và 3) tp là một bộ mẫu với thuộc tính trong
X và A, trong đó đối với mỗi B trong X U {A}, t p [B] là một hằng số "a" trong dom(B),
hoặc một biến không tên “_” rút các giá trị từ dom(B).
Bài báo biểu thị X là LHS(φ) và A là RHS(φ). Nếu A cũng xuất hiện trong X, chúng ta
sử dụng AL và AR để biểu thị sự xuất hiện của A trong LHS(φ) và RHS(φ). Bài báo tách
thuộc tính X và A trong một bộ mẫu với "||".
Các FD tiêu chuẩn là một trường hợp đặc biệt của các CFD. Thực tế, một FD X → một
có thể biểu diễn như một CFD (X → A, t p ), trong đó tp [B]= _ đối với mỗi B trong

∪ { }.

Ví dụ 2. FD f1 của Ví dụ 1 có thể biểu diễn như một CFD ([CC, AC] → CT, ( _ , _ ||_));
tương tự đối với f2. Tất cả f1,f2, và 00-Ø3 là các CFD xác định trên sơ đồ cust. Với 00, ví dụ,
LHS(00) là [CC, ZIP] và RHS(00) là STR.


2.1.2. Ngữ Nghĩa
Để gán ngữ nghĩa của các CFD, bài báo định nghĩa một lệnh ≤ trên các hằng số và biến
không tên "_":

nếu

, hoặc

là một số a không đổi và

là "_".

Lệnh ≤ tự mở rộng tới các bộ dữ liệu, ví dụ, (44, "EH4 1DT," "EDI") ≤ (44,_, _) trừ
(Ø1, 07974, "Tree Ave.")
t1 ≤ t2. Chúng ta viết

(44,_, _). Bài báo cho rằng một bộ dữ liệu t1 khớp với t2 nếu
nếu t1≤ t2 nhưng

, tức là, khi đó t2 là "chung hơn"

hơn t1. Ví dụ, (44, "EH4 1DT,""EDI") ≤≤ (44,_,_).
Một thực thể r của R thỏa mãn CFD φ (hay φ giữ trên r), ký hiệu là r

iff với mỗi cặp

bộ dữ liệu t 1 , t 2 trong r, nếu t1 [X] = t2[X] ≤ tp [X] thì tl [A] = t2[A] ≤ tp [A].
10



686

IEEE TRANSACTIONS ON KNOWLEDGE và DATA ENGINEERING, VOL. 23, NO. 5, MAY2011

Về trực giác, φ là một ràng buộc được xác định trên tập hợp
nếu t1 [X] = t2[X], thì 1) t1 [A] = t[A], và 2) tl[A] ≤ tp [A]. ở

sao cho với mọi

đây, 1) gán ngữ nghĩa của FD được nhúng trên tập hợp rφ, và 2) đảm bảo sự liên kết giữa các
hằng số trong tp [A] và các hằng số trong t1 [A]. Nghĩa là, φ ràng buộc tập con của r φ của r
được xác định bởi tp [X], chứ không phải toàn bộ thực thể r.
Ví dụ 3. Thực thể r0 của Hình 1 thỏa mãn các CFD f1,f2 và
= ([CC, Z IP ] → S TR ,

thỏa mãn CFD

của Ví dụ 1. nó không

. Thực tế, t1 và t4 vi phạm

[CC, ZIP] = t4[CC,ZIP] ≤ (_,_), nhưng

do t1

r cũng không thỏa mãn

do t8 vi phạms


Từ đây,

nhưng

ta thấy rằng trong khi đó cần hai bộ dữ liệu để vi phạm một FD, các CFD có thể bị vi phạm
bởi một bộ dữ liệu.
Bài báo cho rằng một thực thể r của R thỏa mãn một tập ∑ của các CFD trên R, ký hiệu


đối với mỗi

, nếu
Đối với hai tập



.

của các CFD xác định trên sơ đồ R tương tự, bài báo cho

rằng ∑ là tương ứng với ∑', ký hiệu là

iff với mọi thực thể r của R,

.
Ghi chú. các CFD cũng có thể được định nghĩa là (X → Y, tp), trong đó Y là một tập của
thuộc tính và X → Y là một FD. Như trong trường hợp của các FD, một CFD tương ứng với
một tập của các CFD với một thuộc tính đơn lẻ trong RHS của chúng. Do đó, bài báo tập
trung vào các CFD với RHS của chúng bao gồm một thuộc tính đơn lẻ.
2.1.3. Phân Loại các CFD

Một CFD (X → A, tp) được gọi là một CFD không đổi nếu bộ mẫu của nó tp chỉ bao gồm
các hằng số, tức là, tp [A]là một hằng số và đối với tất cả

là một hằng số. Nó

được gọi là một CFD biến đổi nếu t p [A] =_ , tức là, RHS của bộ mẫu của nó là biến không
tên "_".
Ví dụ 4. Trong số các CFD trong Ví dụ 1, f1, f2, 00 là các CFD biến đổi, trong khi đó
Ø1, Ø2, Ø3 là các CFD không đổi.
Mục [1] chỉ ra rằng mọi tập hợp ∑ của các CFD trên một sơ đồ R có thể được đại diện
bởi một tập ∑c của các CFD không đổi và một tập ∑v của các CFD biến đổi, sao cho
. cụ thể là, đối với một CFD = (X → A, tp), nếu tp [A] là một hằng số a, thì có một
CFD tương ứng

trong đó X' bao gồm tất cả thuộc tính

sao

cho tp [B]là một hằng số. Nghĩa là, khi t p [A]là một hằng số, bài báo có thể thả tất cả thuộc
tính B vào trong LHS của

với
11


Bổ đề 1 [1]. với mọi tập ∑ của các CFD trên một sơ đồ R, tồn tại một tập ∑c của các CFD không
đổi và một tập ∑v của các CFD biến đổi trên R, sao cho ∑ là tương ứng với

2.2.


.

BÀI TOÁN TÌM KIẾM CÁC CFD

Cho một quan hệ mẫu r của một sơ đồ R, một thuật toán Tìm kiếm CFD nhằm tìm ra các
CFD xác định trên R giữ trên r. Rõ ràng là, nó không phải là một ý tưởng hay khi thu nồi tập
hợp của tất cả các CFD giữ trên r, do tập hợp chứa các CFD tầm thường và thừa và to quá.
Do đó, bài báo muốn tìm ra một mũ kiểu mẫu, tức là, một tập không thừa chỉ bao
gồm các CFD cực tiểu, từ đó tất cả các CFD trên r có thể được suy luận ra thông qua phân
tích hệ quả. Hơn nữa, dữ liệu thực tế thường không sạch, chứa các sai số và độ ồn. Để
loại bỏ các CFD chỉ khớp với các sai số và độ ồn, bài báo xem xét các Phổ biến CFD,
có một bộ mẫu có hỗ trợ trong r trên một ngưỡng.
Dưới đây, bài báo hình thức hóa các khái niệm của các CFD cực tiểu và các Phổ biến
CFD. Sau đó, bài báo nêu ra bài toán tìm kiếm các CFD.
2.2.1. Các CFD cực tiểu
Một CFD φ = (X → A, tp) trên R được cho là tầm thường nếu một

. nếu φ là tầm

thường, thì nó được thỏa mãn bởi tất cả thực thể của R (ví dụ, khi

, hoặc nó

không được thỏa mãn bởi thực thể nào trong đó có một bộ dữ liệu t sao cho t[X] ≤ tp [X] (ví
dụ, nếu tp [AL] và tp [AR] các hằng số khác nhau). Do đó, bài báo chỉ xem xét các CFD
không đơn giản.
Một CFD không đổi

Một CFD biến đổi


được cho là bị giảm bên trái trên r nếu với mọi

bị giảm bên trái trên r nếu
với mọi tập con

, và 2)

với mọi

t’p với
Về trực giác, chúng đảm bảo như sau: 1) Các thuộc tính LHS của nó không thể bị loại
bỏ, tức là, cực tiểu thuộc tính, và 2) các hằng số trong Mẫu LHS của nó không thể bị "nâng
cấp" thành "_", tức là, mẫu tp [X] là "chung nhất," hoặc nói cách khác, cực tiểu của các mẫu.
Một CFD cực tiểu φ trên r là một không đơn giản, CFD giảm bên trái sao cho r

. Về

trực giác, một CFD cực tiểu là không thừa.
Ví dụ 5. Trên ví dụ r0 của Hình 1, Ø2 của Ví dụ 1 là một CFD cực tiểu không đổi, và fl, f2
và 00 là cực tiểu các CFD biến đổi. Tuy nhiên, Ø3 không cực tiểu: nếu bài báo thả CC từ
LHS(Ø3), r0 vẫn thỏa mãn (AC → CT, (212 II NYC)) do có chỉ một bộ dữ liệu (t3) với AC =
212 trong r0. Tương tự, Ø1 không cực tiểu do CC có thể được thả.
12


Coi


Trong khi đó các CFD này giữ trên r0, chúng không phải là các CFD


cực tiểu, do chúng không thỏa mãn yêu cầu (2) cho các CFD biến đổi giảm bên trái. Thực tế,
(

là một CFD cực tiểu trên r0 với một mẫu chung hơn mọi

nói cách khác, các

đối với

này là thừa.

2.2.2. Các CFD phổ biến
Hỗ trợ của một CFD φ = (X → A, t p) trong r, ký hiệu là sup(φ, r), được định nghĩa là
tập hợp của các bộ t trong r sao cho t[X] ≤ tp [X] và t[A] ≤ tp [A], tức là, các bộ khớp với mẫu
của φ. Đối với một số tự nhiên k ≥ 1, một CFD φ được cho là k-phổ biến trong r nếu sup(φ, r) ≥
k. Ví dụ, Ø1 và Ø2 của Ví dụ 1 là 3-phổ biến và 2-phổ biến. Hơn nữa, f1 và f2 là 8-phổ biến.
Nên chú ý rằng khái niệm về các Phổ biến CFD là khá khác với khái niệm về các FD
xấp xỉ [13], [18]. Một FD xấp xỉ
là, tồn tại một tập con

trên một quan hệ r là một FD "hầu hết" giữ trên r, tức

sao cho

hạn xác định trước. Không cần thiết
r là một CFD phải giữ trên r, tức là,

và sai số

là nhỏ hơn một giới


Ngược lại, một CFD k-phổ biến φ trong
, và hơn nữa, phải có đủ (ít nhất k) các bộ chứng

kiến trong r khớp với bộ mẫu của φ.
2.2.3. Nêu bài toán
Một mũ kiểu mẫu của các CFD trên r đối với k là một tập ∑ của cực tiểu, CFD k-Phổ biến trong
r, sao cho E là tương ứng với tập hợp của tất cả CFD k-Phổ biến giữ trên r.
Cho một thực thể r của một sơ đồ quan hệ R và một ngưỡng hỗ trợ k, bài toán tìm kiếm các
CFD là để tìm ra một mũ kiểu mẫu của các CFD trên r đối với k.
Về trực giác, một mũ kiểu mẫu bao gồm các CFD không thừa phổ biến trên r, từ đó tất
cả các Phổ biến CFD giữ trên r có thể được suy luận ra.

2.3.

Tìm ra các CFD với mẫu Tableaus

Đến đây, bài báo xem xét ed các CFD có dạng φ = (X → A, tp). trong [1], tuy nhiên, các
CFD được cho phép có nhiều bộ mẫu. Cụ thể, một tableau CFD là có dạng φ = (X → A,
Tp) trong đó Tp là một mẫu tableau bao gồm một số lượng hữu hạn các bộ mẫu với thuộc
tính trong X và A. Một thực thể r của R được cho là thỏa mãn φ nếu r thỏa mãn mọi CFD
= (X → A, tp) với

. Dễ dàng xác minh rằng (xem [1]) một tableau CFD φ = (X

→ A, T p) là tương ứng với tập hợp của các CFD

. Từ sự tương ứng này,

bài báo định nghĩa hỗ trợ của φ = (X → A, Tp), ký hiệu là sup(φ), là


.

Kết quả là, việc tìm ra k-CFD phổ biến tableau giảm tới bài toán tìm ra CFD k-Phổ
biến. Bài báo ghi chú rằng một khái niệm thay thế của hỗ trợ cho tableau các CFD
được xem sét trong [25].
13


Khái niệm về cực tiểu có thể được khái quát hóa thành các CFD tableau: Một CFD
φ = (X → A, T p) là cực tiểu trên r nếu 1)

với mọi tập con

, và 2) mẫu tableau là tối đa (không thể mở rộng nó bằng cách tăng bộ mẫu) mà
không vi phạm điều kiện là với mỗi cặp bộ mẫu s p và t p , nếu

thì

.
Người ta từng xác minh rằng k- CFD phổ biến cực tiểu tableau có thể thu được từ các
CFD k-phổ biến cực tiểu (bộ mẫu riêng). Bài báo, do đó, tập trung vào k- CFD phổ biến
cực tiểu trong nghiên cứu này.

14


VII.
VIII.


6.2.1.

Khả năng mở rộng thử nghiệm .................................................. 33

6.2.2.

Dữ liệu thử nghiệm thực tế ......................................................... 36

6.2.3.

Tóm lại.......................................................................................... 37

CÁC NGHIÊN CỨU LIÊN QUAN.........................................................................................38
KẾT LUẬN ...........................................................................................................................40

TÀI LIỆU THAM KHẢO ...................................................................................................................41

3


VII.
VIII.

6.2.1.

Khả năng mở rộng thử nghiệm .................................................. 33

6.2.2.

Dữ liệu thử nghiệm thực tế ......................................................... 36


6.2.3.

Tóm lại.......................................................................................... 37

CÁC NGHIÊN CỨU LIÊN QUAN.........................................................................................38
KẾT LUẬN ...........................................................................................................................40

TÀI LIỆU THAM KHẢO ...................................................................................................................41

3


VII.
VIII.

6.2.1.

Khả năng mở rộng thử nghiệm .................................................. 33

6.2.2.

Dữ liệu thử nghiệm thực tế ......................................................... 36

6.2.3.

Tóm lại.......................................................................................... 37

CÁC NGHIÊN CỨU LIÊN QUAN.........................................................................................38
KẾT LUẬN ...........................................................................................................................40


TÀI LIỆU THAM KHẢO ...................................................................................................................41

3


IV.

CTANE: THUẬT TOÁN THEO CẤP ĐỘ

Tiếp theo, bài báo giới thiệu CTAN E, một thuật toán theo cấp độ tìm ra các CFD cực tiểu,
k-phổ biến (biến đổi và không đổi). Nó là một mở rộng của thuật toán TANE [13] cho tìm ra
các FD.
CTANE khai thác các CFD bằng cách di chuyển qua một tập thuộc tính/ lưới
theo cấp độ. Chính xác hơn, lưới ,

mẫu,

bao gồm các thành phần có dạng (X,

t p ), trong đó
X

attr(R) và t p là bộ mẫu trên X. Ngược lại với các tập mục trong Mục 3, các

mẫu bây giờ bao gồm cả những hằng số và các biến không tên (_). Bài báo cho rằng
và tp[Y] ≤ sp. Mối quan hệ này định nghĩa cấu trúc

(Y, sp) là chung hơn (X, tp) nếu
lưới trên tập thuộc tính/ cặp mẫu.


Đầu tiên, bài báo giới thiệu CTANE để khai thác các CFD 1-phổ biến cực tiểu. Bài báo
thì mô tả cách sửa đổi CTANE để tìm các CFD k-phổ biến cực tiểu cho một ngưỡng hỗ
trợ k.
CTANE bắt đầu từ các tập singleton (A, a) cho A ϵ attr(R) và α ϵ dom(A) U {_}. Sau
đó nó tiếp tục với các cấp độ thuộc tính/mẫu lớn hơn trong G. Khi nó kiểm tra (X, s p ), nó
, trong đó A ϵ X. Điều này đảm bảo

kiểm tra các CFD

rằng chỉ các CFD không đơn giản được xem sét. CTANE duy trì đối với mỗi thành phần
được xem xét.
(X,

sp)

một

tập,



hiệu



C+

(X,


sp),

để

quyết

định

xem

CFD

là cực tiểu chưa. Tập hợp C+ (X, s p), được xây dựng dưới
đây, có thể được duy trì trong chỗ giao theo cấp độ. Ngoài việc thử nghiệm tìm cực
tiểu, C+ (X, s p) cũng cung cấp chiến lược tỉa bớt hiệu quả, giúp phương pháp theo cấp độ
trở nên khả thi trong thực tế.

4.1.

Chiến lược tỉa bớt

Để tìm ra các CFD, bài báo ban đầu mở rộng chiến lược tỉa bớt của TANE. Đối với mỗi
thành phần(X, s p ) trong , , bài báo cung cấp một tập C + (X, s p ) bao gồm các thành phần
(A, cA)
1.

attr(R) x {dom(A)

nếu A ϵ X, thì c A = s p [A],
đối với tất cả B


2.
3.

{_}}, thỏa mãn các điều kiện như sau:

đối với tất cả B

X

X, và

,
18


trong đó

đối với tất cả



.

Về trực giác, điều kiện 1 ngăn tạo ra các CFD không thích hợp; điều kiện 2 đảm bảo rằng
LHS không thể bị giảm; và điều kiện 3 đảm bảo rằng bộ mẫu là chung nhất.
Dễ xác minh được như sau:
Bổ đề 2. Cho X

attr(R), sp là một mẫu trên X, A ϵ X và giả định rằng

Thì φ là cực tiểu nếu đối với tất cả Bϵ X bài

báo có
Về kỹ thuật tỉa bớt, Bổ đề 2 nói rằng bài báo không cần xem xét mọi thành phần (X, sp)
của ,C mà C+ (X, sp) = 0. Hơn nữa, nếu C+ (X, sp) = 0 thì cũng C+ (Y, tp) = Ø cho mọi (Y, s p )
chứa (X, t p ) trong lưới. Do đó, sự trống rỗng của C+ (X, sp) khả năng đã tỉa đi một phần
cần được xem xét bởi CTANE.

lớn các thành phần trong

Thuật toán CTANE. Bài báo sẵn sàng giới thiệu thuật toán. Bài báo biểu thị bằng L l
một tập hợp của các thành phần (X, s p ) trong ,

có kích cỡ l, tức là

. Bài báo

giả định rằng Ll được sắp xếp sao cho (X, sp) xuất hiện trước khi (Y, tp) nếu X = Y và
Ban

đầu,

L1
và l = 1. Bài báo thì thực hiện các bước cho đến khi L l là

không trống rỗng:
1.

Bài báo tính toán RHS ứng viên cho các CFD cực tiểu với LHS của chúng trong
L l . Nghĩa là, đối với mỗi (X, s p ) ϵ Ll bài báo tính toán


Đối với mỗi (X, sp)
CA)

Ll bài báo tìm kiếm các CFD hợp lệ; tức là, đối với mỗi A

X, (A,

C+ (X, Sp) bài báo thực hiện như sau:

Hình 3. Thực hiện một phần của thuật toán CTANE. Giải thích các vị trí A, B, C, D, E, và F
khoanh tròn nêu tại Ví dụ 8.
a.

kiểm tra xem

, t r o n g đ ó φ = (X

19


b.

thì ra kết quả φ. Thực tế, nếu φ giữ trên r thì bằng Bổ đề 2 và Bước 1,

nếu

thực tế φ là một CFD cực tiểu,
c.


thì đối với tất cả (X, u p ) ϵ Ll sao cho up[A]= cA và

nếu

cập nhật C+ (X, up) bằng cách loại bỏ (A, CA) và (B, CB) từ
nó, đối với tất cả B
3.

attr(R) \ X.

Tiếp theo, bài báo tỉa bớt Ll. Nghĩa là, đối với mỗi (X, sp) ϵ Ll bài báo loại bỏ (X, sp) từ
Ll với điều kiện C+ (X, sp) = 0.

4.

Cuối cùng, bài báo tạo lập Li + i như sau:
a. ban đầu

,

b. Với mỗi cặp phân biệt (X, s p), (Y ,t p) ϵ Ll thỏa mãn các thuộc thuộc tính tính thứ
nhất l-1:
i.

, ở đây Yn biểu thị thuộc tính cuối cùng

cho Z = X U Y và
trong Y,

ii.


nếu có một bộ dữ liệu trong phép chiếu

khớp với up thì tiếp tục với (Z,

up),
iii.

nếu đối với tất cả

, thì thêm (Z, u p) vào Ll+1,

c. đặt l = l + 1.
Trước khi bài báo chứng minh sự đúng đắn của thuật toán, bài báo ban đầu mở rộng thuật
toán để tìm ra CFD k-Phổ biến, và mô tả cách nó làm việc bằng một ví dụ.

CTANE để tìm ra CFD k-phổ biến

4.2.

CTANE có thể được dễ dàng xác minh sao cho nó chỉ tìm ra các CFD k-phổ biến cực
tiểu. Trước tiên, bài báo quan sát như sau: Cho φ = (X → A, (t p,cA)) là một CFD giữ trên
bao gồm phần không đổi của (X, tp). Sau đó φ là

r. Bài báo biểu thị bằng tập mục
k-phổ biến

khi




.

Điều này cho thấy rằng với mọi lựa chọn hợp lý của k (tức là, nhỏ hơn kích cỡ của r),
bài báo chỉ cần giới hạn các thành phần (X, s p ) ϵ Ll mà
biến.

Điều

này



thể

đạt

được

bằng
A

là một tập mục k-phổ
cách

1)

bắt

đầu


với

và 2) thay thế Bước 4.b(ii)

trong CTANE bằng một bước mà chỉ xem xét (Z, up) nếu supp(Ze, ?Lc), r) ≥ k. Cả haih biến
đổi đều thu được kỹ thuật tỉa bớt, và do đó cải thiện hiệu suất của CTANE khi tìm ra CFD
k-phổ biến.

20


Ví dụ 8. Xem xét một lần nữa quan hệ cust của Hình 1. Bài báo cho chạy một phần thuật
toán CTANE chỉ bao gồm các thuộc tính CC, AC, ZIP, và STR. Giả định một ngưỡng hỗ
trợ k≥ 3.
Bài báo thể hiện trong Hình 3 hai cấp độ trước tiên của lưới ,C và cấp độ thứ ba tương
ứng với thuộc tính [CC, AC, ZIP]. Cụ thể là, đối với mỗi thành phần (X, sp) kiểm tra bằng
CTANE, bài báo liệt kê các tập thuộc tính X cùng với danh sách của các mẫu có thể có, sắp
xếp đối với số lượng "_” trong số chúng.
Bài báo nêu bật các điểm trong khi thực hiện CTANE: A, B, C , D, E, F chạm tới trong
thứ tự này, như nêu trong Hình 3.
(A)

Ban đầu L1 bao gồm tất cả các cặp thuộc tính đơn/giá tị xuất hiện ít nhất k lần, và

mỗi thuộc tính xuất hiện cùng với một biến không tên. Chú ý là k giới hạn số lượng các
giá trị một cách mạnh mẽ đối với thuộc tính STR. Tại điểm này, tất cả tập CE(A,cA) chứa
(A, CA). Do r không thỏa mãn mọi CFD với một LHS rỗng, không có tập C+ nào được
cập nhật trong Bước 2. Tương tự, không có tập hợp nào bị loại bỏ khỏi L1 trong Bước
3.

(B) Trong

Bước 4, CTANE gép cặp các thuộc tính với nhau và tạo ra các mẫu thích hợp.

Chú ý là đối với (CC, AC) hằng số 44 không xuât hiện (trong khi đó nó đã xuất hiện ở cấp độ
thấp hơn). Đây là vì k = 3.
(C) Đối

với các mẫu định hình màu xám, Bước 2 tìm ra các CFD hợp lệ:



Điều này hàm ý

rằng, C+([CC, ZIP], (_, 07974)) và C+GAC, ZIP], (_,07974)) được cập nhật trong Bước 2 bằng
cách loại bỏ (CC, _) và (AC, _).
(A) Bước

4 tạo ra các bộ ba thuộc tính. Bài báo chỉ thể hiện các mẫu cho (CC, AC, ZIP).

trong Bước 2, CTANE tìm ra CFD
(B) Kết

quả là, CTANE cập nhật Tập C+ trong Bước 2.c, không chỉ của mẫy hiện tại mà

còn của các mẫu cụ thể hơn trên Thuộc tính LHS. Nghĩa là, (ZIP, _) bị loại bỏ khỏi Tập C+
từ ba mẫu trước tiên. Điều này đảm bảo rằng các CFD được tạo ra sau chỉ có mẫu LHS
chung nhất.
Cuối cùng, trong Bước 1 của CTANE, tập C+ bộ mẫu (_, _, 07974) được tính toán. Tuy nhiên,
nên nhớ rằng cả hai C+GCC, ZIP], (_, 07974)) và C+GAC, ZIP], (_, 07974)) đã được cập nhật.

Kết quả là, (CC, _) và (AC, _) sẽ không được đưa vào trong Tập C+ (_, _, 07974). Điều này cho
thấy rằng cơ hội duy nhât để tìm ra một CFD cực tiểu trong trường hợp này là thử nghiệm
21


trong trường hợp này không giữ trên r. Tuy nhiên, điều này
chỉ ra rằng tập C+ thực tế giảm RHS có thể sảy ra cho các CFD ứng viên cực tiểu.

4.3.

Tính đúng đắn

Đối với thuật toán TANE, Bổ đề 2 đảm bảo rằng Các bước 1 và 2.a của thuật toán CTANE
tạo lập đúng các CFD cực tiểu. Hơn nữa dễ dàng xác minh được rằng Các bước 1 và 2.c của
CTANE cập nhật đúng C+ (X, sp):
Bổ đề 3. Giả sử rằng đối với tất cả (Y, tp) ϵ Ll, C+ (Y,tp) được tính toán đúng. Sau đó Các
bước 1 và 2.c của CTANE tính toán đúng C+ (X, sp) đối với tất cả (X, sp) ϵ Ll+1.

4.4.

Chi tiết thực hiện

Bài báo xây dựng trên việc thực hiện CTANE. Có bốn khía cạnh tính toán chính quan trọng
để thực hiện hiệu quả:
1.

duy trì các tập hợp C+ (X, sp) (Bước 1),

2.


việc phê chuẩn các CFD ứng viên cực tiểu (Bước 2.b),

3.

việc tạo lập L l +1 (Bước 4), và

4.

kiểm tra hỗ trợ khi tìm ra CFD k-Phổ biến (Bước 4.b(ii)).

Kỹ thuật ở 1) và 2) là dựa trên các phân vùng. Cụ thể hơn, đối với (X, sp) bài báo cho rằng
hai bộ u, v E r là tương ứng với (X, s p ) nếu u[X] = v[X] ≤ sp [X]. mọi (X, sp), do đó, gây
ra một quan hệ tương đương trên một tập con r. Nếu bài báo biểu thị bằng

tập hợp của

các bộ trong r tương ứng với u, thì bài báo có thể sử dụng
để phân vùng một tập con r bằng (X, sr). Tính hợp lệ của một CFD
r có thể được thử nghiệm bằng cách kiểm tra xem

trong
. Nghĩa là, số lượng

các loại tương ứng giữ nguyên. Chính đặc trừng này của tính hợp lệ của một CFD đã cung
cấp một việc thực hiện hiệu quả khía cạnh thứ 2). Hơn nữa,

có thể được sử dụng để loại

bỏ các thành phần thừa trong C+ (X, sp), khiến danh sách này càng nhỏ càng tốt. Ngược lại,
một việc thực hiện ngây thơ Bước 1 có thể giữ quanh các thành phần không bao giờ xuât

hiện cùng với (X, Sp ) trong r.
Về khía cạnh thứ 3), bài báo áp dụng một kỹ thuật tương tự sử dụng trong TANE để
tạo lập các phân vùng tương ứng với các thành phần trong L l+1 là kết quả của các phân
vùng tính toán trước đây. Hơn nữa, để tạo lập các thành phần trong L i+i, bài báo lưu các
thành phần trong Li theo từ điển học; từ đây, ta có thể tạo lập các mẫu lựa chọn (Z, up).
Cuối cùng, khi xem xét CFD k-Phổ biến, các phân vùng có thể được sử dụng hiệu quả
để kiểm tra hỗ trợ của một thành phần mới được tạo ra (Z, u p ) trong Bước 4.b(ii). Hơn
22


nữa, khi (Z, up) thu được từ X U Y và up = (sp,tr[Yn]) với tp[Yn] = , bài báo có thể tránh kiểm
tra

với nhau. Thực tế, hỗ trợ của mẫu này là bằng hỗ trợ của supp(X, sp, r), được

giả định là k-phổ biến do nó phải thuộc về Ll (Bước 4.b(iii)).

23


V.

FASTCFD: PHƯƠNG PHÁP CHIỀU SÂU ĐẦU TIÊN

Trong phần này, bài báo giới thiệu FastCFD, một thuật toán thay thế tìm ra cực
tiểu, các CFD k-phổ biến (biến đổi và không đổi). Với một thực thể r và một ngưỡng hỗ
trợ k, FastCFD tìm ra một mũ kiểu mẫu của tất cả các CFD cực tiểu φ sao cho sup(φ, r) ≥ k.
ngược lại với phương pháp chiều rộng-trước tiên của CTANE, FastCFD tìm ra các CFD kphổ biến cực tiểu theo phương thức chiều sâu trước tiên. Nó là hút vào bằng FastFD [14],
một thuật toán chiều sâu thứ nhất để tìm ra các FD.
FastCFD trước tiên phân giải bài toán tìm ra một mũ kiểu mẫu bằng tìm ra mũ kiểu các

mẫu bao gồm các CFD với một thuộc tính bên phải quy định trước. Cụ thể hơn, đối với
mỗi thuộc tính A trong attr(R), FastCFD tìm tất cả các CFD có dạng φ = (Y → A, tp) sao
cho Y

attr(R) \ {A}, φ là cực tiểu, và hơn nữa sup(φ, r) ≥ k. Bài báo biểu thị tập hợp các

CFD này bằng

. Rõ ràng là tất cả các CFD k-phổ biến cực tiểu trong r có

thể thì thu được là

Thách thức kỹ thuật của FastCFD, do đó, chuyển

sang tính toán Lớp phủ(A, r, k) cho một số A cho sẵn ϵ attr(R), r và k ≥ 0.
Nó là để tính toán

sao cho FastCFD thúc đẩy một chiến lược tìm kiếm sâu

bậc nhất. Cụ thể hơn, việc theo dõi chính sau FastCFD là một mối quan hệ giữa các
CFD φ = (Y → A, tp) trong

và gọi là các bao phủ của các tập sai phân. Về trực

giác, bằng bằng cách sử dụng các tập sai phân r đối với một thuộc tính A và bộ mẫu tp, bài
báo xác định các thuộc tính đó (bao gồm thuộc tính A) trong đó các cặp bộ trong r khớp
với bộ mẫu có thể khác nhau. Một bao phủ của các tập sai phân này chứa ít nhất một thuộc
tính cho mỗi cặp các bộ. Như sẽ thể hiện dưới đây (Bổ đề 4), các bao phủ cực tiểu của các tập
sai phân tương ứng với các cạnh trái của các CFD(cực tiểu) trong Lớp phủ(A, r, k). Do đó,
FastCFD cần tìm ra tất cả các bao phủ cực tiểu của các tập sai phân đối với một và tất cả

các bộ mẫu tp.
Các bao phủ cực tiểu này được tính toán bằng một thủ tục, gọi tắt là FindCover. Trong
một vỏ hột, thủ tục FindCover cuộn trên tất cả các bộ mẫu liên quan (X, tp) (như trình bày dưới
đây, chỉ cần xem xét các tập mục tự là đủ). Đối với mỗi (X, tp), nó gọi ra một thủ tục đệ
quy, ký hiệu là FindMin. Thủ tục này sẽ mở rộng X bằng tất cả tập con Y trong attr(R) \ X
U {A}, và thử nghiệm xem CFD thu được

có phải là cực tiểu không.

Để làm được, nó thúc đẩy mối quan hệ với các tập sai phân để tỉa bớt các tập con không
dẫn đến các CFD cực tiểu. Như giải thích chi tiết dưới đây, FindMin sử dụng một giao
cắt sâu bậc nhất, trái-qua phải của không gian của các tập con

24


×