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

Phát hiện các luật kết hợp trong cơ sở dữ liệu

80 20 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 80
Dung lượng 1,15 MB

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

Nội dung

Phát hiện các luật kết hợp trong cơ sở dữ liệu Phát hiện các luật kết hợp trong cơ sở dữ liệu Phát hiện các luật kết hợp trong cơ sở dữ liệu luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp luận văn tốt nghiệp,luận văn thạc sĩ, luận văn cao học, luận văn đại học, luận án tiến sĩ, đồ án tốt nghiệp

Trang 1

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

-

LUẬN VĂN THẠC SĨ KHOA HỌC

PHÁT HIỆN CÁC LUẬT KẾT HỢP

TRONG CƠ SỞ DỮ LIỆU

NGÀNH: CÔNG NGHỆ THÔNG TIN

MÃ SỐ:

NGUYỄN HỒNG PHƯƠNG

Người hướng dẫn khoa học: TS NGUYỄN KIM ANH

HÀ NỘI 2009

Trang 2

LỜI CAM ĐOAN

Tôi xin cam đoan luận văn “Phát hiện các luật kết hợp trong cơ sở dữ liệu” là

do tôi thực hiện dưới sự hướng dẫn của TS Nguyễn Kim Anh – Viện Công Nghệ Thông Tin và Truyền Thông, trường Đại học Bách Khoa Hà Nội Mọi trích dẫn và tài liệu tham khảo được sử dụng trong luận văn đều được tôi chỉ rõ nguồn gốc Tôi xin hoàn toàn chịu trách nhiệm về lời cam đoan trên

Hà Nội, ngày 22 tháng 10 năm 2009

Tác giả luận văn

Nguyễn Hồng Phương

Trang 3

M ục lục

Mục lục - 1

Danh mục hình vẽ, bảng biểu - 3

Danh mục các thuật ngữ, từ viết tắt - 5

Lời nói đầu - 6

Chương 1: Tổng quan - 8

1.1 Khai phá dữ liệu - 8

1.2 Luật kết hợp - 9

1.2.1 Định nghĩa chính thức - 9

1.2.2 Định nghĩa thay thế - 10

1.3 Các vấn đề về phát hiện luật kết hợp trong cơ sở dữ liệu - 11

Chương 2: Luật kết hợp cơ bản - 13

2.1 Hai tính chất - 13

2.1.1 Tính chất 1 - 13

2.1.2 Tính chất 2 - 13

2.2 Phát hiện các tập mục thường xuyên - 14

2.2.1 Giải thuật Apriori - 14

2.2.2 Giải thuật AprioriTid - 15

2.3 Phát hiện các luật kết hợp - 17

2.3.1 Giải thuật đơn giản - 18

2.3.2 Một giải thuật nhanh hơn - 19

Chương 3: Sử dụng FP-tree phát hiện các tập mục thường xuyên - 21

3.1 Giới thiệu - 21

3.2 Thiết kế và xây dựng cây mẫu thường xuyên - 22

3.2.1 Cây mẫu thường xuyên - 22

3.2.2 Tính đầy đủ và tính cô đọng của cây FP - 26

3.3 Khai phá mẫu thường xuyên sử dụng cây FP - 27

3.4 Đánh giá thực nghiệm và nghiên cứu hiệu năng - 31

Chương 4: Luật kết hợp mở rộng - 33

4.1 Khai phá luật kết hợp đa mức - 33

4.1.1 Phát biểu bài toán - 33

4.1.2 Thuật toán - 37

4.2 Khai phá luật kết hợp định lượng - 40

4.2.1 Xử lý thuộc tính định lượng - 41

Trang 4

4.2.2 Ánh xạ từ bài toán luật kết hợp định lượng về bài toán luật kết hợp

boolean - 43

4.2.3 Phát biểu hình thức bài toán phát hiện luật kết hợp định lượng - 44

4.2.4 Cách tiếp cận khối dày đặc - 47

4.3 Khai phá luật kết hợp mờ - 53

4.3.1 Tập rõ - 54

4.3.2 Tập mờ - 54

4.3.3 Các thao tác mờ - 55

4.3.4 Giao dịch mờ và luật kết hợp mờ - 56

4.3.5 Phân vùng mờ miền thuộc tính định lượng - 60

4.4 Khai phá luật kết hợp mờ có trọng số - 62

4.4.1 Luật kết hợp mờ trọng số - 62

4.4.2 Luật kết hợp mờ trọng số chuẩn hóa - 63

Chương 5: Thử nghiệm - 67

5.1 Phát hiện luật kết hợp với thuật toán Apriori - 67

5.1.1 Các lớp của thuật toán - 67

5.1.2 Kết quả chạy thử - 68

5.2 Phát hiện luật kết hợp nhờ xây dựng FP-tree - 70

5.2.1 Dữ liệu đầu vào - 70

5.2.2 Kết quả chạy thử - 70

5.3 Phát hiện luật kết hợp định lượng nhờ phân vùng - 71

5.3.1 Các lớp của thuật toán - 71

5.3.2 Kết quả chạy thử - 73

Chương 6: Kết luận và hướng phát triển - 74

6.1 Kết luận chung - 74

6.1.1 Những kết quả đạt được - 74

6.1.2 Tồn tại - 74

6.2 Hướng phát triển - 75

Tài liệu tham khảo - 76

Trang 5

Danh m ục hình vẽ, bảng biểu

Hình 1.1: Quá trình phát hiện tri thức 9

Bảng 1.2: Ví dụ cơ sở dữ liệu 11

Hình 1.3: Các vấn đề trình bày trong báo cáo 12

Hình 2.1: A nhỏ thì superset(A) cũng nhỏ 13

Hình 2.2: B lớn thì subset(B) cũng lớn 13

Hình 2.3: Giải thuật Apriori 14

Hình 2.4: Hàm AprioriGen sử dụng trong giải thuật Apriori 15

Hình 2.5: Giải thuật AprioriTid 16

Hình 2.6: Ví dụ về AprioriTid 17

Hình 2.7: Một giải thuật đơn giản sinh các luật 18

Hình 2.8: Thủ tục GenRules được sử dụng trong giải thuật trên 18

Hình 2.9: Một giải thuật nhanh hơn để sinh luật 19

Hình 2.10: Thủ tục GenRules được sử dụng trong giải thuật nhanh 19

Bảng 3.1: Một cơ sở dữ liệu giao dịch 23

Hình 3.2: Cây FP kết quả 25

Bảng 3.3: Cơ sở mẫu và cây FP có điều kiện của các mục 29

Hình 3.4: Thời gian thực hiện và ngưỡng hỗ trợ 32

Hình 3.5: Thời gian thực hiện và số giao dịch 32

Hình 4.1: Phân cấp khái niệm đồ uống 33

Hình 4.2: Hai phân cấp khái niệm 34

Hình 4.3: Ví dụ 35

Hình 4.4: Ví dụ về luật thú vị 37

Hình 4.5:Thuật toán cơ bản 38

Hình 4.6: Thuật toán Cumulate 40

Bảng 4.7: Quan hệ People (Người) 41

Bảng 4.8: Ví dụ về luật kết hợp định lượng có phạm trù 41

Bảng 4.9: Hai cách tiếp cận phân vùng thuộc tính 43

Bảng 4.10: Bảng thu được sau khi ánh xạ 44

Hình 4.11: Các bước giải quyết bài toán 47

Hình 4.12: Ví dụ về một số luật định lượng 48

Hình 4.13: Tập mờ 55

Hình 4.14: Phần bù mờ 55

Bảng 4.15: Tập 6 giao dịch mờ 56

Bảng 4.16: Tuổi và giờ sinh của 6 người 58

Hình 4.17:Một số nhãn ngôn ngữ của thuộc tính Age 59

Trang 6

Hình 4.18: Một số nhãn ngôn ngữ của thuộc tính Hour 59

Bảng 4.19: Giao dịch mờ tương ứng của bảng 4.16 59

Hình 4.20: Ví dụ phân vùng tập mờ 61

Bảng 4.21: Miền của tập mờ Age (p = 30%) 61

Bảng 4.22: Ví dụ thuộc tính và giá trị mờ 63

Bảng 4.23: Trọng số của các mục 63

Hình 4.24: Thuật toán khai phá luật kết hợp trọng số chuẩn hóa 65

Bảng 5.1: Tổng hợp số liệu kiểm thử Apriori 69

Bảng 5.2: Tổng hợp số liệu kiểm thử FP-tree 70

Bảng 5.3: Tổng hợp số liệu kiểm thử luật định lượng 73

Trang 7

Danh m ục các thuật ngữ, từ viết tắt

Thu ật ngữ, từ viết tắt Ý nghĩa, giải thích

Data Mining Khai phá dữ liệu

KDD - Knowledge Discovery in

Databases

Phát hiện tri thức trong cơ sở dữ liệu

Association Rule Discovery Phát hiện luật kết hợp

Apriori Tên một giải thuật nổi tiếng để phát hiện các tập

FP-tree Cây mẫu thường xuyên

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

minconf, cmin Độ tin cậy tối thiểu

Fuzzy transaction Giao dịch mờ

quantitative association rule Luật kết hợp định lượng

quantitative attribute Thuộc tính định lượng

categorical attribute Thuộc tính phạm trù

NWFS Độ hỗ trợ mờ trọng số chuẩn hóa

Trang 8

L ời nói đầu

Sự tiến bộ của công nghệ cho phép chúng ta thu thập một lượng lớn dữ liệu và lưu trữ chúng Tuy nhiên, các tập dữ liệu này tự chúng không phản ánh được các quy luật giữa các thuộc tính để từ đó có thể vận dụng vào thực tế Khai phá dữ liệu được xem như là một hướng nghiên cứu trong cơ sở dữ liệu Từ một khối dữ liệu lớn, việc khai phá các tri thức trên chúng phục vụ cho các hệ thống sử dụng trí tuệ nhân tạo đang được các trung tâm, các trường đại học và một số công ty lớn quan tâm nghiên cứu và đã có một số công trình được công bố

Bài toán khai phá luật kết hợp đã được giới thiệu từ năm 1993, trong đó người

ta mong muốn xác định được mối quan hệ giữa các thuộc tính trong một cấu trúc của

cơ sở dữ liệu quan hệ Bài toán khai phá luật kết hợp đặt ra là tìm tất cả các luật kết hợp thỏa mãn độ hỗ trợ tối thiểu và độ tin cậy tối thiểu

Với mong muốn tìm hiểu về lĩnh vực này và đồng thời cũng cài đặt thử nghiệm một số thuật toán, em đã thực hiện công việc này trong quá trình làm luận văn cao học Bản báo cáo này trình bày lý thuyết từ cơ bản đến chuyên sâu, từ nền tảng của bài toán phát hiện luật kết hợp trong cơ sở dữ liệu giao dịch và xa hơn nữa

là phát hiện các luật kết hợp mở rộng trong cơ sở dữ liệu như luật kết hợp định lượng, luật kết hợp đa mức, luật kết hợp mờ

Bố cục của luận văn gồm các chương sau:

Chương 1 - Tổng quan Chương này trình bày khái niệm khai phá dữ liệu và luật kết

hợp

Chương 2 - Luật kết hợp cơ bản Nội dung chương này giới thiệu các tính chất và

hai giai đoạn để tìm ra luật kết hợp trong cơ sở dữ liệu giao dịch

Chương 3 - Sử dụng FP-Tree để phát hiện các tập mục thường xuyên Chương này

giới thiệu một cách tiếp cận khác để sinh ra các tập mục thường xuyên mà không phải trải qua bước sản sinh các tập mục ứng cử viên như cách truyền thống

Chương 4 - Luật kết hợp mở rộng Chương này trình bày các phạm vi khác nhau của

bài toán phát hiện luật kết hợp: phát hiện luật kết hợp đa mức trong cơ sở dữ liệu giao dịch, phát hiện luật kết hợp định lượng, phát hiện luật kết hợp mờ trong cơ sở

dữ liệu quan hệ

Chương 5 - Thử nghiệm Chương này giới thiệu các cài đặt thuật toán và cung cấp

một số kết quả kiểm thử

Trang 9

Chương 6 - Kết luận và hướng phát triển Chương này tổng kết lại những việc đã

làm được và chưa làm được của luận văn, đồng thời cung cấp một số gợi ý cho các công việc tiếp theo

Em xin gửi lời cảm ơn tới TS Nguyễn Kim Anh, người đã tận tình giúp đỡ em trong quá trình làm luận văn

Em mong nhận được ý kiến đóng góp của thầy cô giáo và bạn bè

H ọc viên

Trang 10

Chương 1: Tổng quan

Phần đầu của chương này sẽ giới thiệu tổng quan quy trình khai phá dữ liệu (data mining) một cách ngắn gọn Luật kết hợp trình bày trong phần tiếp theo được xem như là một kỹ thuật khai phá dữ liệu

rẻ, dung lượng lớn như đĩa từ, đĩa CD-ROM

Chúng ta cần có công nghệ mới hay công cụ với khả năng thông minh để tự động biến đổi dữ liệu đã được xử lý thành những thông tin và tri thức có ích Thuật ngữ phát hiện tri thức trong cơ sở dữ liệu (knowledge discovery in databases - KDD) đã trở nên phổ biến Quá trình phát hiện tri thức phải trải qua một số bước tương tác và lặp Xen giữa các bước là việc ứng dụng các giải thuật để trích rút ra các mẫu dữ liệu, gọi là khai phá dữ liệu (data mining)

Theo [1], các bước cơ bản của quá trình phát hiện tri thức gồm:

1 Sau khi phân tích mục đích của người sử dụng cuối và nhận về các tri thức cần thiết, chúng ta chọn ra các tập dữ liệu đích Điều này có nghĩa là tập trung vào một tập con các biến hay dữ liệu mẫu

2 Dữ liệu đích được tiền xử lý và làm sạch để loại bỏ những dữ liệu bẩn và ngoại lai

3 Đưa ra những đặc trưng có ích biểu diễn dữ liệu

4 Mục tiêu của quá trình phát hiện tri thức là dự đoán các giá trị tương lai của các biến quan tâm hoặc tìm ra những mẫu dữ liệu mà con người có thể hiểu Giải thuật khai phá dữ liệu thích hợp được lựa chọn và áp dụng Có một số thuật giải: kết hợp, phân lớp, phân nhóm,

Trang 11

X nếu XT Mỗi tập mục có một thông số thống kê gọi là độ hỗ trợ (support) hay

tần số (frequency) Độ hỗ trợ s của một tập mục X là tỉ lệ các giao dịch trong cơ sở

dữ liệu Dchứa tập mục X , tức là:

D

T X D T X

=)(

Một luật kết hợp là một luật có dạng XY, trong đó X ⊂ ,I YIX ∩ Y =∅

X được gọi là phần đầu của luật (antecedent) và Yđược gọi là phần thân của luật (consequent) Luật XYcó độ hỗ trợ s trong tập giao dịch D nếu s% các giao dịch trong Dchứa XY:

D

Y X

dữ liệu Thông dĐánh giá ịch /

Dữ liệu mục tiêu Dữ liệu Dữ liệu tiền xử lý Dữ liệu biến đổi Mẫu Tri thức

Trang 12

Luật XYđộ tin cậy c trong tập giao dịch D nếu c% các giao dịch trong

Dchứa X thì cũng chứa Y:

X

Y X

)(

)(

),(

X s

Y X s Y X

Độ tin cậy biểu thị khả năng của một luật Một ngưỡng cmincủa độ tin cậy (còn gọi là

độ tin cậy tối thiểu - minconf) được sử dụng để loại bỏ những luật không đủ mạnh Một ngưỡng smincủa độ hỗ trợ (còn gọi là độ hỗ trợ tối thiểu - minsupp) loại bỏ các luật mà số lượng các giao dịch chứa phần đầu và thân luật nhỏ hơn một lượng xác định Các tập mục với độ hỗ trợ tối thiểu được gọi là các tập mục thường xuyên (frequent itemsets) hay các tập mục lớn (large itemsets)

Bài toán tìm kiếm các luật kết hợp được phát biểu như sau: Cho một tập mục I , một

cơ sở dữ liệu các tập mụcD, một ngưỡng hỗ trợ sminvà một ngưỡng tin cậy cmin, chúng ta phải tìm ra các luật kết hợpXYtrong Dvới độ hỗ trợ ssminvà độ tin cậy ccmin

1.2.2 Định nghĩa thay thế

Cho D={T1,T2, ,T n} là một quan hệ trên sơ đồ quan hệI ={I1,I2, ,I m}, trong đó mỗi thuộc tính I i,i∈{1, ,m}nhận hai giá trị {true, false} Nói theo cách khác, D là một tập các vector nhị phân chiều dài m Với mỗi hàng Tcủa quan hệ Dthỏa mãn điều kiện ∀i∈{1, ,m}:T[i]↔I iT Độ hỗ trợ của một tập mục XI là:

D

i T X I D T X

=

Hơn nữa, chúng ta có thể dùng cách tiếp cận xác suất để định nghĩa độ hỗ trợ và độ tin cậy XYlà các tập mục, trong đó X ⊂ ,I YIX ∩ Y =∅ P ( X)là xác suất tất cả các mục trong X có trong một giao dịch Độ hỗ trợ s của một luật XYđược định nghĩa là s=P(XY) và độ tin cậy c là xác suất có điều kiện của Y khi có X, tức là c= P ( X Y )

Ví d ụ:

Bảng 1.2 là một ví dụ về cơ sở dữ liệu các giao dịch trong siêu thị I là một tập các mặt hàng bao gồm các mặt hàng A, B, C, D Mỗi dòng của bảng chứa một định danh giao dịch TID mô tả một giao dịch mua hàng của một khách hàng, hay nói khác đi

đó là một rỏ các mặt hàng khách hàng đã quyết định mua

Độ hỗ trợ của tập mục {A, B} là 0.4 Độ hỗ trợ của tập {A, B, D} là 0.3 Do đó, độ tin cậy của luật {A, B}⇒{D} là 0.75 Nếu độ hỗ trợ tối thiểu s nhỏ hơn hoặc bằng

Trang 13

0.3 và độ tin cậy cmin nhỏ hơn hoặc bằng 0.75 thì luật này được coi là luật kết hợp Chúng ta có thể phát biểu "Nếu khách hàng mua mặt hàng A và B thì có cơ hội 75% khách hàng cũng sẽ mua D"

1.3 Các v ấn đề về phát hiện luật kết hợp trong cơ sở dữ liệu

Các nghiên cứu đều tập trung vào phát hiện các luật kết hợp trong cơ sở dữ liệu giao dịch và cơ sở dữ liệu quan hệ Cơ sở dữ liệu giao dịch là cơ sở dữ liệu có chứa các giao dịch mà mỗi giao dịch thể hiện trạng thái "có" hay "không" sự xuất hiện của các thuộc tính Chính vì thế, nó còn được gọi là cơ sở dữ liệu nhị phân Cơ sở dữ liệu quan hệ, như đã biết, có rất nhiều thuộc tính như thuộc tính nhị phân, thuộc tính phạm trù, thuộc tính định lượng (số),…

Đối với cơ sở dữ liệu giao dịch, để phát hiện các luật kết hợp trong đó, đã có rất nhiều công trình được đăng trên các tạp chí, kỷ yếu hội thảo Thuật toán Apriori và các cải tiến của nó [2][8] đã được đề xuất để thực hiện nhiệm vụ này Một đặc điểm của những thuật toán này là tốn khá nhiều chi phí cho việc sinh ra các tập mục ứng

cử Để giải quyết vấn đề này, [15][16][32] đã đề xuất sử dụng cây mẫu thường xuyên (FP-tree) để phát hiện các tập mục thường xuyên, tránh được việc phải sinh quá nhiều tập mục ứng cử Xoay quanh bài toán đối với cơ sở dữ liệu giao dịch, một số bài báo cũng trình bày khía cạnh khác: luật kết hợp đa mức [19][22][23][24][25] Đối với cơ sở dữ liệu quan hệ, vấn đề trở nên phức tạp hơn rất nhiều Vì cơ sở dữ liệu quan hệ chứa các thuộc tính định lượng, phạm trù,… nên nảy sinh công đoạn xử

lý các thuộc tính này trước khi sinh các tập mục thường xuyên Các bài toán ở đây gồm: phát hiện luật kết hợp định lượng và phạm trù [1], phát hiện luật kết hợp mờ và luật kết hợp mờ có trọng số [5][6][13][14][28][29]

Trang 14

Bản luận văn này trình bày các vấn đề trên theo cấu trúc sau:

Hình 1.3: Các v ấn đề trình bày trong báo cáo

Sau đó là phần cài đặt thử nghiệm các thuật toán và kết luận

Phát hiện các luật kết hợp trong cơ sở dữ liệu

Trang 15

Chương 2: Luật kết hợp cơ bản

Chương này giới thiệu một số thuật giải phát hiện các luật kết hợp trong cơ sở dữ liệu giao dịch Cách làm ở đây chia ra thành hai nhiệm vụ nhỏ hơn:

- Tìm kiếm các tập mục với độ hỗ trợ lớn hơn hoặc bằng ngưỡng tối thiểu smin

- Xây dựng các luật kết hợp với độ tin cậy lớn hơn hoặc bằng ngưỡng tối thiểu cmin

Nếu một tập mục là lớn (thường xuyên) thì các tập con của nó cũng lớn (thường xuyên)

Trang 16

2.2 Phát hi ện các tập mục thường xuyên

Có rất nhiều thuật giải đã được đề xuất để giải quyết bài toán này Phần này sẽ giới thiệu chi tiết một vài trong số các thuật giải

2.2.1 Gi ải thuật Apriori

Giải thuật Apriori là giải thuật kinh điển để tìm các tập mục thường xuyên Nội dung giải thuật được thể hiện trong hình 2.3 Mặc dù có nhiều giải thuật cải tiến khác, nhưng ở đây, tôi xin trình bày lại giải thuật này vì nó là nền tảng giúp chúng ta hiểu hơn về công việc cần tiến hành

Giả sử mỗi tập mục gồm có hai trường: một tập các mục và một bộ đếm cho biết số lượng các giao dịch hỗ trợ tập mục Trong bước duyệt đầu tiên của giải thuật, với mỗi mục i của tập I, chúng ta đếm số giao dịch chứa nó Nếu kết quả vượt smin thì mỗi mục sẽ là một 1-tập mục thường xuyên Tất cả các bước duyệt sau này đều bao gồm 2 pha Gọi bước duyệt hiện tại là k Trong pha đầu tiên, chúng ta xây dựng một tập Ck các k-tập mục ứng cử (candidate k-itemsets) từ tập Lk-1 của các (k-1)-tập mục thường xuyên có được ở bước trước Tập mục ứng cử được tính toán nhờ hàm AprioriGen được chỉ ra trong hình 2.4

Trong pha thứ hai, chúng ta quét cơ sở dữ liệu D và kiểm tra mỗi giao dịch t xem có chứa các tập mục ứng cử trong đó hay không Nếu t có chứa tập mục ứng cử thì bộ đếm của tập mục này sẽ được tăng thêm 1 đơn vị Chúng ta có hàm Subset để thực hiện điều này

Hình 2.3: Gi ải thuật Apriori

Đầu vào: Cơ sở dữ liệu các giao dịch D và smin

Đầu ra: Tập Answer chứa tất cả các tập mục thường xuyên của D

Gi ải thuật:

1) L1 = {large 1-itemsets};

2) for(k=2; Lk-1≠∅; k++) do begin

3) Ck = AprioriGen(Lk-1); // New candidate

4) forall transactions t∈D do begin

5) Ct = Subset(Ck, t); // Candidates contained in t

Trang 17

Hàm AprioriGen bao gồm 2 pha Nó nhận đối số là tập các (k-1)-tập mục thường xuyên Lk-1 Trong pha đầu tiên, gọi là pha kết nối, chúng ta kết nối Lk-1 với chính nó Chúng ta giả sử rằng các mục của một tập mục được sắp xếp theo thứ tự từ điển

Hình 2.4: Hàm AprioriGen s ử dụng trong giải thuật Apriori

Trong pha cắt tỉa, chúng ta xóa tất cả các tập mục c∈Ck mà các (k-1)-tập con của c không có mặt trong Lk-1

2.2.2 Gi ải thuật AprioriTid

Giải thuật AprioriTid được chỉ ra trong hình 2.5 cũng sử dụng hàm AprioriGen (hình 2.4) để quyết định các tập mục ứng cử trước khi vòng lặp duyệt bắt đầu Đặc điểm thú vị của giải thuật này là cơ sở dữ liệu D không được sử dụng để tính toán độ hỗ trợ sau lần duyệt đầu tiên Hơn nữa, tập C kđược sử dụng cho mục đích này Mỗi phần tử của tập C k có dạng <TID, {Xk}>, trong đó Xk là k-tập mục lớn ứng cử hiện diện trong giao dịch với định danh TID Với k=1, C1tương ứng với cơ sở dữ liệu D,

mỗi mục i được thay thế bởi tập mục {i} Với k>1, C kđược sinh ra bởi thuật giải (bước 10) Phần tử của C ktương ứng với giao dịch t là <t.TID, {c∈Ck | c có trong t}> Nếu một giao dịch không chứa bất kỳ k-tập mục ứng cử thì C ksẽ không có một phần

tử (dòng vào, entry) cho giao dịch này Do đó, số phần tử trong C kcó thể nhỏ hơn số giao dịch trong cơ sở dữ liệu, đặc biệt với giá trị rất lớn của k Hơn nữa, với giá trị k

Đầu vào: Một tập Lk-1 chứa tất cả các (k-1)-tập mục thường xuyên

Đầu ra: Tập Ck ứng cử là một siêu tập chứa tất cả các k-tập mục thường xuyên

Trang 18

lớn, mỗi phần tử có thể nhỏ hơn giao dịch tương ứng bởi vì bởi vì có rất ít ứng viên tiềm năng có thể hiện diện trong giao dịch Tuy nhiên, với giá trị k nhỏ, mỗi phần tử

có thể lớn hơn giao dịch tương ứng bởi vì một phần tử trong Ck bao gồm tất cả các tập mục ứng cử hiện diện trong giao dịch

k-Hình 2.5: Gi ải thuật AprioriTid

Ví d ụ:

Quan sát cơ sở dữ liệu trên hình 2.6, giả thiết smin (minimum support, minsup) là 2 giao dịch Gọi AprioriGen với đối số là L1 ở bước 4 sẽ sinh ra các tập mục ứng cử C2

Từ bước 6 đến bước 10, chúng ta đếm độ hỗ trợ của các tập mục ứng cử trong C2

bằng cách lặp trên các phần tử trong C1và sinh ra C2 Hạng mục đầu tiên trong C1là {{1},{3},{4}} tương ứng với giao dịch TID là 100 Tập Ct ở bước 7 tương ứng với hạng mục t này là {{1 3}} bởi vì {1 3} là phần tử của C2 và cả ({1 3}-{1}) và ({1 3}-{3}) đều là phần tử của t.set-of-itemsets

Gọi AprioriGen với đối số là L2 sẽ sinh ra C3 Duyệt qua dữ liệu C2và C3 sẽ có được

C Chú ý rằng không có hạng mục trong C với TID là 100 và 400 Tập ứng cử {2 3

Đầu vào: Cơ sở dữ liệu các giao dịch D và smin

Đầu ra: Tập Answer chứa tất cả các tập mục thường xuyên của D

6) forall entries t C k− 1 do begin

7) // determine candidate itemsets in Ck contained

// in the transaction with identifier t.TID

Ct = {c∈Ck | (c-c[k]) ∈t.set-of-itemsets ∧ (c-c[k-1]) ∈t.set-of-itemsets}

Trang 19

5} trong C3 trở thành lớn và là phần tử duy nhất của L3 Sử dụng L3 sinh ra C4 là một tập rỗng, chúng ta kết thúc tại đây

Trang 20

toán phụ thuộc chủ yếu vào hiệu quả của công việc tìm kiếm các tập mục thường xuyên

Xét một k-tập mục thường xuyên và một độ tin cậy tối thiểu 0, tức là mọi luật đều được chấp nhận là luật kết hợp Tổng số luật là ∑ −

k

i i

k

Nếu có tập mục thường xuyên {A, B, C}, chúng ta có thể xây dựng được 6 luật {A}⇒{B, C}, {B}⇒{A, C}, {C}⇒{A, B}, {A, B}⇒{C}, {A, C }⇒{B}, {B, C}⇒{A}

2.3.1 Gi ải thuật đơn giản

Cho một k-tập mục thường xuyên f với k ≥ 2 và một tập con l, trong đó, ∅ ⊂ l ⊂ f, một luật l⇒f\l là một luật kết hợp nếu s(f)/s(l) ≥ cmin Nếu luật l⇒f\l không có độ tin cậy tối thiểu thì luật l'⇒f\l' cũng không, trong đó ∅ ⊂ l' ⊂ l Do đó, thay vì phải xét tất cả các tập con của f để sinh ra các luật kết hợp, chúng ta có thể sử dụng phương pháp đệ quy để sinh ra luật với một (k-1)-tập con l' của một k-tập mục l như là phần đầu của luật khi và chỉ khi l⇒f\l có độ tin cậy tối thiểu Thuật giải được chỉ ra trên hình 2.7 và 2.8 dưới đây:

Hình 2.7: M ột giải thuật đơn giản sinh các luật

Hình 2.8: Th ủ tục GenRules được sử dụng trong giải thuật trên

Đầu vào: Tập tất cả các tập mục thường xuyên có nhiều hơn một mục

Đầu vào: Hai tập mục thường xuyên fk và lm, và một ngưỡng độ tin cậy cmin

Đầu ra: Các luật kết hợp với nhiều nhất m-1 mục ở phần đầu luật (m>2)

Trang 21

2.3.2 M ột giải thuật nhanh hơn

Ý tưởng của phần trước có thể được viết lại như sau: Nếu luật l⇒f\l có độ tin cậy tối thiểu, tất cả các luật l'⇒f\l', trong đó ∅ ⊂ l' ⊂ l cũng phải có độ tin cậy tối thiểu Thay vì sinh ra vế trái của luật theo kiểu từ trên xuống (top-down) từ các k-tập mục xuống các 1-tập mục, chúng ta có thể sinh ra vế phải từ dưới lên (bottom up) bắt đầu với các 1-tập mục và tiến tới các k-tập mục Tương ứng với việc sinh ra các tập con trong dòng 2 của hình 2.8, chúng ta có thể tạo các siêu tập sử dụng hàm AprioriGen trong hình 2.4 Theo cách tiếp cận này, giải thuật được chỉ ra trong hình 2.9 và 2.10

Hình 2.9: M ột giải thuật nhanh hơn để sinh luật

Hình 2.10: Th ủ tục GenRules được sử dụng trong giải thuật nhanh

Giải thuật này hiệu quả hơn giải thuật trên Quan sát ví dụ: cho tập mục thường xuyên {A, B, C, D, E} Giả sử rằng các luật {A, C, D, E}⇒{B} và {A, B, C,

Đầu vào: Tập tất cả các tập mục thường xuyên có nhiều hơn một mục

Đầu vào: Một k-tập mục thường xuyên fk, một tập m-mục thân luật Rm, và một ngưỡng

độ tin cậy cmin

Đầu ra: Các luật kết hợp với ít nhất m+1 mục ở thân luật

Trang 22

E}⇒{D} là các luật kết hợp duy nhất có một mục phía bên phải Sử dụng giải thuật đơn giản, gọi đệ quy thủ tục GenRules({A, B, C, D, E},{A, C, D, E}) sẽ sinh ra các

vế phải của luật {B, A},{B, C},{B, D} và {B, E} Ví dụ, luật với vế phải {B, E} không được giữ vì {E}⊂{B, E} và luật {A, B, C, D}⇒{E} không có độ tin cậy tối thiểu Tương tự với GenRules({A, B, C, D, E},{A, B, C, E}) Luật kết hợp duy nhất với 2 mục ở vế phải là {A, C, E}⇒{B, D}, là luật duy nhất được kiểm tra bởi giải thuật nhanh

Cả hai giải thuật đều có mặt trái là chúng có thể sinh ra các luật kết hợp trùng nhau

Ví dụ, gọi GenRules({A, B, C, D, E},{B}) và GenRules({A, B, C, D, E},{D}) Cả hai đều sinh ra {B, D} như là vế phải 2 mục Do đó, cả hai đều sinh ra cùng luật {A,

C, E}⇒{B, D}

Để tránh hiện tượng này, các luật nên được chèn vào một tập hợp Vì các phần tử của tập hợp là duy nhất nên tập hợp có thể được sử dụng như là một nguồn dữ liệu cho việc sản sinh các luật kết hợp

Trang 23

Chương 3: Sử dụng FP-tree phát hiện các tập mục

thường xuyên

Chương này giới thiệu một cấu trúc dữ liệu được dùng để tìm ra các tập mục thường xuyên một cách hiệu quả hơn so với thuật toán Apriori Phần đầu của chương phân tích về những hạn chế của giải thuật Apriori và các cải tiến của giải thuật này Các phần tiếp theo giới thiệu cây FP và cách xây dựng cũng như khai thác cây FP để đưa

ra các tập mục thường xuyên

3.1 Gi ới thiệu

Như đã trình bày ở phần trước, việc phát hiện các tập mục thường xuyên đóng một vai trò quan trọng trong phát hiện luật kết hợp Phần lớn các kết quả nghiên cứu như [2][8][9] đều chọn cách tiếp cận kiểu Apriori: nếu các tập mục chiều dài k mà không phải là thường xuyên thì các siêu tập của nó với chiều dài (k+1) cũng không thường xuyên Bản chất là lặp đi lặp lại việc sinh ra các tập mục ứng cử chiều dài k từ các tập mục thường xuyên chiều dài (k-1) với k > 1 và sau đó kiểm tra xem các tập mục ứng cử có đủ tần suất xuất hiện trong cơ sở dữ liệu hay không Một số cải tiến cũng

đã được đề xuất để làm giảm số tập mục ứng cử Tuy nhiên, với một số lượng lớn các giao dịch có nhiều thuộc tính, các thuật giải tựa Apriori gặp phải một số vấn đề sau:

Chi phí cho việc kiểm soát một số lượng lớn các tập ứng cử Ví dụ, nếu có 104

1-tập mục thường xuyên, thuật giải Apriori sẽ sinh ra hơn 107 tập ứng cử kích thước

2, sau đó phải thực hiện tính cộng và kiểm tra tần suất xuất hiện của chúng Hơn nữa,

để phát hiện tập mục kích thước 100 như là {I1, I2,…, I100}, nó phải sinh ra khoảng

2100 ≈ 1030 ứng cử viên Như vậy, chi phí sẽ rất tốn kém cho dù các kỹ thuật cài đặt

có được cải tiến

Phải lặp đi lặp lại việc duyệt cơ sở dữ liệu để kiểm tra một lượng lớn các tập ứng cử bằng cách so khớp

Vấn đề thắt cổ chai của thuật toán Apriori nằm ở chỗ sinh các tập ứng cử và kiểm tra nó Nếu chúng ta có thể tránh được việc sinh ra quá nhiều tập ứng cử thì hiệu quả có thể được cải thiện đáng kể Han, Pei và Yin, trong [15] đã đề xuất sử dụng cấu trúc cây trên ba khía cạnh sau:

Thứ nhất, cấu trúc dữ liệu nén truyền thống được gọi là cây mẫu thường xuyên (FP-tree, frequent pattern tree) được xây dựng Nó là sự mở rộng của cây tiền

tố để lưu trữ các thông tin cốt yếu về các mẫu thường xuyên Chỉ những mục thường

Trang 24

xuyên chiều dài 1 mới có các nút trong cây, và nút của cây được sắp xếp theo ý tưởng là các nút nào xuất hiện thường xuyên hơn sẽ có cơ hội hơn để chia sẻ nút đó

Thứ hai, phương pháp khai phá tăng trưởng phân đoạn mẫu dựa trên FP-tree được phát triển bắt đầu từ mẫu thường xuyên kích thước 1( như một mẫu hậu tố khởi đầu), chỉ kiểm tra cơ sở mẫu điều kiện ( một cơ sở dữ liệu con chứa tập các mục thường xuyên cùng xuất hiện với mẫu hậu tố), xây dựng FP-tree và thực hiện khai phá đệ quy với cây Tăng trưởng mẫu đạt được thông qua thao tác kết nối mẫu hậu tố với mẫu hậu tố mới được sinh ra từ cây FP điều kiện Thao tác chính ở đây là đếm bộ tích lũy và điều chỉnh bộ đếm tiền tố, do đó sẽ ít tốn kém hơn so với việc sinh các ứng cử viên và so khớp mẫu được thực hiện trong thuật toán kiểu Apriori

Thứ ba, kỹ thuật tìm kiếm thực hiện dựa trên phân đoạn, chia và trị chứ không phải là kết hợp sinh các tập mục thường xuyên từ dưới lên theo kiểu Apriori Do đó làm giảm kích thước cơ sở mẫu điều kiện được sinh ra ở mức tiếp sau của việc tìm kiếm

3.2 Thi ết kế và xây dựng cây mẫu thường xuyên

Cho I = {a1, a2, …, am} là một tập các mục, DB = <T1, T2, …, Tn> là một cơ sở dữ liệu giao dịch, trong đó Ti (với i = 1, 2, …, n) là một giao dịch chứa tập các mục trong I Độ hỗ trợ hay tần suất xuất hiện của mẫu A (tập các mục) là số giao dịch chứa A trong DB Chú ý rằng, độ hỗ trợ ở đây là con số tuyệt đối chứ không phải tỉ

lệ tương đối trong cơ sở dữ liệu như các thuật toán truyền thống A được gọi là mẫu thường xuyên nếu độ hỗ trợ của nó không nhỏ hơn độ hỗ trợ tối thiểu

Cho cơ sở dữ liệu giao dịch DB và độ hỗ trợ tối thiểu minsup, bài toán đi tìm tập đầy

đủ các mẫu thường xuyên được gọi là bài toán khai phá mẫu thường xuyên

3.2.1 Cây m ẫu thường xuyên

Để thiết kế một cấu trúc dữ liệu nén cho bài toán khai phá mẫu thường xuyên, chúng

ta quan sát một ví dụ

Ví dụ 1: DB là cơ sở dữ liệu giao dịch cho trong bảng 3.1 và minsup = 3

Trang 25

B ảng 3.1: Một cơ sở dữ liệu giao dịch

Vì các mục thường xuyên đóng một vai trò quan trọng trong khai phá mẫu thường xuyên nên cần phải duyệt DB một lần để nhận diện tập các mục thường xuyên

Nếu chúng ta lưu trữ tập các mục thường xuyên của mỗi giao dịch trong cấu trúc nén nào đó thì có thể tránh được phải quét nhiều lần DB

Nếu có nhiều giao dịch chia sẻ một tập mục thường xuyên giống nhau thì chúng có thể được hòa nhập lại làm một với số lần xuất hiện được lưu trong biến count Dễ dàng kiểm tra hai tập có giống nhau hay không nếu các mục thường xuyên trong tất

cả các giao dịch được sắp xếp thông qua một thứ tự định trước

Nếu hai giao dịch cùng có chung phần tiền tố, thông qua một thứ tự sắp xếp các mục thường xuyên, các phần chia sẻ có thể được hòa nhập bằng cách sử dụng một cấu trúc tiền tố miễn là biến count được đăng ký hoàn chỉnh Nếu các mục thường xuyên được sắp xếp theo thứ tự giảm dần của tần suất thì sẽ có nhiều hơn các chuỗi tiền tố được chia sẻ

Dựa trên những phân tích trên, chúng ta có thể xây dựng cây FP như sau:

Bước 1: Duyệt cơ sở dữ liệu lần đầu, tìm tất cả các mục thường xuyên (các mẫu chỉ

có 1 mục) và sắp xếp chúng vào một danh sách L theo thứ tự giảm dần của tần suất

Ví dụ, với cơ sở dữ liệu trên, ta có danh sách L = {f:4, c:4, a:3, b:3, m:3, p:3}, số đằng sau dấu hai chấm ":" là độ hỗ trợ của mục tương ứng

Bước 2: Duyệt cơ sở dữ liệu lần thứ hai, với mỗi giao dịch, sắp xếp các mục thường

xuyên của nó theo thứ tự trong L và đưa nó vào cây FP

Minh họa việc xây dựng cây FP đối với cơ sở dữ liệu trên:

Bước 1: Duyệt DB lần đầu để sinh ra danh sách L

Trang 27

Cây FP kết quả:

Hình 3.2: Cây FP k ết quả

Định nghĩa FP-tree là một cây mẫu thường xuyên có cấu trúc như sau:

Nó bao gồm một nút gốc gán nhãn "null", một tập các cây con tiền tố như là các con của nút gốc và một bảng header mục thường xuyên

Mỗi nút trong cây con tiền tố mục bao gồm có ba trường: tên mục (item-name), bộ đếm (count) và con trỏ nút (node-link) Tên mục cho biết mục mà nút biểu diễn, bộ đếm cho biết số giao dịch được biểu diễn một phần từ nút gốc cho tới nút này và con trỏ nút chỉ tới nút tiếp theo trong cây mà nó có cùng tên hoặc con trỏ nút sẽ là null nếu không có nút cùng tên nào khác

Mỗi entry trong bảng header mục thường xuyên có hai trường: (1) tên mục name) và (2) head của nút con trỏ

Trang 28

(item-Thu ật toán xây dựng FP-tree:

Đầu vào: Một cơ sở dữ liệu giao dịch DB và độ hỗ trợ tối thiểu minsup

Đầu ra: Cây mẫu thường xuyên (FP-tree)

Phương pháp tiến hành như sau:

Duyệt cơ sở dữ liệu giao dịch DB lần 1 Thu thập tất cả các mục thường xuyên F và

độ hỗ trợ của nó Sắp xếp F theo thứ tự giảm dần của độ hỗ trợ, ta có danh sách L các mục thường xuyên

Tạo ra nút gốc của cây FP, T, gán nhãn null cho nó Với mỗi giao dịch Trans trong

DB, ta làm như sau:

Chọn và sắp xếp các mục thường xuyên trong Trans theo thứ tự của L Gọi danh sách các mục thường xuyên đã được sắp xếp trong L là [p|P], trong đó p là phần tử đầu tiên và P là phần còn lại của danh sách Gọi thủ tục insert_tree([p|P], T)

Thủ tục insert_tree([p|P], T) được thực hiện như sau: Nếu T có một con N sao cho N.item-name = p.item-name thì tăng bộ đếm của N lên 1; ngược lại tạo nút mới N và gán giá trị 1 cho bộ đếm của nút N mới này, nút mới này sẽ được link tới bởi T Nó

sẽ được link tới bởi nút có cùng tên thông qua cấu trúc nút con trỏ Nếu P vẫn chưa rỗng thì ta gọi đệ quy insert_tree(P, N)

Phân tích

Từ cách xây dựng cây FP trên đây, ta thấy rằng chỉ cần duyệt qua cơ sở dữ liệu hai lần: lần đầu thu thập các tập mục thường xuyên và lần thứ hai xây dựng cây FP Chi phí cho việc chèn một giao dịch T vào cây FP là O(|T|), trong đó |T| là số mục thường xuyên trong giao dịch T

3 2.2 Tính đầy đủ và tính cô đọng của cây FP

Một vài tính chất quan trọng của FP-tree có thể được quan sát trong quá trình xây dựng

Bổ đề 2.1 Cho một cơ sở dữ liệu giao dịch DB và một ngưỡng minsup, cây FP

tương ứng của nó chứa đầy đủ thông tin của DB trong ngữ cảnh khai phá mẫu thường xuyên

Cơ sở khoa học Dựa trên quá trình xây dựng cây FP, mỗi giao dịch trong DB được

ánh xạ vào một đường dẫn trong cây FP, và thông tin tập mục thường xuyên trong mỗi giao dịch được lưu trữ đầy đủ trong cây FP Hơn nữa, một đường dẫn trong cây

FP có thể biểu diễn các tập mục thường xuyên trong nhiều giao dịch mà không có nhập nhằng vì đường dẫn biểu diễn mỗi giao dịch phải xuất phát từ gốc của mỗi cây con tiền tố item Do đó, chúng ta có bổ đề này

Trang 29

Bổ đề 2.2 Không tính nút gốc, kích thước của một cây FP bị ràng buộc bởi tất cả sự

xuất hiện của các mục thường xuyên trong cơ sở dữ liệu, và chiều cao của cây bị giới hạn bởi số mục thường xuyên dài nhất của giao dịch trong cơ sở dữ liệu

Cơ sở khoa học Dựa trên quá trình xây dựng cây FP, với bất kỳ giao dịch T trong

DB luôn tồn tại một đường dẫn trong cây FP xuất phát từ item tiền tố của cây con tương ứng sao cho tập các nút trong đường dẫn bằng tập các mục trong T Không có mục thường xuyên nào trong các giao dịch có thể tạo ra hơn một nút trong cây, nút gốc (null) là nút duy nhất được tạo ra không phải do các mục thường xuyên Mỗi nút chứa một con trỏ nút và một bộ đếm thông tin Do đó, chúng ta có giới hạn về kích thước của cây Chiều cao của bất kỳ cây con tiền tố item nào cũng là số lượng nhiều nhất các mục thường xuyên có trong giao dịch

Bổ đề 2.2 chỉ ra một lợi ích quan trọng của cây FP: kích thước của cây được giới hạn

bởi kích thước của cơ sở dữ liệu tương ứng Mỗi giao dịch đóng góp nhiều nhất một đường dẫn cho cây FP với chiều dài bằng số lượng mục thường xuyên của giao dịch

đó Bởi vì các giao dịch chia sẻ khá nhiều mục thường xuyên nên kích thước của cây dường như nhỏ hơn rất nhiều so với cơ sở dữ liệu gốc của nó Không giống như các phương pháp kiểu Apriori sinh ra số lượng hàm mũ các ứng cử viên trong trường hợp tồi nhất, FP-tree không xảy ra trường hợp đó FP-tree là cấu trúc cực nén để lưu trữ thông tin phục vụ khai phá mẫu thường xuyên

Các mục trong tập mục thường xuyên được sắp xếp theo thứ tự độ hỗ trợ giảm dần: các mục xuất hiện thường xuyên hơn được xếp ở gần đỉnh của cây hơn và do đó có thể được chia sẻ nhiều hơn Một số thực nghiệm cũng đã chứng minh tỉ lệ nén cao của cấu trúc FP-tree Tuy nhiên, cũng không thể khẳng định chắc chắn rằng FP-tree luôn ở gọn trong bộ nhớ với bất kỳ cơ sở dữ liệu lớn nào

3.3 Khai phá m ẫu thường xuyên sử dụng cây FP

Xây dựng một cây FP nén đảm bảo rằng các bước khai phá tiếp theo có thể được thực hiện với cấu trúc dữ liệu nén hơn Tuy nhiên, điều này không tự nhiên đảm bảo một cách chắc chắn rằng việc sinh các ứng cử viên sẽ hiệu quả hơn nếu chúng ta chỉ đơn giản sử dụng cây FP để sinh và kiểm tra các mẫu ứng cử

Phần này sẽ trình bày một phương pháp khai phá hiệu quả tập đầy đủ các mẫu thường xuyên

Một số tính chất của FP-tree sẽ giúp ích cho việc khai phá các mẫu thường xuyên:

Trang 30

Tính chất 1.(Tính chất nút-liên kết) Với bất kỳ mục thường xuyên ai, tất cả các mẫu thường xuyên chứa ai có thể thu được bằng cách men theo các liên kết nút của ai, bắt đầu từ mục ai trong header của cây FP

Tính chất này dựa trên quá trình xây dựng cây FP

<c:1, b:1> Hai đường dẫn tiền tố này của p {<f:2, c:2, a:2, m:2>, <c:1, b:1>} tạo thành cơ sở mẫu con (subpattern base) của p hay cơ sở mẫu có điều kiện (conditional pattern base) của p (chữ điều kiện ở đây ngụ ý sự hiện diện của p) Xây dựng cây FP trên cơ sở mẫu có điều kiện này của p, gọi là cây FP có điều kiện, sẽ dẫn tới chỉ có một nhánh (c:3) Do đó, chúng ta thu được một mẫu thường xuyên nữa là (cp:3) Như vậy, chúng ta tìm được hai mẫu thường xuyên có chứa p là (p:3) và (cp:3)

Với nút m, chúng ta thu được một mẫu thường xuyên đầu tiên là (m:3) và hai đường dẫn là <f:4, c:3, a:3, m:2> và <f:4, c:3, a:3, b:1, m:1> Chú ý là p cũng xuất hiện cùng với m nhưng chúng ta không quan tâm tới p ở đây, do những gì liên quan đến p đã được thực hiện ở trên Tương tự như trên, cơ sở mẫu có điều kiện của m là {(f:2, c:2, a:2), (f:1, c:2, a:1, b:1)} Xây dựng cây FP trên cơ sở này, chúng ta thu được cây FP điều kiện của m <f:3, c:3, a:3> là một đường dẫn mẫu thường xuyên đơn Gọi thủ tục khai phá dựa trên cây FP đệ quy mine(<f:3, c:3, a:3>|m) chúng ta sẽ thu được các mẫu thường xuyên chứa m và các mục f, c, a Diễn giải thủ tục này như sau: mine(<f:3, c:3, a:3>|m) liên quan đến ba mục (a), (c) và (f)

Đầu tiên, ta thu được một mẫu thường xuyên (am:3) và gọi thủ tục mine(<f:3, c:3>|am)

Thứ hai, ta tu được một mẫu thường xuyên (cm:3) và gọi mine(<f:3>|cm)

Trang 31

Các bước đệ quy xa hơn gọi mine(<f:3, c:3>|am) thu được (cam:3), (fam:3) và gọi mine(<f:3, >|cam) Gọi mine(<f:3, >|cam) sẽ thu được mẫu thường xuyên (fcam:3) Tương tự như vậy, gọi (<f:3>|cm) sẽ thu được mẫu (fcm:3)

Do đó, tất cả các mẫu thường xuyên có chứa m là {(m:3), (am:3), (cm:3), (fm:3), (cam:3), (fam:3), (fcam:3), (fcm:3)} Điều này chỉ ra rằng, một cây FP chỉ có một đường dẫn đơn có thể được khai phá bằng cách đưa ra tất cả sự kết hợp của các mục trong đường dẫn

Với nút b, ta thu được (b:3) và ba đường dẫn <f:4, c:3, a:3, b:1>, <f:4, b:1> và

<c:1, b:1> Vì cơ sở mẫu có điều kiện của b gồm {(f:1, c:1, a:1), (f:1), (c:1)} không sinh ra mục thường xuyên nào nên việc khai phá ở đây bị dừng lại

Với nút a, chúng ta thu được một mẫu thường xuyên (a:3) và một cơ sở mẫu

có điều kiện của a {f:3, c:3}, do đó có cây FP có điều kiện đơn đường dẫn Tổ hợp chúng lại, ta có các mẫu thường xuyên có chứa a: {(fa:3), (ca:3), (fca:3)} Như vậy,

có 4 mẫu thường xuyên chứa a là {(a:3), (fa:3), (ca:3), (fca:3)}

Với nút c, chúng ta có mẫu thường xuyên (c:4) và một cơ sở mẫu có điều kiện {(f:3)} Tập các mẫu thường xuyên liên kết với (c:3) là {(fc:3)}

Nút f cho ta một mẫu thường xuyên là (f:4) và không có cơ sở mẫu điều kiện

B ảng 3.3: Cơ sở mẫu và cây FP có điều kiện của các mục

Tính đúng đắn và tính đầy đủ của quá trình xử lý trong ví dụ trên nên được hiệu chỉnh Chúng ta có một vài tính chất quan trọng liên quan đến quá trình khai phá

Tính chất 2 (Tính chất đường dẫn tiền tố) Để tính toán các mẫu thường xuyên cho

một nút ai trong một đường dẫn P thì chỉ cần tính toán đường dẫn con tiền tố của nút

ai trong P, và tần suất của mỗi nút trong đường dẫn tiền tố nên bằng giá trị đếm của nút ai

Trang 32

Dựa trên tính chất này, đường dẫn phía trước của nút ai trong một đường dẫn P có thể được sao chép và biến đổi thành một đường dẫn con tiền tố đã hiệu chỉnh số đếm bằng cách hiệu chỉnh số đếm của tất cả các nút trong đường dẫn con tiền tố bằng với

số đếm của nút ai Những đường dẫn đã biến đổi này được gọi là đường dẫn tiền tố

đã biến đổi của ai trong đường dẫn P

Chú ý rằng, tập các đường dẫn tiền tố đã biến đổi của ai tạo thành một cơ sở dữ liệu nhỏ các mẫu đồng thời xuất hiện cùng ai Cơ sở dữ liệu mẫu xuất hiện với ai được gọi là cơ sở mẫu điều kiện của ai, ký hiệu "cơ sở mẫu | ai" Chúng ta có thể tính toán tất cả các mẫu thường xuyên liên kết với ai trong cơ sở mẫu điều kiện ai này bằng cách tạo ra một cây FP nhỏ gọi là cây FP có điều kiện của ai và ký hiệu là "FP-tree |

ai" Các bước tiếp theo có thể được thực hiện trên cây FP có điều kiện nhỏ này Quá trình xây dựng cơ sở mẫu có điều kiện và cây FP có điều kiện đã được minh họa qua

ví dụ trên

Quá trình được thực hiện một cách đệ quy, và các mẫu thường xuyên có thể thu được bằng phương pháp tăng trưởng mẫu (pattern growth) dựa trên bổ đề và hệ quả sau:

Bổ đề (Tăng trưởng phân đoạn) Cho α là một mục trong DB, B là cơ sở mẫu điều

kiện của α và β là một mục trong B Khi đó, độ hỗ trợ của α∪β trong DB tương đương độ hỗ trợ của β trong B

Hệ quả (Tăng trưởng mẫu) Cho α là một mục thường xuyên trong DB, B là cơ sở

mẫu có điều kiện của α và β là một mục trong B Khi đó, α∪β là thường xuyên trong DB khi và chỉ khi β là thường xuyên trong B

Dựa trên hệ quả này, việc khai phá có thể được thực hiện bằng cách, đầu tiên nhận diện các 1-tập mục thường xuyên, α, trong DB, xây dựng cơ sở mẫu điều kiện của chúng và sau đó khai phá 1-tập mục, β, trong các cơ sở mẫu có điều kiện này Điều này chỉ ra rằng, tiến trình khai phá các mẫu thường xuyên có thể được xem như là khai phá các 1-tập mục thường xuyên trước và sau đó tăng trưởng mỗi tập mục đó bằng cách khai phá cơ sở mẫu có điều kiện của nó Do đó, chúng ta biến đổi thành công bài toán khai phá k-tập mục thường xuyên thành một chuỗi bài toán khai phá 1-tập mục thường xuyên thông qua một tập các cơ sở mẫu có điều kiện Cuối cùng, chúng ta có tính chất về khai phá tất cả các mẫu khi cây FP chỉ chứa một đường dẫn đơn

Bổ đề (Sinh mẫu đường dẫn cây FP đơn) Giả sử cây FP T chỉ có một đường dẫn

đơn P Tập đầy đủ các mẫu thường xuyên của T có thể được sinh ra bằng cách liệt kê

Trang 33

tất cả các tổ hợp của đường dẫn P với độ hỗ trợ là dộ hỗ trợ tối thiểu của các mục trên đường dẫn

Dựa trên các bổ đề và tính chất trên, chúng ta có thuật giải khai phá mẫu thường xuyên sử dụng cây FP

Đầu vào: Cây FP được xây dựng dựa trên thuật giảisử dụng DB và ngưỡng tối thiểu minsup

Đầu ra: Tập đầy đủ các mẫu thường xuyên

Phương pháp: Gọi thủ tục FP-growth(FP-tree, null)

Procedure FP-growth(Tree, α)

{

(1) if Tree chứa một đường dẫn đơn P

(2) then for each tổ hợp (ký hiệu là β) của các nút trong đường dẫn P do

(3) sinh ra mẫu β∪α với độ hỗ trợ = độ hỗ trợ thấp nhất của nút trong β; (4) else for each αi trong header của Tree do{

(5) sinh ra mẫu β = αi ∪ α với độ hỗ trợ = αi.support;

(6) xây dựng cơ sở mẫu có điều kiện của β và cây FP có điều kiện của β Treeβ;

(7) if Treeβ ≠∅

(8) then gọi thủ tục FP-growth(Treeβ, β);

}

}

3.4 Đánh giá thực nghiệm và nghiên cứu hiệu năng

Jiawei Han và các cộng sự trong [15] tiến hành thực nghiệm, cài đặt thuật toán growth và so sánh nó với các phương pháp phát hiện tập mục thường xuyên truyền thống như Apriori Tất cả các thực nghiệm được thực hiện trên máy tính 450MHz Pentium, 128MB Ram, hệ điều hành WINNT và chương trình của họ được viết trên Visual C++6.0 Ở đây, các tác giả không so sánh trực tiếp các con số về thời gian chạy vì trên các hệ thống máy khác nhau thì điều này cũng sẽ rất khác nhau

FP-Các tác giả thực hiện trên hai tập dữ liệu Tập dữ liệu thứ nhất là T25.I10.D10K với 1K items, ký hiệu là D1 Trong tập này, kích thước giao dịch trung bình và kích thước tập mục thường xuyên tiềm năng cực đại trung bình được thiết lập là 25 và 10 trong khi số giao dịch trong tập dữ liệu là 10K Tập dữ liệu thứ hai, ký hiệu là D2, là T25.I20.D100K với 10K items Có một số lượng lớn tập mục thường xuyên trong cả

Trang 34

hai tập dữ liệu khi ngưỡng hỗ trợ giảm dần Có ít tập mục thường xuyên dài và một lượng lớn các tập mục thường xuyên ngắn

Hình 3.4 so sánh FP-growth và Apriori khi ngưỡng độ hỗ trợ giảm từ 3% xuống 0.1%

Khả năng của FP-growth hơn hẳn Apriori Khi ngưỡng hỗ trợ giảm số lượng cũng như chiều dài của các tập mục thường xuyên tăng một cách đáng kể Tập các ứng cử viên mà Apriori phải kiểm soát trở nên cực lớn và so khớp mẫu với một lượng lớn ứng cử viên bằng cách tìm kiếm qua các giao dịch trở nên rất tốn kém

Hình 3.4: Th ời gian thực hiện và ngưỡng hỗ trợ

Hình 3.5 thể hiện kết quả khi thực hiện các thuật toán với số lượng giao dịch khác nhau Cả hai thuật toán đều tăng tuyến tính với số lượng giao dịch từ 10K đến 100K khi số lượng giao dịch tăng lên thì khoảng cách giữa hai phương pháp trở nên xa hơn

Hình 3.5: Th ời gian thực hiện và số giao dịch

Trang 35

Chương 4: Luật kết hợp mở rộng

Chương 4 trình bày những khía cạnh nâng cao của bài toán phát hiện luật kết hợp Phần đầu, chúng tôi giới thiệu về luật kết hợp đa mức trong cơ sở dữ liệu giao dịch Phần thứ hai giới thiệu bài toán phát hiện luật kết hợp định lượng và phần còn lại giới thiệu bài toán phát hiện luật kết hợp mờ

4.1 Khai phá lu ật kết hợp đa mức

Trong một số trường hợp, tồn tại phân cấp là-một trên các mục của cơ sở dữ liệu Luật kết hợp đa mức sử dụng các phân cấp khái niệm để tạo ra các luật kết hợp khác nhau tại các mức khác nhau Hình 4.1 chỉ ra ví dụ về phân cấp khái niệm Ở đây, đồ uống được chia thành các loại như cà phê, chè, bia và nước hoa quả Nước hoa quả lại được chia thành các loại như cam, táo, nho Cà phê lại chia thành cà phê đen và

cà phê sữa Khi sinh ra các luật kết hợp, chúng ta có thể sinh ra ở bất cứ mức nào Nếu luật được sinh ra cho các mục ở mức cao hơn thì độ hỗ trợ sẽ tăng và có khả năng độ tin cậy cũng tăng Trong một cơ sở dữ liệu giao dịch cho trước, có thể có rất nhiều loại phân cấp khái niệm khác nhau cho các mục khác nhau hoặc nhiều phân cấp khái niệm cho cùng một mục

Hình 4.1: Phân c ấp khái niệm đồ uống 4.1.1 Phát bi ểu bài toán

Luật kết hợp đa mức được định nghĩa tương tự như luật kết hợp thông thường Cho I

= {I1, I2,…, Im} là một tập các mục G là một đồ thị có hướng không chu trình trên các mục này Một cạnh trong G biểu diễn quan hệ là-một và G biểu diễn một tập các phân cấp khái niệm Nếu một cạnh trong G từ điểm p tới điểm c thì p được gọi là một nút cha của c và c là một nút con của p (p là tổng quát hóa của c) Chúng ta mô hình hóa phân cấp khái niệm như là một đồ thị có hướng không có chu trình (DAG) hơn là mô hình hóa bằng rừng cây để cho phép có nhiều phân cấp khái niệm

Trang 36

Chúng ta sử dụng các chữ cái thường ký hiệu cho các mục và các chữ cái hoa ký hiệu cho tập các mục (tập mục) Gọi là một tổ tiên của x và x là hậu duệ của nếu tồn tại một cạnh từ đến x Chú ý rằng, vì đồ thị là đồ thị không có chu trình nên một nút không thể là tổ tiên của chính nút đó

Gọi D là một tập các giao dịch, trong đó mỗi giao dịch T là một tập các mục,tức là T

⊆ I Giả sử một giao dịch T hỗ trợ một mục x ∈ I nếu x có trong T hoặc x là tổ tiên của một mục nào đó trong T Chúng ta nói rằng một giao dịch T hỗ trợ tập X ⊆ I nếu

T hỗ trợ mọi mục trong X

Một luật kết hợp đa mức có dạng X⇒Y, trong đó X ⊂ I, Y ⊂ I, X ∩ Y = ∅ và không

có mục nào trong Y là tổ tiên của bất cứ mục nào trong X Luật X⇒Y trong cơ sở dữ liệu giao dịch D có độ hỗ trợ là s nếu có s% giao dịch trong D hỗ trợ X∪Y Luật X⇒Y trong cơ sở dữ liệu giao dịch D có độ tin cậy là c nếu có c% giao dịch trong D

hỗ trợ X thì cũng hỗ trợ Y Lý do cho ý "không có mục nào trong Y là tổ tiên của bất

cứ mục nào trong X" là vì một luật "x ⇒ tổ tiên(x)" là một luật tầm thường với độ tin cậy là 100%

Bài toán đặt ra là: cho cơ sở dữ liệu giao dịch D và một tập các phân cấp khái niệm

G, phát hiện các luật có độ hỗ trợ và độ tin cậy lớn hơn ngưỡng tương ứng xác định bởi người dùng (minsup và minconf)

Ví dụ: cho hai phân cấp khái niệm như sau:

Hình 4.2: Hai phân c ấp khái niệm

I = {Footwear, Shoes, Hiking Boots, Clothes, Outerwear, Jackets, Ski Pants, Shirts}

và G là phân cấp khái niệm như trên Cho minsup là 30% (tức là phải có 2 giao dịch)

và minconf là 60% Cơ sở dữ liệu và các tập mục thường xuyên tìm được như trong hình 4.3 dưới đây Chú ý rằng luật "Ski Pants ⇒ Hiking Boots" và "Jackets ⇒ Hiking Boots" không đạt độ hỗ trợ tối thiểu, tuy nhiên luật "Outerwear ⇒ Hiking Boots" thì lại đạt

Footwear

Shirts

Ski Pants Jackets

Clothes

Trang 37

Cơ sở dữ liệu D

Transaction Items Bought

100 Shirt

200 Jackets, Hiking Boots

300 Ski Pants, Hiking Boots

Các luật

Lu ật Độ hỗ trợ Độ tin cậy

Outerwear ⇒ Hiking Boots 33% 66.6%

Outerwear ⇒ Footwear 33% 66.6%

Hiking Boots ⇒ Outerwear 33% 100%

Hiking Boots ⇒ Clothes 33% 100%

Hình 4.3: Ví d ụ

Quan sát Gọi Pr(X) là xác suất tất cả các mục trong X có mặt trong một giao dịch Khi đó, support(X ⇒Y) = Pr(X∪Y) và confidence(X ⇒Y) = Pr(YX) Nếu một tập {x, y} đạt độ hỗ trợ tối thiểu thì {x, }, {, y}, {, } cũng đạt độ hỗ trợ tối thiếu Tuy nhiên, nếu luật x ⇒ y đạt độ hỗ trợ và độ tin cậy tối thiểu thì chỉ khẳng định được luật x ⇒ đạt cả độ hỗ trợ tối thiểu và độ tin cậy tối thiểu, trong khi các luật khác như ⇒ y, đạt độ hỗ trợ tối thiểu nhưng chưa chắc đã đạt độ tin cậy tối thiểu

Độ hỗ trợ của một mục trong một phân cấp khái niệm không bằng tổng các độ hỗ trợ của các nút con của nó bởi vì rất có thể một số nút con cùng xuất hiện trong một giao dịch Do đó, chúng ta không thể suy trực tiếp ra các luật về các mục ở mức cao hơn của phân cấp khái niệm từ các luật ở nút lá

a Các luật thú vị

Thế nào là luật có ích hay luật thú vị? Các nghiên cứu trước đây thường định lượng tính có ích hay tính thú vị của một luật dựa trên độ hỗ trợ của luật hơn là dựa trên độ

Trang 38

hỗ trợ của phần đầu luật và thân luật Cũng có ý kiến đưa ra rằng một luật X ⇒Y là không thú vị nếu độ hỗ trợ của nó xấp xỉ support(X) x support(Y) Tuy nhiên, theo thực nghiệm trên tập dữ liệu thực thì 1% luật được tìm thấy là dư thừa Trong phần này, chúng ta sử dụng phân cấp khái niệm để tạo ra một thước đo độ thú vị mới mà

có thể loại bỏ được từ 40% đến 60% luật dư thừa

Chúng ta xét luật sau:

Milk ⇒ Cereal (độ hỗ trợ 8% và độ tin cậy 70%) Nếu "Milk" là nút cha của "Skim Milk" và khoảng ¼ giao dịch của "Milk" là "Skim Milk", chúng ta hi vọng luật:

Skim Milk ⇒ Cereal

sẽ đạt độ hỗ trợ 2% và độ tin cậy 70%

Nếu thực sự độ hỗ trợ và độ tin cậy của luật "Skim Milk ⇒ Cereal " là khoảng 2%

và 70% thì luật có thể được xem là dư thừa vì nó không truyền đạt bất cứ thông tin nào hơn và ít tổng quát hơn luật trên Chúng ta nắm bắt khái niệm "thú vị" ở đây nghĩa là tìm các luật mà độ hỗ trợ lớn hơn R lần giá trị mong đợi hoặc độ tin cậy lớn hơn R lần giá trị mong đợi với hằng số R xác định bởi người dùng

Gọi là tổ tiên của Z (trong đó và Z đều là tập con của I) nếu chúng ta có thể nhận được từ Z bằng cách thay thế một hoặc nhiều mục trong Z với tổ tiên của chúng, và Z có cùng số mục Chúng ta gọi các luật , ⇒Y, X ⇒là các

tổ tiên của luật X ⇒Y Cho một tập các luật, chúng ta gọi là tổ tiên gần nhất của X⇒Y nếu không tồn tại luật X'⇒Y' sao cho X'⇒Y' là tổ tiên của X⇒Y và

⇒Yˆlại là tổ tiên của X'⇒Y'

Định nghĩa tương tự cho X⇒⇒Y

Xét luật X⇒Y và cho Z=X∪Y Độ hỗ trợ của Z sẽ bằng độ hỗ trợ của luật X⇒Y Gọi E zˆ[Pr(Z)]là giá trị mong đợi của Pr(Z) cho bởi Pr(), trong đó là tổ tiên của

Z Cho Z={z1, z2,…,zn}, ={ˆz1,…, zˆ j, zj+1,…, zn} với 1 ≤ j ≤ n, zˆ jlà tổ tiên của zj Khi đó, chúng ta định nghĩa giá trị mong đợi của Pr(Z) cho bởi tập mục như sau:

)Pr(

)ˆPr(

)Pr(

)ˆPr(

)Pr(

z Z

E

j

j

Tương tự, gọi E Xˆ⇒Yˆ[Pr(Y|X)]là độ tin cậy mong đợi của luật X⇒Y cho bởi luật Xˆ ⇒Yˆ

Cho Y={y1,…,yn} và ={ ˆy1,…, yˆ j, yj+1,…,yn} với 1 ≤ j ≤ n, yˆ jlà tổ tiên của yj Khi

đó chúng ta định nghĩa:

)

|ˆPr(

)ˆPr(

)Pr(

)ˆPr(

)Pr(

)]

|[Pr(

1

1 ˆ

y

y y

y X

Y E

j

j Y

Chú ý rằng, E [Pr(Y|X)]=Pr(Y|X)

Trang 39

Chúng ta gọi luật X⇒Y là R-thú vị đối với một tổ tiênnếu độ hỗ trợ của luật X⇒Y bằng R lần giá trị mong đợi (độ hỗ trợ/độ tin cậy) dựa trên

Định nghĩa luật thú vị

Cho một tập luật S và độ thú vị tối thiểu R, một luật X⇒Y là thú vị trong S nếu nó không có tổ tiên nào hoặc nó là R-thú vị đối với các tổ tiên gần nhất của nó trong các

tổ tiên thú vị của nó Chúng ta nói rằng một luật X⇒Y là thú vị bộ phận trong S nếu

nó không có tổ tiên hoặc nó là R-thú vị đối với ít nhất một tổ tiên gần nhất giữa các

tổ tiên thú vị của nó Quan sát một ví dụ sau để giải thích lý do tại sao lại chỉ xem xét các tổ tiên gần nhất giữa tất cả các tổ tiên thú vị

b Phát bi ểu bài toán

Cho một tập các giao dịch D và một độ thú vị tối thiểu xác định bởi người dùng gọi

là min-interest, bài toán khai phá luật kết hợp với phân cấp khái niệm là đi tìm tất cả các luật kết hợp thú vị có độ hỗ trợ và độ tin cậy lớn hơn hoặc bằng độ hỗ trợ tối thiểu (minsup) và độ tin cậy tối (minconf) thiểu xác định bởi người dùng

Trong một số ví dụ, có thể chúng ta muốn tìm các luật thú vị bộ phận Chú ý rằng, nếu min-interest = 0 thì tất cả các luật tìm được đều thú vị

4.1.2 Thu ật toán

Vấn đề phát hiện luật kết hợp đa mức có thể chia thành 3 phần:

(1) Tìm tất cả các tập mục có độ hỗ trợ lớn hơn hoặc bằng độ hỗ trợ tối thiểu xác định bởi người dùng Những tập mục này gọi là tập mục thường xuyên

(2) Sử dụng các tâp mục thường xuyên để sinh ra các luật mong muốn nếu độ tin cậy của nó lớn hơn hoặc bằng độ tin cậy tối thiểu

Trang 40

(3) Loại bỏ các luật không thú vị

Ở đây, chúng ta sẽ xem xét các thuật giải phát hiện các tập mục thường xuyên mà các mục có thể ở bất kỳ mức nào của phân cấp khái niệm Các thuật giải kinh điển có thể sinh ra các luật từ tập mục thường xuyên này

a Thu ật toán cơ bản

Xét bài toán quyết định liệu một giao dịch T có hỗ trợ tập mục X Công việc chỉ đơn thuần là kiểm tra xem với mỗi mục x ∈X thì x hoặc con cháu của x có mặt trong giao dịch không Nhiệm vụ trở nên đơn giản hơn nếu đầu tiên chúng ta thêm tất cả các tổ tiên của từng mục trong T vào T, giao dịch này gọi là giao dịch mở rộng T' T

hỗ trợ X khi và chỉ khi T' là siêu tập của X Hình 4.5 thể hiện thuật toán:

Hình 4.5:Thu ật toán cơ bản

Bước đầu tiên của thuật toán là đếm sự xuất hiện của mục để tìm ra các 1-tập mục thường xuyên Chú ý rằng, các mục trong tập mục có thể là bất kỳ mức nào trong phân cấp khái niệm Ở các bước tiếp theo, gọi là bước k, bao gồm 2 pha Đầu tiên, các tập mục thường xuyên Lk-1 có được trong bước (k-1) được sử dụng để sinh ra các tập mục ứng cử Ck bằng cách sử dụng hàm sinh ứng cử viên apriori Tiếp theo, cơ sở

dữ liệu được quét và độ hỗ trợ của các ứng cử viên trong Ck được đếm Để đếm nhanh, chúng ta cần quyết định một cách hiệu quả các ứng cử viên trong Ck có trong giao dịch t không Chúng ta sử dụng cấu trúc hash tree để làm việc này

b Thuật toán Cumulate

Thuật toán Cumulate chỉnh sửa một số chỗ trong thuật toán cơ bản để làm cho nó tốt hơn

Ngày đăng: 12/02/2021, 21:36

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Ralf Rantzau, Extended Concepts for Association Rule Discovery, Faculty of Information, University of Stuttgart, 1997 Sách, tạp chí
Tiêu đề: Extended Concepts for Association Rule Discovery
[2] Rakesh Agrawal and Ramakrishnan Srikant, Fast Algorithms for Mining Association Rules, In Proceedings of the 20th International Conference on Very Large Databases, Santiago, Chile, pages 487-499, 1994 Sách, tạp chí
Tiêu đề: Fast Algorithms for Mining Association Rules
[3] Tzung-Pei Hong, Kuei-Ying Lin, Shyue-Liang Wang, Fuzzy data mining for interesting generalized association rules, Fuzzy Sets and Systems 138 (2003) 255-269, 2003 Sách, tạp chí
Tiêu đề: Fuzzy data mining for interesting generalized association rules
Tác giả: Tzung-Pei Hong, Kuei-Ying Lin, Shyue-Liang Wang
Nhà XB: Fuzzy Sets and Systems
Năm: 2003
[4] M.Kaya, R. Alhajj, Genetic algorithm based framework for mining fuzzy association rules, Fuzzy Sets and Systems 152 (2005) 587-601, 2005 Sách, tạp chí
Tiêu đề: Genetic algorithm based framework for mining fuzzy association rules
Tác giả: M. Kaya, R. Alhajj
Nhà XB: Fuzzy Sets and Systems
Năm: 2005
[5] Ada Wai-chee Fu, Man Hon Wong, Siu Chun Sze, Wai Chiu Wong, Wai Lun Wong nad Wing Kwan Yu, Finding Fuzzy Sets for the Mining of Fuzzy Association Rules for Numerical Attributes, The Chinese University of Hong Kong Sách, tạp chí
Tiêu đề: Finding Fuzzy Sets for the Mining of Fuzzy Association Rules for Numerical Attributes
Tác giả: Ada Wai-chee Fu, Man Hon Wong, Siu Chun Sze, Wai Chiu Wong, Wai Lun Wong, Wing Kwan Yu
Nhà XB: The Chinese University of Hong Kong
[6] Ashish Mangalampalli, Vikram Pudi, Fuzzy Logic-based Pre-processing for Fuzzy Association Rule Mining, Centre for Data Engineering (CDE), International Institute of Information Technology (IIIT) Sách, tạp chí
Tiêu đề: Fuzzy Logic-based Pre-processing for Fuzzy Association Rule Mining
Tác giả: Ashish Mangalampalli, Vikram Pudi
Nhà XB: Centre for Data Engineering (CDE)
[7] T.W. Liao, Aivars K. Celmins, robert J. Hammell Il, A fuzzy c-means variant for the generation of fuzzy term sets, Fuzzy Sets and Systems 135 (2003) 241- 257, 2003 Sách, tạp chí
Tiêu đề: A fuzzy c-means variant for the generation of fuzzy term sets
Tác giả: T.W. Liao, Aivars K. Celmins, robert J. Hammell Il
Nhà XB: Fuzzy Sets and Systems
Năm: 2003
[8] Rakesh Agrawal, Tomasz Imielinski, Arun Swami, Mining Association Rules between Sets of Items in Large Databases, in Proceeding of the 1993 ACM SIGMOD Conference Washington DC, USA, May 1993 Sách, tạp chí
Tiêu đề: Mining Association Rules between Sets of Items in Large Databases
Tác giả: Rakesh Agrawal, Tomasz Imielinski, Arun Swami
Nhà XB: Proceeding of the 1993 ACM SIGMOD Conference
Năm: 1993
[9] Markus Hegland, Algorithm for Association Rules, Australian National University, Canberra ACT 0200, Australia Sách, tạp chí
Tiêu đề: Algorithm for Association Rules
Tác giả: Markus Hegland
Nhà XB: Australian National University
[10] Laurentiu Cristofor, Dan Simovici, Mining Association Rules in Entity- Relationship Modeled Databases, University of Massachusetts at Boston Sách, tạp chí
Tiêu đề: Mining Association Rules in Entity-Relationship Modeled Databases
[11] Micheline Kamber, Jiawei Han, Jenny Y. Chiang, Metarule-Guided Mining Multi-Dimensional Association rules Using Data Cubes, American Association for Artificial Intelligence, 1997 Sách, tạp chí
Tiêu đề: Metarule-Guided Mining Multi-Dimensional Association rules Using Data Cubes
Tác giả: Micheline Kamber, Jiawei Han, Jenny Y. Chiang
Nhà XB: American Association for Artificial Intelligence
Năm: 1997
[12] Jiawei han, Micheline Kamber, and Jenny Chiang, Mining Multi-Dimensional Sách, tạp chí
Tiêu đề: Mining Multi-Dimensional
Tác giả: Jiawei Han, Micheline Kamber, Jenny Chiang
[13] Chan Man Kuok, Ada Fu, Man hon Wong, Mining Fuzzy Association Rules in Databases, The Chinese University of Hong Kong Sách, tạp chí
Tiêu đề: Mining Fuzzy Association Rules in Databases
Tác giả: Chan Man Kuok, Ada Fu, Man hon Wong
Nhà XB: The Chinese University of Hong Kong
[14] M. Delgado, N. Marin, M. J. Martin-Bautista, D. Sanchez, M. A. Vila, Mining Fuzzy Association Rules: An Overview, University of Granada, Spain Sách, tạp chí
Tiêu đề: Mining Fuzzy Association Rules: An Overview
Tác giả: M. Delgado, N. Marin, M. J. Martin-Bautista, D. Sanchez, M. A. Vila
Nhà XB: University of Granada
[15] Jiawei Han, Jian Pei, and Yiwen Yin, Mining Frequent Patterns without Candidate Generation, Simon Fraser University Sách, tạp chí
Tiêu đề: Mining Frequent Patterns without Candidate Generation
Tác giả: Jiawei Han, Jian Pei, Yiwen Yin
Nhà XB: Simon Fraser University
[16] Zengyou He, Xiaofei Xu, Shengchun Deng, A FP-Tree Based Approach for Mining All Strongly Correlated Pairs without Candidate Generation, supported by the High Technology Research and Development Program of China, 2002 Sách, tạp chí
Tiêu đề: A FP-Tree Based Approach for Mining All Strongly Correlated Pairs without Candidate Generation
[17] Rolly Inatn, Oviliani Yenty Yuliana, Andreas Handojo, Mining Multidimensional Fuzzy Association Rules from A Database of Medical Record Patients, Petra Christian University, Indonesia Sách, tạp chí
Tiêu đề: Mining Multidimensional Fuzzy Association Rules from A Database of Medical Record Patients
Tác giả: Rolly Inatn, Oviliani Yenty Yuliana, Andreas Handojo
Nhà XB: Petra Christian University
[18] Ramakrishnan Srikant, Quoc Vu, Rakesh Agrawal, Mining Association Rules with Item Constraints, American Association for Artificial Intelligence, 1997 Sách, tạp chí
Tiêu đề: Mining Association Rules with Item Constraints
Tác giả: Ramakrishnan Srikant, Quoc Vu, Rakesh Agrawal
Nhà XB: American Association for Artificial Intelligence
Năm: 1997
[19] Ramakrishnan Srikant, Rakesh Agrawal, Mining Generalized Association Rules, in Proceedings of the 21 st VLDB Conference Zurich, Swizerland, 1995 Sách, tạp chí
Tiêu đề: Mining Generalized Association Rules
Tác giả: Ramakrishnan Srikant, Rakesh Agrawal
Nhà XB: Proceedings of the 21 st VLDB Conference
Năm: 1995
[20] Jianjiang Lu, Baowen Xu, Hongji Yang, A Classification Method of Fuzzy Association Rules, IEEE International Workshop on Intelligent Data Acquisition and Advanced Computing Systems: Technology and Applications, 2003 Sách, tạp chí
Tiêu đề: A Classification Method of Fuzzy Association Rules
Tác giả: Jianjiang Lu, Baowen Xu, Hongji Yang
Nhà XB: IEEE International Workshop on Intelligent Data Acquisition and Advanced Computing Systems: Technology and Applications
Năm: 2003

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

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

w