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

đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng

97 584 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 97
Dung lượng 1,25 MB

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

Nội dung

DANH MỤC CÁC THUẬT NGỮ1 basket data dữ liệu các mặt hàng mua bán trong giao dịch 2 Candidate Distribution Phân phối candidate 3 candidate group nhóm candidate được sử dụng trong thuật to

Trang 1

Em xin chân thành cảm ơn thầy giáo, Phó giáo sư, Tiến sĩ Phan Tăng Đa, giám đốc trung tâm máy tính trường Đại học Bách Khoa Hà Nội; thầy giáo, Phó giáo sư, Tiến sĩ Nguyễn Ngọc Bình,, giám đốc trung tâm thư viện điện tử trường Đại học Bách Khoa Hà Nội đã tận tình hướng dẫn và giúp đỡ, cung cấp cho

em những ý kiến đóng góp, nhận xét quý báu trong quá trình thực hiện đồ án.

Em xin chân thành cảm ơn các thầy cô giáo trong khoa Công nghệ thông tin cũng như các thầy cô giảng dạy trong trường Đại học Bách Khoa Hà Nội, những người đã truyền thụ cho em những kiến thức quí báu trong suốt thời gian học tập

và nghiên cứu tại trường, giúp em có được những điều kiện cần thiết để hoàn thành tốt đồ án này.

Sự quan tâm và giúp đỡ của Bố mẹ, cùng toàn thể gia đình

là một nguồn động viên rất lớn, tạo cho con sự yên tâm về vật chất và tinh thần để con hoàn thành nhiệm vụ của mình.

Cuối cùng xin cảm ơn sự quan tâm và đóng góp ý kiến của tất cả các bạn.

Hà Nội ngày 15 tháng 05 năm 2004

Sinh viên

Hoàng Thị Minh Thu

Trang 2

8 FDM Fast Distributed Mining of Association rules

9 FP-Tree Frequent Pattern Tree

12 MFCS maximum frequent candidate set

15 SETM Set-Oriented Mining for Association Rules

16 SP2 Scallable POWER parallel System

Trang 3

DANH MỤC CÁC THUẬT NGỮ

1 basket data dữ liệu các mặt hàng mua bán trong giao dịch

2 Candidate Distribution Phân phối candidate

3 candidate group nhóm candidate được sử dụng trong thuật toán

6 Count Distribution phân phối số đếm

7 Data Distribution phân phối dữ liệu

8 frequent itemset itemset có giá trị support không nhỏ hơn minsup

13 k-subset một tập con của một giao dịch có chứa k item

14 large itemset itemset có giá trị support không nhỏ hơn minsup

15 long frequent itemset Itemset frequent dài

16 maximum frequent set Tập các frequent itemset tối đa

24 transaction một giao dịch trong cơ sở dữ liệu

25 Transaction identifier Định danh duy nhất của một giao dịch

26 trie một cấu trúc dữ liệu dạng hash tree mà mỗi node

gắn trên nó có chứa các thông tin bổ sung

Trang 4

DANH MỤC HÌNH VẼ

Hình 1: Quá trình khai phá dữ liệu 11

Hình 2 : Cây quyết định với Temperature làm node gốc 17

Hình 3: Cây quyết định với Outlook làm node gốc 17

Hình 4: Các dạng biểu diễn khác nhau của I = {a,b,c,d,e} 24

Hình 5: Thủ tục sinh luật đơn giản 27

Hình 6: Thủ tục sinh luật nhanh 28

Hình 7: Thuật toán AIS 30

Hình 8: Thuật toán SETM 31

Hình 9: Thuật toán Apriori 32

Hình 10: Hàm sinh tập candidate của thuật toán Aprirori 33

Hình 11: Thuật toán AprioriTID 34

Hình 12: Chương trình chính của thuật toán DHP 38

Hình 13: Các thủ tục của thuật toán DHP 39

Hình 14: Ví dụ về bảng băm và phép sinh C2 40

Hình 15: Cắt tỉa đối với L2 41

Hình 16: Thuật toán DIC 43

Hình 17: Thủ tục tăng số đếm cho giao dịch 44

Hình 18: Thuật toán Pincer- Search 45

Hình 19: SET đầy đủ trên bốn item 46

Hình 20: Thuật toán Max-Miner 48

Hình 21: Minh hoạ kết quả giảm support từ việc mở rộng itemset I và Is với i 49

Hình 22: Sinh subset và tính toán với giới hạn dưới 50

Hình 23: Thuật toán sinh FP-Tree 51

Hình 24: Một ví dụ của FP-Tree 52

Hình 25: Xây dựng FP-Tree từ m “FP-Tree |m” 54

Hình 26: Thuật toán FPGrowth 56

Hình 27: So sánh tốc độ thực hiện giữa FPGrowth và Apriori 57

Hình 28: ReduceScatter and AllGather Communication 62

Hình 29:Thuật toán FDM-LP 76

Hình 30: Mô hình chung hệ thống 78

Hình 31: Kiến trúc hệ thống ARMiner 79

Hình 32: Biểu đồ phân cấp chức năng 80

Hình 33: Định dạng tệp giao dịch 80

Hình 34: Tệp dữ liệu đầu ra 81

Hình 35: Các môđun dùng trong hệ thống 82

Hình 36: Sơ đồ lớp mô tả các chức năng 83

Hình 37: Định dạng tệp từ điển cải tiến 84

Hình 38: Giao diện chính của chương trình 85

Trang 5

DANH MỤC BẢNG

Bảng 1: Các thuộc tính 21

Bảng 2 : Ký hiệu 32

Bảng 3: Tập C và L k k qua các giai đoạn 1, 2, 3 35

Bảng 4: Cơ sở dữ liệu giao dịch của ví dụ về FP-Tree 52

Bảng 5: Khai phá tất cả các pattern bởi tạo ra cơ sở (sub)-pattern điều kiện 55

Bảng 6: Bảng ký hiệu 70

Bảng 7: Large itemset cục bộ 70

Bảng 8: Large itemset toàn cục 71

Bảng 9: Số đếm support cục bộ 73

Bảng 10: Các tham số để sinh tập dữ liệu giả 83

Trang 6

MỤC LỤC

LỜI CẢM ƠN 1

DANH MỤC CÁC THUẬT NGỮ 3 DANH MỤC HÌNH VẼ 4 DANH MỤC BẢNG 5

LỜI MỞ ĐẦU 8 Chương 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 10

1.1 Các bước của quá trình khai phá dữ liệu: 10

1.2 Nhiệm vụ chính của khai phá dữ liệu 12

1.3 Khai phá dữ liệu mô tả 13

1.3.1 Phân nhóm 13

1.4 Khai phá dữ liệu dự đoán 14

1.4.1 Bài toán phân loại 14

1.4.2 Cây quyết định 15

1.4.3 K – Láng giềng (K – Nearest Neighbor) [17] 19

1.5 Tại sao khai phá luật kết hợp lại quan trọng 20

Chương 2: KHAI PHÁ LUẬT KẾT HỢP 23 2.1 Các định nghĩa cơ bản: 23

2.1.1 Itemset: 23

2.1.2 Cơ sở dữ liệu [1], [15] 23

2.1.3 Support 24

2.1.4 Luật kết hợp: 25

2.2 Giới thiệu bài toán 26

1.2.1 Bài toán 1: Khai phá các large itemset: 26

1.2.2 Bài toán 2: Sinh luật từ các large itemset: 27

Chương 3: CÁC THUẬT TOÁN KHAI PHÁ LUẬT KẾT HỢP 29 3.1 Các thuật toán nguyên thuỷ 30

3.1.1 AIS [3] 30

3.1.2 SETM [3] 31

3.2 Các thuật toán Apriori [4] 32

3.2.1 Thuật toán Apriori 32

3.2.2 Thuật toán AprioriTID: 34

3.2.3 Thuật toán AprioriHybrid 36

3.3 Thuật toán DHP (Direct Hashing and Pruning) [16] 36

3.4 Thuật toán DIC (Dynamic Counting Itemset) [6] 41

3.5 Thuật toán Pincer-Search [10] 44

3.6 Thuật toán khai phá các mẫu dài từ CSDL (Max-Miner) [14] 46

3.6.1 Max-Miner hình thức 47

3.6.2 Cách sắp thứ tự item 48

3.6.3 Yêu cầu về tính chính xác và hiệu quả 48

3.6.4 Giới hạn dưới của support 49

3.7 Thuật toán FPGrowth [9] 51

3.7.1 Thuật toán xây dựng FP - Tree 51

3.7.2 Khai phá các frequent pattern sử dụng FP-Tree 53

3.7.3 Đánh giá mô hình 57

3.8 Kết luận 57

Chương 4: KHAI PHÁ LUẬT KẾT HỢP SONG SONG TRÊN CƠ SỞ DỮ LIỆU PHÂN TÁN 59

Trang 7

4.1.1 Thuật toán Count Distribution (Phân phối số đếm) 61

4.1.2 Thuật toán Data Distribution (Phân phối dữ liệu) 63

4.1.3 Thuật toán Candidate Distribution (Phân phối candidate) 64

4.1.4 Sinh luật song song 66

4.2 Kiểu kiến trúc chia sẻ bộ nhớ chung [8] 67

4.2.1 Các kỹ thuật khai phá dữ liệu phân tán 68

4.2.2 Thuật toán khai phá luật kết hợp phân tán 75

Chương 5: XÂY DỰNG GIẢI PHÁP VÀ THỬ NGHIỆM KẾT QUẢ 78 5.1 Tổng quan về hệ thống 78

5.1.1 Mô tả hệ thống 78

5.1.2 Kiến trúc hệ thống 79

5.1.3 Mô tả chức năng 79

5.1.4 Cấu trúc dữ liệu 80

5.2 Giải pháp, cài đặt 81

5.2.1 Môi trường, công cụ, ngôn ngữ sử dụng 81

5.2.2 Lựa chọn thuật toán 82

5.2.3 Thiết kế môđun 82

5.2.4 Sinh tập dữ liệu giả 83

5.2.5 Cải tiến 84

5.3 Kết quả thử nghiệm và đánh giá 85

5.3.1 Giao diện chương trình: 85

5.3.2 Cơ sở dữ liệu thử 86

5.3.3 Đánh giá kết quả 87

5.4 Thông tin rút ra từ dữ liệu thử 88

5.4.1 Teldata 88

5.4.2 Bảo Việt: 89

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 90 TÀI LIỆU THAM KHẢO 91 CHỈ MỤC TỪ 93

Trang 8

LỜI MỞ ĐẦU

Ngày nay, cơ sở dữ liệu có kích thước lên tới Terabyte — hơn1,000,000,000,000 byte dữ liệu Bên trong khối lượng dữ liệu lớn như vậy còn ẩn chứarất nhều thông tin quan trọng Khai phá dữ liệu (data mining) là một quá trình sử dụngrất nhiều công cụ phân tích dữ liệu để phát hiện ra các mẫu và các mối quan hệ trong

dữ liệu để đưa ra được những dự đoán hiệu quả Nhiệm vụ chính của data mining làphát hiện ra các tri thức chưa được phát hiện hay còn ẩn chứa trong tập dữ liệu lớn.Những tiến bộ gần đây trong việc thu thập và lưu trữ dữ liệu đã được áp dụngtrong các công ty (kỹ thuật mã vạch), các cơ quan hành chính (dữ liệu điều tra) haycác phòng thí nghiệm khoa học (CSDL phân tử trong hoá học hay sinh học) để lưu giữđược một lượng lớn các dữ liệu liên quan đến hoạt động của các tổ chức này Cùngthời gian này, khả năng dùng nguồn năng lượng tính toán rẻ để trích rút tự động trithức có cấu trúc từ dữ liệu đã tập hợp được này một cách dễ dàng Những hoạt độngnhư vậy đều được coi như khai phá dữ liệu Khai phá dữ liệu bao gồm những lĩnh vựcnhư phân loại, chia nhóm, phân tích sự tương đồng, tóm tắt nội dung, khai phá luật kếthợp và khai phá các mẫu tuần tự… Vấn đề khai phá luật kết hợp lần đầu tiên được đưa

ra giới thiệu vào năm 1993 nhưng đã nhanh chóng phát triển mạnh mẽ Vậy lý do vìsao ?

Hãy xem xét một CSDL lớn các mặt hàng, mỗi giao dịch bao gồm các mặt hàngmua bán của khách hàng Vấn đề khai phá luật kết hợp được áp dụng nhiều nhất trongcác quyết định kinh doanh, điển hình trong việc quản lý siêu thị như: mặt hàng gì cần

hạ giá, thiết kế phiếu mua hàng như thế nào hay sắp xếp các mặt hàng ra sao để có lợinhuận lớn nhất Việc phân tích các dữ liệu trong quá khứ là cách tiếp cận thường được

sử dụng nhằm nâng cao chất lượng mua hàng Tuy nhiên, gần đây chỉ những số liệutích luỹ theo định kỳ thời gian là được lưu lại trên máy tính Sự tiến bộ trong kỹ thuật

mã vạch đã giúp lưu trữ các basket data - dữ liệu các mặt hàng mua bán trong mỗigiao dịch một cách hiệu quả

Luật kết hợp đã được sử dụng trong rất nhiều ứng dụng như: phân tích giao dịchtrong siêu thị, phân tích cách bố trí cách lưu trữ cũng như xu thế các mặt hàng, phântích số liệu tuyển sinh đại học, phân tích thói quen khách hàng, phân loại khách hàngdựa vào mặt hàng mua bán, thiết kế catalog, phân tích sự xuất hiện của từ trong mộttài liệu văn bản, sự ghé thăm vào các trang WWW của người dùng, giao dịch chứngkhoán…

Sự hấp dẫn của việc phân tích tình hình thị trường bắt nguồn từ tính rõ ràng vàtính thiết thực của các kết quả được rút ra từ các luật kết hợp Phân tích tình hình thịtrường biểu diễn cách thức các sản phẩm và các dịch vụ liên quan với nhau, chúng có

Trang 9

xu hướng lập nhóm với nhau như thế nào Một luật có dạng “Nếu khách hàng mua bộtgiặt OMO thì khách hàng đó sẵn sàng trả tiền mua nước xả Comfor” là hoàn toàn rõràng

Hiện nay, khai phá luật kết hợp ngày càng được ứng dụng rộng rãi trong thực tế

và đã được đưa vào nghiên cứu trong lĩnh vực y tế và sinh tin học Như các siêu thị cóthể áp dụng bài toán này để có quy cách trưng bày sản phẩm hợp lý Viện Khoa họccông nghệ, viện công nghệ thông tin JAIST của Nhật đã ứng dụng luật kết hợp đểnghiên cứu và chẩn đoán triệu chứng của bệnh nhân đau dạ dày rất hiệu quả Các nhàkinh tế có thể dự đoán được xu thế kinh tế, tâm lý khách hàng… Và gần đây, CarlosOrdonez [12] , năm 2000 đã nghiên cứu về việc khai phá luật kết hợp có ràng buộc để

dự đoán bệnh đau tim ở người

Chính vì những ý nghĩa thiết thực đó của bài toán khai phá luật kết hợp, em đã

quyết định chọn đề tài tốt nghiệp của mình là “Nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng”.

Đồ án này sẽ tập trung vào tìm hiểu và nghiên cứu về các thuật toán khai pháluật kết hợp

Nội dung chính của đồ án được trình bày trong 5 chương :

Chương 1: Tìm hiểu tổng quan chung về các kỹ thuật khai phá dữ liệu Đi sâu vào các bài toán cụ thể như cây quyết định, K-láng giềng,

Chương 2: Nghiên cứu các vấn đề lý thuyết liên quan đến việc khai phá luật kết hợp

Chương 3: Các thuật toán khai phá luật kết hợp nhanh được xem xét và đánh giá

Trang 10

Chương 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU

Phần đầu của chương sẽ đề cập tới các bước thực hiện của quá trình khai phá

dữ liệu và tổng quan các kỹ thuật khai phá Phần sau sẽ đi sâu vào một số kỹ thuật khai phá được sử dụng phổ biến hiện nay cũng như những vấn đề mà các kỹ thuật này còn chưa giải quyết được.

Khi điện tử và sóng điện từ đã trở thành vấn đề cốt lõi của công nghệ điển tử cổđiển thì ta thấy rằng dữ liệu, thông tin, tri thức đang là lĩnh vực tập trung nhiều nghiêncứu và ứng dụng – phát hiện tri thức và khai phá dữ liệu (knowledge discovery anddata mining: KDD)

Nói chung, ta thường biết dữ liệu là một chuỗi các bit, số hay ký tự hoặc đốitượng cần quan tâm Ta sử dụng các bít để đánh giá thông tin Tri thức được xem như

là thông tin tổ hợp, bao gồm các sự thật và mối liên quan giữa chúng, có thể thu nhận,khám phá và học được Nói cách khác, tri thức là dữ liệu ở mức cao của sự trừu tượng

và tổng quát hoá

KDD là lĩnh vực phát triển nhanh chóng, kết hợp với hệ quản trị CSDL, các lĩnhvực thống kê, học máy và các lĩnh vực liên quan khác Phát hiện tri thức là một quátrình chỉ ra được các mô hình/mẫu hiểu được có giá trị và đáng quan tâm Data mining

là một bước trong quá trình phát hiện tri thức, bao gồm các thuật toán khai phá dữ liệu

cụ thể với hiệu năng tính toán chấp nhận được để tìm ra các mẫu hay mô hình của dữliệu

Nói cách khác, mục đích của khai phá và phát hiện tri thức là tìm ra các mẫu hay

mô hình đáng quan tâm có trong CSDL nhưng đang ẩn dấu trong một lượng lớn dữliệu

1.1 Các bước của quá trình khai phá dữ liệu:

Các giải thuật khai phá dữ liệu thường được miêu tả như những chương trìnhhoạt động trực tiếp trên tệp dữ liệu Với các phương pháp máy học và thống kê trướcđây, thường thì bước đầu tiên là các giải thuật nạp toàn bộ tệp dữ liệu vào trong bộnhớ Khi chuyển sang các ứng dụng công nghiệp liên quan đến việc khai phá các kho

dữ liệu lớn, mô hình này không thể đáp ứng được Không chỉ bởi vì nó không thể nạphết dữ liệu vào trong bộ nhớ mà còn vì khó có thể chiết suất dữ liệu ra các tệp đơngiản để phân tích được

Quá trình xử lý khai phá dữ liệu bắt đầu bằng cách xác định chính xác vấn đề cầngiải quyết Sau đó sẽ xác định các dữ liệu liên quan dùng để xây dựng giải pháp Bướctiếp theo là thu thập các dữ liệu có liên quan và xử lý chúng thành dạng sao cho cácgiải thuật khai phá dữ liệu có thể hiểu được Về lý thuyết thì có vẻ rất đơn giản nhưng

Trang 11

như : các dữ liệu phải được sao ra nhiều bản (nếu được chiết suất vào các tệp), quản lýtập các tệp dữ liệu, phải lặp đi lặp lại nhiều lần toàn bộ quá trình (nếu mô hình dữ liệuthay đổi),

Sẽ là quá cồng kềnh với một giải thuật khai phá dữ liệu nếu phải truy nhập vàotoàn bộ nội dung của CSDL và làm những việc như trên Vả lại, điều này cũng khôngcần thiết Có rất nhiều giải thuật khai phá dữ liệu thực hiện trên những thống kê tómtắt khá đơn giản của CSDL, khi mà toàn bộ thông tin trong CSDL là quá dư thừa đốivới mục đích của việc khai phá dữ liệu

Bước tiếp theo là chọn thuật toán khai phá dữ liệu thích hợp và thực hiện việckhai phá để tìm được các mẫu (pattern) có ý nghĩa dưới dạng biểu diễn tương ứng vớicác ý nghĩa đó (thường được biểu diễn dưới dạng luật kết hợp, cây quyết định, luật sảnxuất, biểu thức hồi quy, )

Đặc điểm của các mẫu là phải mới (ít nhất là đối với hệ thống đó) Độ mới có thểđược đo tương ứng với độ thay đổi trong dữ liệu (bằng cách so sánh các giá trị hiện tạivới các giá trị trước đó hoặc các giá trị mong muốn), hoặc bằng tri thức (mối liên hệgiữa các phương pháp tìm mới và phương pháp cũ như thế nào) Thường thì độ mớicủa mẫu được đánh giá bằng các hàm logic hoặc hàm đo độ mới, độ bất ngờ của mẫu.Ngoài ra, mẫu phải có khả năng sử dụng tiềm tàng Các mẫu này sau khi được xử lý

và diễn giải phải dẫn đến những hành động có ích nào đó được đánh giá bởi một hàmlợi ích Ví dụ như trong dữ liệu các khoản vay, hàm lợi ích đánh giá khả năng tăng lợinhuận từ các khoản vay Mẫu khai thác được phải có giá trị đối với các dữ liệu mớivới độ chính xác nào đó

Hình 1: Quá trình khai phá dữ liệu

Với các giải thuật và các nhiệm vụ của khai phá dữ liệu rất khác nhau, dạng củacác mẫu chiết xuất được cũng rất đa dạng Theo cách đơn giản nhất, sự phân tích cho

ra kết quả chiết xuất là một báo cáo về một số loại (có thể bao gồm các phép đo mangtính thống kê về độ phù hợp của mô hình, các dữ liệu lạ ) Trong thực tế đầu ra phứctạp hơn nhiều Mẫu chiết suất được có thể là một mô tả xu hướng, có thể dưới dạng

Xác định

nhiệm vụ

Xác định

dữ liệu liên quan

Thu thập

và tiền xử

lý dữ liệu

Dữ liệu trực tiếp

Thống kê tóm tắt

Giải thuật khai phá

dữ liệu

Mẫu

Trang 12

văn bản, một đồ thị mô tả các mối quan hệ trong mô hình, cũng có thể là một hànhđộng, ví dụ như yêu cầu của người dùng đối với những gì khai thác được trong CSDL.

Kỹ thuật khai phá dữ liệu thực chất không có gì mới Nó là sự kế thừa, kết hợp

và mở rộng của các kỹ thuật cơ bản đã được nghiên cứu từ trước như máy học, nhậndạng, thống kê (hồi quy, xếp loại, phân nhóm), các mô hình đồ thị, mạng Bayes, trí tuệnhân tạo, thu thập tri thức hệ chuyên gia Tuy nhiên, với sự kết hợp tài tình của khaiphá dữ liệu, kỹ thuật này có ưu thế hơn hẳn các phương pháp trước đó, đem lại nhiềutriển vọng trong việc ứng dụng phát triển nghiên cứu khoa học cũng như làm tăng mứclợi nhuận trong các hoạt động kinh doanh

1.2 Nhiệm vụ chính của khai phá dữ liệu.

Rõ ràng mục đích của khai phá dữ liệu là các tri thức chiết xuất được sẽ được sửdụng cho lợi ích cạnh tranh trên thương trường và các lợi ích trong nghiên cứu khoahọc

Do đó, có thể coi mục đích của khai phá dữ liệu [17] sẽ là mô tả (description) vàphân lớp, dự đoán (classification/prediction) Các mẫu mà khai phá dữ liệu phát hiệnđược nhằm vào các mục đích này Phân lớp/dự đoán liên quan đến việc sử dụng cácbiến hoặc các trường trong CSDL để chiết xuất ra các mẫu là các dự đoán những giátrị chưa biết hoặc những giá trị trong tương lai của các biến đáng quan tâm, gồm cácbài toán nhỏ như: bài toán cây quyết định, mạng noron, luật quy nạp, máy hỗ trợvector, mô hình Markov ẩn… Mô tả tập trung vào việc tìm kiếm các mẫu mô tả dữliệu mà con người có thể hiểu được Mô tả gồm có phân tích luật, phân nhóm, tómtắt…

Để đạt được hai mục đích này, nhiệm vụ chính của khai phá dữ liệu bao gồm nhưsau:

Phân lớp (Classification) : Phân lớp là việc học một hàm ánh xạ (hay phânloại) một mẫu dữ liệu vào một trong số các lớp đã xác định

Hồi quy (Regression) : Hồi quy là việc học một hàm ánh xạ từ một mẫu dữliệu thành một biến dự đoán có giá trị thực

Phân nhóm (Clustering): Là việc mô tả chung để tìm ra các tập xác định,các nhóm hay các loại để mô tả dữ liệu Các nhóm có thể tách riêng nhauhoặc phân cấp hoặc gối lên nhau Có nghĩa là một dữ liệu có thể vừa thuộcnhóm này, vừa thuộc nhóm kia

Khai phá luật kết hợp (Association Rule): tìm ra các large itemset, các mốiliên quan, kết hợp và cấu trúc nhân quả trong tập các khoản mục hay đốitượng trong CSDL giao dịch, CSDL quan hệ hay từ các kho lưu trữ thôngtin khác

Trang 13

Tóm tắt (Summarization) : Liên quan đến các phương pháp tìm kiếm một

mô tả tóm tắt cho một tập con dữ liệu

Mô hình hoá phụ thuộc (Dependency Modeling): Bao gồm việc tìm kiếmmột mô hình mô tả sự phụ thuộc đáng kể giữa các biến Các mô hình phụthuộc tồn tại dưới hai mức : mức cấu trúc của mô hình xác định (thường ởdạng đồ hoạ) các biến nào là phụ thuộc cục bộ với nhau, mức định lượngcủa một mô hình xác định độ mạnh của sự phụ thuộc theo một thước đo nàođó

Phát hiện sự thay đổi và lạc hướng (Change and Deviation Detection): Tậptrung vào khai thác những thay đổi đáng kể nhất trong dữ liệu từ các giá trịchuẩn hoặc được đo trước đó

Những nhiệm vụ khác nhau này yêu cầu số lượng và các dạng thông tin rất khácnhau nên chúng thường ảnh hưởng đến việc thiết kế và chọn giải thuật khai phá dữliệu khác nhau

1.3 Khai phá dữ liệu mô tả

1.3.1 Phân nhóm

Cân nhắc việc nhóm tập các đối tượng dựa trên độ tương đồng của chúng với cácthuộc tính và/ hoặc trạng thái gần kề của chúng trong một không gian véctơ Phân

nhóm dữ liệu [13], [17] được gọi là học không giám sát Một ứng dụng của lập nhóm

các khách hàng của ngân hàng sao cho việc cung cấp dịch vụ cho khách hàng là cóhiệu quả nhất Ngân hàng có thể nhóm các nhóm khách hàng như sau:

+ đầu tư linh hoạt

+ đầu tư duy trì

+ đầu tư cân bằng

Bài toán có ứng dụng rất nhiều trong phân nhóm tài liệu, phân nhóm thuật ngữ.Các thuật toán chính của bài toán phân nhóm là K-means, thuật toán phân nhóm bậc tích luỹ

Lợi tức

Nợ

Đầu tư cân bằng

Đầu tư duy trì Đầu tư linh hoạt

Trang 14

Không nên nhầm lẫn phân nhóm với phân đoạn Phân đoạn liên quan tới bài toán chỉ ra các nhóm có đặc điểm chung Phân nhóm là cách phân dữ liệu vào các nhóm chưa được định nghĩa trước, còn phân loại sẽ phân dữ liệu vào thành các nhóm đã định nghĩa trước

1.4 Khai phá dữ liệu dự đoán

Trước khi xây dựng được mô hình dự đoán hiệu quả, ta cần phải hiểu dữ liệu Mụctiêu của khai phá dữ liệu là tìm ra những tri thức ẩn chứa bên trong dữ liệu Nhờ xâydựng một mô hình thức tế dựa trên tập hợp dữ liệu từ nhiều nguồn khác nhau gồm cả

dữ liệu kinh doanh, thị hiếu khách hàng, thông tin nhân khẩu, điều khiển dữ liệu vàcác cơ sở dữ liệu mở rộng có liên quan như thông tin thời tiết, thông tin văn phòng.Kết quả của việc xây dựng mô hình là một bản mô tả các mẫu và mối quan hệ dữ liệu

có thể hỗ trợ cho việc dự đoán Để tránh khó hiểu trong các khía cạnh khác nhau củakhai phá dữ liệu, cần đưa ra cấu trúc công việc cần thực hiện cho quá trình dự đoán

 Mục tiêu công việc

Mô hình dự đoán [17] được xây dựng hay huấn luyện sử dụng dữ liệu, trong đó

giá trị các biến tương ứng là đã biết Kiểu huấn luyện này đôi khi được gọi là học có giám sát.

1.4.1 Bài toán phân loại

Trong bài toán phân loại [13], mỗi đối tượng là được miêu tả bởi một tập các giátrị thuộc tính và mỗi đối tượng sẽ thuộc về một lớp được xác định trước Mục đíchcủa bài toán phân loại là thu được một tập các luật chỉ ra lớp mà đối tượng thuộc vào,

dựa trên một tập các mẫu huấn luyện Do đó, phân loại dữ liệu được gọi là học có giám sát Một trong các ứng dụng của bài toán này là khi ngân hàng muốn phát triển

một cơ chế tự động có thể quyết định được rằng một ứng dụng sử dụng thẻ tín dụng cóđược chấp nhận hay không dựa trên các bản ghi dữ liệu của các khách hàng đã có Hay một ứng dụng khác là: Một bệnh viện muốn chẩn đoán một bệnh nhân cóthuộc về một nhóm có nguy cơ rủi ro cao hay không dựa trên tiền sử bệnh của bệnh

Trang 15

Xét một ví dụ cho ở hình bảng dưới đây:

Các luật thu được sẽ có dạng như sau:

• If (trường = đại học, CĐ) và ~(lợi tức =cao), then mức độ tín nhiệm = thấp.

• Otherwise, mức độ tín nhiệm = cao.

Phần lớn các luật sinh ra là không đầy đủ Nói cách khác, dung sai lỗi là không thểtránh khỏi Trong trường hợp này, độ chính xác là 7/9 =78%

Dựa trên học instance-based, ta thực hiện trên k mẫu huấn luyện gần nhất của một instance mới (v1, v2, …, vm) và gán instance mới đó cho lớp có nhiều instance trong k

mẫu gần nhất đó Phương pháp này được gọi là phân lớp K láng giềng gần nhất

nhiệm

định có thể dễ dàng chuyển đổi sang dạng luật với cấu trúc if then

Cấu trúc cây quyết định có dạng:

 Mỗi node trong ký hiệu cho một bộ dữ liệu thử cho một thuộc tính

 Mỗi nhánh đặc trưng cho một đợt dữ liệu thử

 Các node lá đại diện cho các lớp hoặc là phân phối lớp

 Node trên đỉnh của cây là node gốc

Quá trình dựng cây gồm hai bước:

 Dựng cây: Phân đoạn dữ liệu cho trước hồi quy dựa trên các thuộc tínhđược lựa chọn Tai thời điểm bắt đầu, mọi đối tượng huấn luyện được đặttại node gốc

 Tỉa cây: chỉ ra và loại bỏ những nhánh chịu nhiễu hoặc ngoài lề

Ứng dụng: chia lớp một đối tượng Kiểm thử các giá trị thuộc tính một lần nữatrên cây quyết định

Thuật toán dựng cây: tại mỗi node của cây tiến hành như sau:

Trang 16

1 Chọn ra thuộc tính tối ưu nhất căn cứ trên các đánh giá cho trước

2 Mở rộng cây bằng cách thêm nhánh mới cho mỗi giá trị thuộc tính

3 Sắp xếp các đối tượng huấn luyện trên các node lá

4 Nếu các đối tượng trong một node thuộc về một đối tượng thì dừng, nếukhông lặp lại từ bước 1 đến bước 4 cho các node lá

Xét ví dụ Play-tennis

Days Outlook Temperature Humidity Wind Class

Có 14 đối tượng thuộc về 2 lớp là {Y, N} được khảo sát dựa trên 4 thuộc tính

Dom(Outlook) = {sunny, overcast, rain}

Dom(Temperature) = {hot, mild, cool}

Dom(humidity) = {high, normal}

Dom(Wind) = {weak, strong}

Khi chọn Temperature làm node gốc, ta sẽ dựng được 1 cây như sau:

Trang 17

Hình 2 : Cây quyết định với Temperature làm node gốc

Nhưng nếu chọn Outlook làm node gốc, cây thu được sẽ đơn giản hơn nhiều

Vậy, chọn node gốc như nào thì tốt nhất?

Cách chọn lựa thuộc tính tốt nhất: sử dụng lý thuyết của độ đo thông tin Gain

và Entropy

Entropy:đặc trưng cho mức độ pha tạp (hay đồng nhất) của một tập hợp các đối

tượng mẫu Gọi S là tập hợp các đối tượng âm và dương , P là phần các giá trị dươngtrong S, P là phần các giá trị âm trong S

Entropy(S) = - P log2P - P log2P , 0  Entropy(S)  1

Trang 18

Entropy([9+, 5-]) = - (9/14)log2(9/14) – (5/14)log2(5/14)

= 0.940

Lưu ý, Entropy bằng 0 nếu mọi phần tử của S đều thuộc vào cùng một lớp Entropybằng 1 nếu S có số đối tượng dương và âm bằng nhau

Information Gain:

Information Gain của một thuộc tính A trong tập S, ký hiệu là Gain(S,A) được định

nghĩa như sau:

v

S

S

Entropy(Sv)trong đó, Value(A) là tập các giá trị có thể của thuộc tính A; Sv là một tập con của Strong đó thuộc tính A có giá trị bằng v

Values(Wind) ={Weak, Strong}, S = [9+, 5-]

Sweak , một node con có giá trị “weak”, bằng [6+, 2-]

Sstrong , một node con có giá trị “strong”, bằng [3+, 3-]

Gain(S, Wind) = Entropy(S) = 

Trang 19

Điều kiện dừng:

1 Mọi thuộc tính đều đã có mặt trên cây

2 Các đối tượng huấn luyện kết hợp với mỗi node lá có cùng giá trị thuộc tínhđích (như entropy của chúng cùng bằng 0)

Cây quyết định được dùng để dự đoán các đại lượng phân loại được gọi là cây phân loại vì thay thế cho các loại hay các lớp Cây quyết định dùng để dự đoán đại lượng liên tục được gọi là cây hồi quy

Chuyển cây quyết định sang tập luật:

if (Outlook = sunny) and (Humidity = High)

then PlayTennis = No

if (Outlook = Sunny) and (Humidity = Normal)

then PlayTennis = Yes

1.4.3 K – Láng giềng (K – Nearest Neighbor) [17]

Khi giải quyết một bài toán mới, thường ta chỉ quan tâm đến lời giải cho các bàitoán tương tự nhau mà chúng đã được giải quyết trước đó K-láng giềng (k-NN) là kỹthuật phân lớp sử dụng cùng phương pháp này Thuật toán quyết định lớp nào cho mộtđối tượng mới bằng việc kiểm tra lại “k” trong số k- láng giềng gần nhất Một trườnghợp tương tự xét trong hình dưới đây Đếm số trường hợp cho mỗi lớp, gán trườnghợp mới cho cùng lớp mà phần lớn các láng giềng của nó thuộc vào

Điều đầu tiên phải áp dụng đối với k –NN là tìm ra một đơn vị đo khoảng cáchgiữa các thuộc tính dữ liệu và tính toán nó Trong khi điều này là rất đơn giản với dữ

Trang 20

liệu số, biến phân loại cần phải được xử lý đặc biệt hơn Như khoảng cách giữa màuxanh và màu đỏ là gì? Phải có cách để tính tổng khoảng cách giữa các thuộc tính Mỗikhi tính toán khoảng cách giữa các trường hợp, phải chọn ra một tập các trường hợpkhác đã được phân lớp làm cơ sở cho quá trình phân loại trường hợp mới, quyết định

độ rộng của vùng lân cận so sánh và cách đếm láng giềng (có thể cung cấp nhiềutrọng số cho láng giềng gần hơn cho các láng giếng xa hơn) K-NN đưa một khốilượng công việc lớn vào máy tính vì thời gian tính toán tăng theo hệ số tổng các điểm.Trong khi xử lý nhanh hơn với cây quyết định hay mạng nơron đối với một trườnghợp mới, k-NN yêu cầu phép tính toán mới cho mỗi trường hợp mới Để tăng tốc độcho k-NN, tất cả dữ liệu thường xuyên truy cập được lưu trong bộ nhớ Mô hình k-NN

dễ hiểu khi chỉ có vài biến dự đoán, và cũng rất hữu ích khi tính toán với dữ liệukhông chuẩn hoá như văn bản Chỉ có một yêu cầu đối với một kiểu dữ liệu là phải tồntại một ma trận thích hợp

1.5 Tại sao khai phá luật kết hợp lại quan trọng

Hãy xét một ứng dụng trong việc khai phá dữ liệu y tế liên quan tới căn bệnh tim[12] Giả sử ta có một bảng mô tả các thuộc tính như sau và tập các mẫu thông tin liênquan của bệnh nhân Mục tiêu là phải chỉ ra được mối liên quan giữa độ đo perfusion

và mức độ rủi ro với mức độ mắc bệnh tim

Đã có rất nhiều kỹ thuật khai phá dữ liệu được sử dụng, nhưng ta hãy xét xem tạisao những kỹ thuật này lại không thể giải quyết hiệu quả bài toán đặt ra Cây quyếtđịnh đưa ra tập luật để phân loại các bản ghi từ một tập dữ liệu đã được tối thiểu hoácác lỗi phân loại Mục đích của việc sử dụng cây quyết định là chỉ ra lớp mà các bảnghi thuộc vào Trong trường hợp này, có thể phân loại bệnh nhân là khoẻ hay có bệnh.Tuy nhiên, các bệnh nhân sẽ không thể được phân vào các lớp một cách dễ dàng bởi

có nhiều cấp độ khác nhau của “có bệnh” Có thể sẽ có rất nhiều lớp được áp dụng đểchỉ ra các cấp độ bệnh khác nhau, nhưng điều này có thể chỉ ra được nếu ta tiến hànhkiểm tra động mạch và một vài phân tích nhất định Bên cạnh đó, ta sẽ không thể baoquát hết được tất cả các bệnh có liên quan tới động mạch Một nhược điểm khác nữađối với kỹ thuật cây quyết định là việc tự động phân tách các giá trị số Do hiệp hội y

tế thường thống nhất trong quan điểm đưa ra các ngưỡng chuẩn để phân tích dữ liệu số(như huyết áp cao, béo phì, hàm lượng cholesteron cao…) Các điểm phân tách rất nhỏ

sẽ được kỹ thuật cây quyết định đưa ra khi có sự khác biệt so với đối tượng chuẩn,điều này sẽ dẫn đến các kết quả thực nghiệm sẽ khó được diễn giải hơn

Ghép nhóm là một kỹ thuật khác được xem xét Với dữ liệu về bệnh tim thì kỹthuật này sẽ cho cách nhìn tổng quan đối với tập dữ liệu, tuy nhiên lại không đưa rađầy đủ tập các luật từ các tập con của tất cả các biến

Trang 21

Bảng 1 : Các thuộc tính

22 Pangio C R Previous angina

23 Pstroke C R Prior stroke

24 PcarSur C R Prior carotid surgery

Cholesterol

Với kỹ thuật khai phá luật kết hợp có ràng buộc ta có thể thu được tập các luậtrất có ý nghĩa liên quan tới cả việc xác định có bệnh hay không có bệnh và mức độ rasao

Dự đoán không có bệnh:

1 [Sex = F]  ([0.0 <=LCX < 50.0 ]), s =0.229, c = 0.728

2 [Smoke = n] ([not(70.0 <=RCA < 100.1)]), s = 0.290, c = 0.714

3 [0.0 <= CHO: < 200.0]  [not(70.0 <= LAD <100.1)], s = 0.078, c = 0.708

4 [0.0 <= Age < 40.0][Smoke = n] [0.0 <= LCX <50.0], s = 0.008, c = 0.714

5 [0.0 <= Age < 40.0][Diab = n] [0.0 <= LAD < 50.0], s = 0.027, c =0.818

6 [40.0 <= Age < 60.0] and [Sex = F][Diab = n] [0.0 <= LCX <50.0], s = 0.084, c

’P’ thuộc tính tương ứng với độ đoperfusion trên từng vùng cụ thểcủa tim,

’R’ thuộc tính tương ứng với mức

độ rủi ro,

’D’ thuộc tính tương ứng với mức

độ bệnh tim

Trang 22

có tình trạng tim mạch rất nguy hiểm…

Trang 23

Chương 2: KHAI PHÁ LUẬT KẾT HỢP

Bài toán khai phá luật kết hợp được đưa ra trong [3] Ta giả sử rằng một CSDL Dđược cho trước, để đơn giản ta coi đó là một bảng quan hệ Boolean: mỗi hàng trongbảng tương ứng với một bản ghi, mỗi cột tương ứng với một thuộc tính; vị trí thứ itrong hàng chứa giá trị 1 hoặc 0 tuỳ thuộc vào thuộc tính thứ i có mặt trong bản ghitương ứng hay không Một luật kết hợp mô tả một phạm vi mà ở đó sự có mặt của tập

X thuộc tính trong CSDL D sẽ dẫn tới sự có mặt của tập Y các thuộc tính phân biệt khác trong cùng bản ghi Trong mô hình gọi là support-confidence, một luật kết hợp

được đặc trưng bởi cặp hệ số Hệ số support là phần trăm số bản ghi trong D chứa cả

X và Y Hệ số confidence được định nghĩa là mức độ tin cậy của luật đối với mối quan

hệ ràng buộc lẫn nhau của các thuộc tính [3] Từ ngưỡng support và confidence tương

ứng là s và c cho trước, liệt kê tất cả luật từ CSDL D có giá trị support và confidence tương ứng lớn hơn s và c Ví dụ, nếu D là CSDL kinh doanh, s = 40% và c = 90%, bài

toán sẽ được phát biểu thành (1) liệt kê tất cả các luật chỉ ra rằng sự có mặt của mộtkhoản mục này sẽ kéo theo sự có mặt của các khoản mục khác (2) Chỉ xét những luật

có chiếm hơn 40% bản ghi mà có mức độ tin cậy vượt quá 90%

2.1 Các định nghĩa cơ bản:

2.1.1 Itemset:

Gọi I là tập các item phân biệt nhau, I = { I 1 , I 2 , I m } với Ii là các item (khoản

mục) Không mất tính tổng quát, ta giả sử rằng bất kỳ tập con (subset) nào của I đều

có thể được biểu diễn dưới dạng chuỗi tuần tự các item sắp theo trật tự tên các item

Ví dụ {a,c} và {c,a} biểu diễn cùng là tập con của {a,b,c} nhưng chỉ có một chuỗituần tự duy nhất là ac

Định nghĩa 1: Một Itemset X là một tập các item trong I, Itemset X được gọi là

k-itemset nếu chứa k item có trong I

2.1.2 Cơ sở dữ liệu [1], [15]

CSDL D được xét như một bảng quan hệ Booolean (Hình 4.a) và có thể được tổchức vật lý theo chiều ngang (Hình 4.b) hoặc chiều dọc ( Hình 4.c) Tổ chức theochiều ngang gồm tập các cặp (TID, T) với TID là định danh duy nhất của giao dịch và

T là một giao dịch trong D – là một tập các item sao cho T  I Tổ chức theo chiềudọc gồm tập các cặp (a, list) với a là một item và list là một danh sách sắp thứ tự các

số nối tiếp

Trang 24

2.1.3 Support

Định nghĩa 2: Với một itemset X, ta ký hiệu (X) = {TID|<TID,T>D và XT}

(X) được gọi là support của X, lực lượng của (X) , ký hiệu là |(X)| là số đếm của X(support count) và sup(X) = |(X)| / |D| là hệ số support của itemset X trong D, đượchiểu là số giao dịch trong CSDL D mà có chứa itemset X

Lưu ý rằng () = { TID| <TID, T>  D và T} = D

Hình 4: Các dạng biểu diễn khác nhau của I = {a,b,c,d,e}

Định nghĩa 3: Một itemset X được gọi là large itemset hay frequent itemset trong D

nếu support của X lớn hơn hoặc bằng ngưỡng support tối thiểu -gọi là minsup, được

định nghĩa trước bởi người dùng, ngược lại thì X được gọi là small itemset.

Định nghĩa 4: Một large itemset đôi khi còn được gọi là itemset có support tối thiểu,

itemset thoả support, hay itemset đáng quan tâm (interesting itemset)

Các tính chất của large itemset:

Tính chất 1-1: Support cho các subset : Nếu AB và A, B là các Itemset thì sup(A)

 sup(B) vì tất cả các giao dịch của D support B thì cũng support A

Tính chất 1-2: Nếu itemset A không có support tối thiểu trên D , nghĩa là sup(A) <

minsup thì mọi superset B của A sẽ không phải là một frequent vì supB)  sup(A) <minsup

Tính chất 1-3: Nếu itemset B là large trên D, nghĩa là sup(B)  minsup thì mọi

subset A của B là large trên D vì sup(A)  sup(B)  minsup

64 5 5 6

(c)(b)

(a)

Trang 25

Định nghĩa 5: Một frequent itemset là tối đa (maximal) nếu nó không có bất kỳ

superset nào là frequent itemset

Định nghĩa 6: Tập các frequent itemset tối đa được gọi là maximum frequent itemset

(viết tắt là MFS)

các frequent itemset với hệ số support như sau:

luật Lưu ý rằng mỗi luật X  Y đều gắn với một confidence conf,

conf = supsup(X (X)Y)

Định nghĩa 8 : support của một luật X  Y, ký hiệu sup(X  Y) là khả năng mà tập

giao dịch hỗ trợ cho các thuộc tính trong cả X và Y

sup(X  Y) = | (X  Y)| / |D| gọi là hệ số support của X  Y

sup(X  Y) = sup(X  Y)

Định nghĩa 9: confidence của một luật X  Y, ký hiệu conf(X  Y) hiểu đơn giản là

xác suất có điều kiện để một giao dịch chứa Y nếu nó đã chứa X

conf(X  Y) = p(YI| XI) = p(Y p(T X X T) T)

Định nghĩa 10: Một luật kết hợp hợp lệ là một luật kết hợp mà với cặp hệ số

minsup, minconf do người dùng chọn trước: 0  minsup  1 và 0  minconf  1 thìluật phải thoả các điều kiện sau:

1 sup(X  Y)  minsup và

2 conf(X  Y)  minconf

minsup được gọi là support tối thiểu và minconf là confidence tối thiểu

50% và minconf = 100% là danh sách sau:

Trang 26

a  b c  d ab  e ae  b de  b abd  e

Các tính chất của luật kết hợp:

thoả trên D

 Z cũng thoả dược trên D

luật nào trong các luật B  (L – B) có confidence tối thiểu, với L, A, B là các itemset

và BA

2.2 Giới thiệu bài toán

Trong [3], bài toán khai phá luật kết hợp có thể được chia thành hai bài toán nhỏlà: khai phá các large itemset và sinh luật từ các mẫu large itemset này

1 Tìm tất cả các item(itemset) có support trên giao dịch lớn hơn minsup Support

của một itemset là số giao dịch chứa itemset đó Các itemset với support tối

thiểu được gọi là large itemset, còn các itemset khác được gọi là small itemset.

2 Sử dụng các large itemset để sinh ra các luật mong muốn Với mỗi large itemset

l, tìm tất cả các tập con không rỗng của l Với mỗi tập con a, đầu ra sẽ là một luật có dạng a  (l – a) nếu phân số giữa sup(l) trên sup(a) ít nhất lớn hơn minconf

1.2.1 Bài toán 1: Khai phá các large itemset:

Các thuật toán khai phá large itemset (frequent itemset) sẽ phải duyệt qua một sốgiai đoạn (pass) trên CSDL Trong giai đoạn đầu, ta đếm support cho mỗi item riêng lẻ

và xác định item nào là large  có support > minsup Trong mỗi giai đoạn tiếp theo,

từ tập large itemset thu được từ giai đoạn trước, ta sinh ra tập itemset mới có tiềm

năng là large itemset (gọi là tập candidate itemset) và tiến hành đếm support cho các

candidate itemset này trong suốt giai đoạn duyệt CSDL Ở đầu ra của mỗi giai đoạn, ta

sẽ xác định được trong số các candidate itemset thì các itemset nào thực sự là largeitemset và đưa chúng vào giai đoạn duyệt tiếp theo Quá trình này sẽ được tiếp tục chođến khi không xác định được thêm bất kỳ large itemset mới nào

Các thuật toán AIS, SETM và các thuật toán họ Apriori đều nhằm giải quyết bàitoán khai phá large itemset này

Trang 27

1.2.2 Bài toán 2: Sinh luật từ các large itemset:

Từ tập các large itemset L ta tiến hành sinh luật kết hợp Với mỗi large itemset l,

mỗi subset riêng biệt của nó được chọn như là tiền đề của luật và các item còn lại sẽ

được đưa vào hệ quả của luật Do l là large itemset nên mọi subset của nó cũng là

large itemset Luật là hợp lệ nếu confidence của luật lớn hơn hoặc bằng ngưỡngminconf do người dùng định ra Vậy vấn đề quan trọng nhất trong bài toán con này là

sinh subset như thế nào Thủ tục sinh subset là một thủ tục đệ quy Khi một subset a của large itemset l không sinh được luật thì tất cả các subset a’ a sẽ không cần xét tới nữa Vì khi a’ a thì sup(a’) sup(a), do đó sup(l) / sup(a’) sup(l) / sup(a)

minconf.

Ví dụ, ta có một large itemset là ABCD, đầu tiên ta chọn subset là ABC, sau đó

là AB, và A Nếu với subset ABC, ABC  D không thoả minconf thì ta không cầnkiểm tra với AB CD và A  BCD

Thuật toán sinh luật đơn giản được cho trên hình sau:

@input: large k-itemset

@output: Tập luật

forall large itemset l k , k  2 do begin

call genrules(lk, lk )

end.

Procedure genrules(lk: large k-itemset, am: large m-itemset)

// sinh tất cả các luật hợp lệ có dạng a’  (lk – a’), với mọi a’ am

A = {(m-1)-itemsets am-1 | am-1  am};

forall am-1 A do begin

conf = sup(lk) / sup(am-1)

If (conf  minconf) then begin return the rule am-1  (lk – am-1) with confidence = conf

and support = sup(lk)

if (m – 1 > 1) then

call genrules(lk, am-1) //sinh luật với subset của am-1 là tiền đề

end end

Hình 5: Thủ tục sinh luật đơn giản

Cải tiến thủ tục sinh luật này, ta quan tâm tới nhận xét sau: nếu luật a  (l - a) không thoả thì với mọi a’  a, luật a’  (l –a’) cũng là không thoả Ngược lại, nếu luật (l - c)  c thoả thì tất cả các luật (l – c’) => c’, c’ là subset khác rỗng của c cũng thoả.

Ví dụ nếu AB  CD thoả thì ABC  D và ABD  C cũng thoả

Trang 28

Từ một large itemset l, ta sinh tất cả các luật chỉ có một item trong hệ quả Sau

đó, dùng item trong hệ quả của luật và thủ tục apriori-gen để sinh tất cả các hệ quả

gồm 2 item có thể có từ l.

@input: Tập large k-itemset L k

@output: Tập luật

forall large k-itemset lk, k  2 do begin

H1 = {consequents of rules derived from l1 with one item in the consequent}

conf = sup(lk) / sup(lk - hm+1)

If (conf  minconf) then begin

return the rule (lk -hm+1)  hm+1) with confidence = conf

and support = sup(lk)

Hình 6: Thủ tục sinh luật nhanh

Do bài toán 2 thực hiện khá đơn giản, nên hiệu quả của bài toán khai phá luật kết hợp phụ thuộc rất nhiều vào sự thực hiện của bài toán 1

Trong chương 3, ta sẽ đi sâu nghiên cứu các thuật toán khai phá luật kết hợpkhác nhau Đa phần các thuật toán tập trung vào việc nâng cao tốc độ thực hiện củabài toán khai phá large itemset Mỗi thuật toán này đều có những xử lý và các cách cảitiến thuật toán nguyên thuỷ khác nhau được đưa ra nhằm giảm thời gian thực hiện,nâng cao hiệu quả thuật toán Do trong thực tế, cơ sở dữ liệu được lưu trữ, khai pháthường rất lớn Để có thể xử lý hiệu quả, cần xây dựng hệ thống song song xử lý phântán cơ sở dữ liệu Chương 4 đưa ra một số thuật toán khai phá luật kết hợp song songtrên CSDL phân tán

Trang 29

Chương 3: CÁC THUẬT TOÁN KHAI PHÁ LUẬT KẾT HỢP

Do việc sinh luật kết hợp có ý nghĩa rất lớn trong thực tiễn, hiện nay ngày càng

có nhiều thuật toán khai phá luật kết hợp khác nhau Các thuật toán luôn luôn được cảitiến để nâng cao hiệu quả thực hiện về cấu trúc lưu trữ, tốc độ thực hiện, dung lượnglưu trữ và tránh hiện tượng thắt cổ chai bộ nhớ AIS và SETM [3], đưa ra những kháiniệm cơ bản về large itemset, candidate itemset…và là thuật toán khai phá luật kết hợpnguyên thuỷ nhất Sau đó, họ thuật toán Apriori [4] được đưa ra, đã chỉ rõ bài toán cụthể của khai phá luật kết hợp Thuật toán Apriori đã trở thành thuật toán khuôn mẫucủa bài toán khai phá luật kết hợp Apriori giới thiệu một cấu trúc lưu trữ cáccandidate itemset là hashtree nhằm lưu trữ chỉ số của một danh sách các đối tượngitemset để công việc xử lý có hiệu quả hơn Sau này, có rất nhiều biến thể của thuậttoán Apriori được đưa ra, mà chúng khác nhau ở cách kiểm tra các candidate itemset

trong CDSL Apriori nguyên thuỷ kiểm tra xem các itemset có kích thước l có là frequent không trên toàn CSDL trong giai đoạn l DIC [6] kiểm tra ngay một itemset

sau khi tất cả các subset của nó đã được xác định là frequent, chứ không đợi đến khiCSDL được duyệt xong DIC xem xét cùng một số lượng candidate itemset như thuậttoán Apriori

Park et al [16] với thuật toán DHP cải tiến thuật toán Apriori với mô hình hash

để có thể chỉ ra các candidate sẽ là infrequent (do đó sẽ có thể không cần quan tâmxem xét tới) nếu kiếm tra trên CSDL Sử dụng mô hình hash để đưa ra CSDL nhỏ hơnsau mỗi giai đoạn nhằm làm giảm chi phí cho các giai đoạn tiếp sau Nhưng giống nhưApriori, thuật toán vẫn xem xét từng frequent itemset

Lin và Kedem [10] đưa ra thuật toán Pincer-Search cho việc khai phá các longfrequent itemset tối đa Thuật toán cố gắng chỉ ra các mẫu dài trong suốt quá trình tìmkiếm Pincer-Search sử dụng pha quy nạp NP-hard để đảm bảo không có candidateitemset dài nào có chứa itemset không frequent

MaxMiner [14] áp dụng cách tìm kiếm từ trên xuống trên không gian tìm kiếm, luônluôn cố gắng chỉ xét trên các itemset đầu nhằm nhanh chóng chỉ ra các frequent itemset dài.Bởi việc chỉ ra các frequent itemset dài từ rất sớm, MaxMiner sẽ có thể cắt tỉa tất cả tập concủa những itemset dài này Trong MaxMiner có sử dụng mẹo để chỉ ra frequent itemset dài từrất sớm, nhờ đó có thể chỉ ra khi một candidate itemset là frequent ngay cả trước khi truynhập vào cơ sở dữ liệu

Và gần đây, thuật toán FPGrowth [9] dựa trên một cấu trúc mới là FP-Tree giúp chocấu trúc dữ liệu nhỏ hơn sẽ tránh được chi phí cao do các lần duyệt CSDL, tránh chi phí tốnkém trong việc sinh một lượng lớn tập các candidate Với việc phân nhỏ bài toán khai pháthành tập các công việc nhỏ hơn nhằm khai phá các pattern đã dược giới hạn trong cơ sởpattern điều kiện, không gian tìm kiếm của thuật toán được giảm xuống nhanh chóng

Trang 30

Sau đây ta sẽ đi sâu vào tìm hiểu các thuật toán khai phá luật kết hợp nhanh vàphần cuối của chương sẽ đưa ra quyết định lựa chọn các thuật toán sẽ được cài đặt thửnghiệm để so sánh, đánh giá hiệu quả.

3.1 Các thuật toán nguyên thuỷ

3.1.1 AIS [3]

Các candidate itemset được sinh ra và đếm ngay sau khi duyệt CSDL Khi xétmột giao dịch, ta sẽ xác định được itemset nào là large trong giai đoạn trước đượcchứa trong giao dịch này Các itemset candidate được sinh ra bởi việc mở rộng các

large itemset trong giao dịch Một large itemset l chỉ được mở rộng với các item là large và có thứ tự đứng sau bất kỳ item nào trong l trật tự từ điển Trong mỗi giai

đoạn, các candidate được sinh ra từ một giao dịch sẽ được bổ sung vào tập cáccandidate itemset đã có hoặc số đếm của nó sẽ được tăng lên nếu đã được tạo từ cácgiao dịch trước đó

Mô hình thuật toán:

@input: Tập các giao dịch D và minsup

@output: Tập các frequent itemset trên DL1 = {large 1-itemset}

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

2. Ck = 

3 forall transaction tD begin

4. Lt = subset(Lk-1,t) //large itemset được chứa trong t

5. forall large itemset l t Lt begin

Trang 31

3.1.2 SETM [3]

Thuật toán SETM được xuất phát từ nhu cầu muốn sử dụng SQL để tính toáncác large itemset Giống như AIS, thuật toán SETM cũng sinh ra các candidate ngaysau khi đọc các giao dịch từ CSDL Nhằm sử dụng được toán tử kết nối chuẩn join củaSQL đối với việc sinh các candidate, SETM đã tách riêng việc sinh các candidate vớiviệc đếm Lưu các candidate itemset và TID của giao dịch trong một cấu trúc tuần tự.Sau mỗi giai đoạn, số đếm support của candidate itemset được xác định nhờ việc sắpxếp và tập hợp cấu trúc này

Trong SETM, cần nhớ TID của giao dịch cùng với candidate itemset được sinh

ra từ giao dịch đó Điều này được sử dụng để xác định large itemset được sinh ra từgiao dịch được đọc mà không cần phải có phép toán sinh tập con L  k C k có đượcnhờ bỏ đi các candidate không có support tối thiểu Giả sử rằng CSDL đã được sắpxếp theo thứ tự từ điển, SETM có thể dễ dàng tìm được các large itemset có trong mộtgiao dịch ở giai đoạn tiếp theo nhờ việc sắp xếp L k theo TID Thực tế là chỉ cần xéttới mỗi phần tử của L k chỉ một lần lần lượt theo trật tự của TID và việc sinh

candidate có thể được thực hiện nhờ sử dụng phép toán merge-join quan hệ.

@input: Tập các giao dịch D và minsup

@output: Tập các frequent itemset trên D

5 forall transaction tD begin

6. Lt = {lL k1| l.TID=t.TID} //large (k-1) itemset được chứa trong t

7. forall large itemset l t Lt begin

Trang 32

Nhược điểm trong thuật toán này là kích thước của các tập candidate C k Vớimỗi candidate itemset, tập candidate C k có số điểm vào bằng với số giao dịch màcandidate itemset xuất hiện Hơn nữa, tại điểm kết thúc của mỗi giai đoạn khi ta chuẩn

bị để đếm support của các candidate itemset thì C k có trật tự không đúng và cần phảisắp xếp lại các itemset Sau khi việc đếm và cắt tỉa các candidate itemset không cósupport tối thiểu, tập kết quả L k lại cần được sắp xếp theo thứ tự TID trước khi đượcdùng để sinh các candidate trong giai đoạn tiếp theo

3.2 Các thuật toán Apriori [4]

Các item trong itemset được lưu theo thứ tự từ điển Ta sử dụng ký hiệu c[1].c[2]….c[k] để biểu diễn cho mọt itemset k-itemset c gồm các item c[1], c[2], …, c[k],

với c[1] < c[2] < …< c[k] Nếu c = X.Y và Y là một itemset thì ta gọi Y là một extension của X Mỗi itemset đều gắn với một trường số đếm để lưu support của

m-itemset này Trường số đếm này ban đầu được khởi tạo là 0 khi m-itemset lần đầu tiênđược tạo ra

Bảng 2 : Ký hiệu

k-itemset Một itemset có k item

Lk Tập các large k-itemset (thoả support tối thiểu) Mỗi phần tử của tập có

hai trường:

i) itemset và ii)support count

Ck Tập các candidate k-itemset (tiềm năng sẽ là các large itemset) Mỗi

phần tử của tập gồm hai trường:

i) itemset và ii) support count

k

C Tập các candidate k-itemset khi các TID của giao dịch sinh ra được kết

hợp cùng với các canđiate này

3.2.1 Thuật toán Apriori

1 L1 = {large 1-itemset}

2 for (k = 2;Lk-1 ; k++} begin

3. Ck = apriori-gen(Lk-1); // new candidate

4 forall transaction tD begin

5. Ct = subset(Ck,t) //các candidate được chứa trong t

Trang 33

Trong thuật toán Apiori, giai đoạn đầu chỉ là đếm support cho các item Tập L1

là các large 1-item, thực chất là các item có support lớn hơn hoặc bằng minsup Cácgiai đoạn sau gồm có hai pha: i) các large (k-1) itemset trong Lk-1 tìm được ở giai đoạnthứ k-1 được dùng để sinh ra các candidate itemset Ck nhờ thủ tục aprriori-gen ii)CSDL được quét để tính support cho mỗi candidate trong Ck Tại đây ta cần sử dụnggiải pháp đếm nhanh hiệu quả để có thể xác định được các candidate nào trong Ckđược chứa trong một giao dịch t cho trước

Sinh tập candidate của thuật toán Apriori:

Function apriori-gen

@param: Lk-1 tập các large (k-1) itemset

@return: Tập cha của tất cả các large (k-1) itemset

//bước kết nối

insert into Ck

select p.item1, p.item2, …, p.itemk-1, q.itemk-1

from Lk-1 p, Lk-1 q

where p.item1 = q.item1,…, p.itemk-2 = q.itemk-2, p.itemk-1 < q.itemk-1

//bước cắt tỉa: bỏ đi tất cả các itemset cC k mà có(k-1)-subset của c không có trong L k-1

forall itemsets c Ck do

forall (k-1)-subsets s of c do

if (s  Lk-1) then

deleete c from Ck;

Hình 10: Hàm sinh tập candidate của thuật toán Aprirori.

C4 sẽ là {{1 2 3 4}, {1 3 4 5}, bước cắt tỉa sẽ loại bỏ itemset {1 3 4 5} vì itemset {1 4 5} là không có trong L3

Lk-1 Sau bước kết nối thì Lk  Ck Bằng lập luận tương tự, sau bước cắt tỉa, tại đó taloại bỏ khỏi Ck tất cả các itemset mà (k-1)-subset không thuộc về Lk-1 nhưng khôngloại bỏ bất kỳ itemset nào có thể thuộc về Lk

Định nghĩa 11: Cây băm (hash tree) là một cấu trúc dữ liệu bao gồm các node lá

hoặc node trong, node lá gồm một danh sách các itemset và node trong là một bảngbăm (hash-table)

Tại mỗi node trong, mỗi vị trí của hash table trỏ tới một node khác Node gốccủa cây được định nghĩa có độ sâu là 1 Một node trong có độ sâu là d sẽ trỏ tới node

Trang 34

có độ sâu là d + 1 Các itemset được lưu trong các node là thành một danh sách liênkết Khi thêm một itemset c, ta bắt đầu từ gốc đi xuống cho đến khi tới được một node

lá Tại một node trong có độ sâu là d, ta cần quyết định đi theo nhánh nào nhờ áp dụnghàm băm với item thứ d của itemset Khi số lượng các itemset ở một node lá vượt quámột ngưỡng cho trước, node lá sẽ được chuyển đổi thành node trong

3.2.2 Thuật toán AprioriTID:

Thuật toán AprioriTID được cho trong Hình 11

@input: Tập các giao dịch D và minsup

@output: Tập các frequent itemset trên D

6 forall entries tC k1 begin

7 //xác định các candidate itemset được chứa trong giao dịch với định danh t.TID

Hình 11: Thuật toán AprioriTID

Thuật toán có sử dụng cùng hàm apriori-gen như thuật toán Apriori trong mục

trước để xác định các candidate itemset trước khi mỗi giai đoạn được bắt đầu Trongthuật toán này CSDL D không dùng để đếm support từ giai đoạn k>1 mà là tập C k Mỗi phần tử của tập C k có dạng <TID, {Xk}>, trong đó Xk là một large k-itemsettiềm năng có mặt trong giao dịch định danh TID Với k = 1, C1 tương ứng với CSDL

D, trong đó mỗi item i được thay thế bởi một itemset {i} Với k > 1, C k được sinh rabởi C k = C k + <t.TID, Ct> Phần tử của C k tương ứng với giao dịch t là <t.TID,{cCk| c chứa trong t}> Nếu một giao dịch không chứa bất kỳ candidate k-itemsetnào thì C sẽ không có một điểm vào nào đối với giao dịch này Do đó, số lượng điểm

Trang 35

vào trong C k có thể nhỏ hơn số giao dịch trong CSDL, đặc biệt là với k khá lớn Hơnnữa, với các giá trị k lớn, mỗi điểm vào có thể nhỏ hơn giao dịch tương ứng vì một sốcandidate có thể đã được chứa trong giao dịch Tuy nhiên, với các giá trị k nhỏ, mỗiđiểm vào có thể lớn hơn giao dịch tương ứng vì một điểm vào trong C k bao gồm tất

cả các candidate k-itemset được chứa trong giao dịch

Lời gọi hàm apriori-gen với L1 trong bước 4 cho ra tập candidate itemset C2 Từbước 6 đến bước 10, ta đếm support cho các candidate trong C2 bởi lặp qua các điểmvào trong C1 và sinh ra C2 Điểm vào đầu tiên trong C1 là {{1} {3} {4}} tương ứngvới giao dịch 100 Tập Ct trong bước 7 tương ứng với đầu vào t là {{1 3}}, vì {1 3} làmột 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_itemset

Trang 36

400, vì các giao dịch này không chứa bất kỳ itemsset nào trong C3 Candidate {2 3 5}trong C3 được tìm thấy là large và cũng là một phần tử của L3 Khi ta sinh C4 mà sửdụng L3, vì tập L3 rỗng nên thuật toán kết thúc.

3.2.3 Thuật toán AprioriHybrid

Ta có nhận xét rằng cả thuật toán Apriori và AprioriTID cùng sử dụng thủ tụcsinh candidate và do đó đếm được các itemset giống nhau Trong các giai đoạn tiếptheo, số lượng candidate itemset giảm xuống Tuy nhiên, Apriori vẫn kiểm tra từnggiao dịch trong CSDL Còn AprioriTID thay vì xét trên CSDL, chỉ quét C k để thuđược số đếm support, và kích thước của C k nhỏ hơn kích thước của CSDL

Thuật toán AprioriHybrid được xây dựng dựa trên những nhận xét này Sử dụngthuật toán Apriori trong các giai đoạn đầu và chuyển sang thuật toán AprioriTID khitập C k ở cuối mỗi giai đoạn được mong muốn là sẽ khớp với bộ nhớ Ta sẽ sử dụngmẹo sau để đánh giá nếu C k là khớp với bộ nhớ trong giai đoạn tiếp theo Ở cuối mỗigiai đoạn hiện tại, ta có số đếm của các candidate trong Ck Ta ước lượng kích thướccủa C k nếu nó đã được sinh ra Kích thước này là (candidates cCk support(c)+ số lượng các giao dịch) Nếu C k trong giai đoạn này là đủ nhỏ để khớp với bộ nhớ và có ítlarge candidate ở giai đoạn hiện tại so với giai đoạn trước, thì ta chuyển sang thuậttoán AprioriTID Điều kiện trên được thêm vào để tránh chuyển thuật toán khi C k

trong giai đoạn hiện tại khớp với bộ nhớ còn C k trong giai đoạn sau thì không

Chuyển đổi từ thuật toán Apriori sang thuật toán AprioriTID yêu cầu phải tốn chiphí Giả sử rằng ta chuyển từ Apriori sang AprioriTID tại cuối giai đoạn thứ k Tronggiai đoạn thứ (k+1), sau khi tìm được các candidate itemset chứa trong một giao dịch,

ta cũng sẽ thêm ID của giao dịch vào C k 1 Chí phí phải chịu trong giai đoạn này liênquan đến việc thực hiện Apriori Chỉ trong giai đoạn thứ (k+2) thuật toán AprioriTIDmới được thực hiện Nếu không có large (k+1)-itemset hay large (k+2)-itemset nào thì

ta vẫn tốn chi phí cho việc chuyển đổi mà không thu được bất kỳ gì khi sử dụngAprioriTID

3.3 Thuật toán DHP (Direct Hashing and Pruning) [16]

Thuật toán DHP được sử dụng để sinh large itemset hiệu quả Thuật toán được

đề xuất sử dụng phương pháp hàm băm cho việc sinh các candiadate itemset trong cácbước lặp khởi tạo và áp dụng trong suốt kỹ thuật cắt tỉa để giảm nhanh chóng kíchthước của CSDL giao dịch

Thuật toán DHP đề xuất hai điểm chính: một là sinh hiệu quả các large itemset

Trang 37

tả quá trình sinh các candidate itemset, trong mỗi giai đoạn ta sử dụng tập các largeitemset Li để tạo ra candidate itemset Ci+1 bởi việc nối Li với Li (ký hiệu là Li * Li) trên

cơ sở (i-1) item chung cho giai đoạn tiếp theo Ta quét trên toàn CSDL và đếmsupport của mỗi itemset trong Ci+1 để xác định được Li+1 Kết quả là càng nhiều itemsettrong Ci thì càng tốn chi phí để xác định được Li Thuật toán DHP sử dụng kỹ thuậthàm băm để lọc được những itemset không cần thiết cho việc sinh các candidateitemset tiếp theo Khi support của candidate k-itemset được đếm nhờ duyệt trênCSDL, DHP tích luỹ những thông tin về các candidate k-itemset của mỗi giao dịch sau

khi việc cắt tỉa được băm ra trên bảng băm Mỗi vị trí trong bảng băm bao gồm một con số đại diện cho số itemset đã được băm cho tới vị trí này Cần lưu ý rằng, dựa vào

kết quả có được từ bảng băm, một vecto bit được xây dựng, tại đó giá trị của mỗi bitđược đặt là 1 nếu con số tương ứng với điểm vào của bảng băm đó lớn hơn hoặc bằng

minsup Vecto bit này sẽ được dùng để giảm số lượng itemset trong Ci

@input: minsup

@output: tập C k

//Part 1

1 set all the bukets of H2 to zero; // H2 là một hash table

2 forall transaction tD dobegin

3 insert and count 1-items occurrences in hash tree;

8 Dk = D //một cơ sở của các large k-itemset

9 while (|{x|Hk[x]  minsup}|  LARGE) do

Trang 38

Hình 13: Các thủ tục của thuật toán DHP

Hình trên cho thấy thuật toán DHP được chia thành 3 phần Phần 1 cho tập large

Trang 39

itemset Ck dựa trên bảng băm (Hk) được sinh ra trong giai đoạn trước, để xác định tậpcác large k-itemset Lk, giảm kích thước của CSDL cho large itemset tiếp theo, và tạo

ra một bảng băm cho các large (k+1)-itemset Phần 3 về cơ bản là giống phần 2, ngoạitrừ việc không áp dụng bảng băm Lưu ý rằng, thuật toán DHP có mặt mạnh là xácđịnh được các large itemset từ các bước đầu, do vậy cải thiện được tình trạng thắt cổchai Kích thước của Ck giảm xuống đáng kể trong các giai đoạn tiếp sau Chính vì lý

do này mà thuật toán sử dụng phần 2 cho các bước lặp ban đầu và phần 3 cho cácbước lặp tiếp sau khi số lượng các vị trí băm với số đếm lớn hơn hoặc bằng minsup (ví

dụ |{x| Hk[x]}|  minsup trong Hình 12 phần 2) là nhỏ hơn một ngưỡng được địnhnghĩa trước LARGE

support tại từng vị trí và itemset

Hoàng Thị Minh Thu, CNPM K44

Trang 40

Hình 14: Ví dụ về bảng băm và phép sinh C 2

Giảm kích thước của CSDL giao dịch

Lưu ý rằng theo [3], bất kỳ một tập con nào của large itemset cũng đều phải làlarge itemset Thực tế này đã chỉ ra rằng, một giao dịch được dùng để xác định tập cáclarge (k+1)-itemset chỉ nếu nó gồm (k+1) large k-itemset trong giai đoạn trước đó Khik-subset của một giao dịch được đếm có thể biết được giao dịch đó có thoả điều kiệncần để chứa large (k+1)- itemset Nghĩa là nếu có số lượng các candidate itemset gầnvới số lượng các large itemset khi cắt tỉa k-subset, có thể loại bỏ các giao dịch và giảm

số lượng các giao dịch bởi triệt tiêu được các item mà không sử dụng đến trong việcsinh các large itemset

Ta sẽ xem cách kích thước giao dịch được cắt tỉa trong DHP Nếu một giao dịch

có chứa các large (k+1)-itemset, thì bất kỳ item nào nằm trong những (k+1)-itemsetnày sẽ phải xuất hiện ít nhất trong k candidate k-itemset trong Ck Một item sẽ đượccắt tỉa nếu nó không xuất hiện trong ít nhất k candidate k-itemset trong t Khái niệmnày được sử dụng trong thủ tục count_support để cắt tỉa kích thước giao dịch Tấtnhiên đó chỉ là điều kiện cần chứ không phải là điều kiện đủ đối với một item có mặttrong một candidate (k+1)-itemset Thủ tục make_hasht kiểm tra một item trong mộtgiao dịch có thực sự chứa một (k+1)-itemset với tất cả (k+1) các k-itemset của nó đềuchứa trong Ck

Quay lại với Ví dụ 3 -5, việc cắt tỉa và giảm kích thước giao dịch diễn ra nhưsau:

Đếm support trên hash tree

{B C}

{B E}

{C E}

L1*L1

Ngày đăng: 24/04/2015, 22:12

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] R. Agrawal, A. Arning, T. Bollinger, M. Mehta, J. Shafer, R. Srikant. The Quest Data Mining System. In Proc. 2nd KDD, Aug. 1996 Sách, tạp chí
Tiêu đề: The Quest Data Mining System
Tác giả: R. Agrawal, A. Arning, T. Bollinger, M. Mehta, J. Shafer, R. Srikant
Nhà XB: Proc. 2nd KDD
Năm: 1996
[6] S. Brin, R. Motwani, J. Ullman, S. Tsur. Dynamic Itemsets Counting and Impication Rules for Market Basket Data. In Proc. of the 1997 SIGMOD on Datatbase Theory, pages 215-229, 1997 Sách, tạp chí
Tiêu đề: Dynamic Itemsets Counting and Impication Rules for Market Basket Data
Tác giả: S. Brin, R. Motwani, J. Ullman, S. Tsur
Nhà XB: Proc. of the 1997 SIGMOD on Datatbase Theory
Năm: 1997
[7] M. S. Chen, J. Han, and P. S. Yu. Data Mining: An Overview from a Database Perspective. IEEE Transactions on Knowledge and Data Engineering, Vol. 8, No. 6, pages 866-883, December 1996 Sách, tạp chí
Tiêu đề: IEEE Transactions on Knowledge and Data Engineering
[8] D. W. Cheung, J. Han, V. Ng, A. W. Fu, and Y. Fu. A Fast Distributed Algorithm for Mining Association Rules. In Proceedings of the 4 th International Conference on Parallel and Distributed Information System, Miami Beach, FL, pages 31- 44, December 1996 Sách, tạp chí
Tiêu đề: Proceedings of the 4 th International Conference on Parallel and Distributed Information System
Tác giả: D. W. Cheung, J. Han, V. Ng, A. W. Fu, Y. Fu
Năm: 1996
[10] D. Lin and Z. Kedem. Pincer-Search: A new algorithm for discovering the maximum frequent set. In Proc. 6th EDBT. Mar, 1998 Sách, tạp chí
Tiêu đề: Pincer-Search: A new algorithm for discovering the maximum frequent set
Tác giả: D. Lin, Z. Kedem
Nhà XB: Proc. 6th EDBT
Năm: 1998
[12] C. Ordonez, E. Omiecinski, L. Braal,C. A. Santana, et al. Mining Constrained Association Rules to Predict Heart Disease College of Computing Georgia Institute of Technology,2000 Sách, tạp chí
Tiêu đề: Georgia Institute of Technology
[13] Y. J. Oyang. Data Mining and Machine Learning , Dept. of Computer Science and Information Engineering Sách, tạp chí
Tiêu đề: Data Mining and Machine Learning
Tác giả: Y. J. Oyang
Nhà XB: Dept. of Computer Science and Information Engineering
[15] A. Sarasere, E. Omiecinsky, and S.Navathe. An efficient algorithm for mining association rules in large databases. In Proc. 21st VLDB, Sept. 1995 Sách, tạp chí
Tiêu đề: An efficient algorithm for mining association rules in large databases
Tác giả: A. Sarasere, E. Omiecinsky, S. Navathe
Nhà XB: Proc. 21st VLDB
Năm: 1995
[16] J. Soopark. An Effective Hash-Based Algorithm for Mining Association Rule. SIGMOD, 1995 Sách, tạp chí
Tiêu đề: SIGMOD
[1] J. M. Adamo. Data Mining for Association Rules and Sequential Patterns, Springer - Verlag, 2002 Khác
[3] R. Agrawal, T. Imielinski, A. Swami. Mining Asociation Rules between Sets of Items in Large Databases. IBM Almaden Research Center, pages 207–216, 1993 Khác
[4] R. Agrawal, R. Srikant. Fast Algorithms for Mining Associations Rules, IBM Almaden Research Center, 1994 Khác
[5] R. Agrawal, J. C. Shafer. Parallel Mining of Association Rules: Design, Implementation and Experience . IBM Research Report, 1996 Khác
[9] J. Han. Mining Frequent Patterns without Candidates Generation. Simon Fraser University, 2000 Khác
[11] A. Mueller. Fast Sequential and Parallel Algorithms for Association Rule Mining. Technical Report CS-TR-3515, University of Maryland, College Park, 1995 Khác
[14] J. Roberto, Jr. Bayardo. Efficiently Mining Long Patterns from Databases, pages 83–97, 1998 Khác

HÌNH ẢNH LIÊN QUAN

Hình 1: Quá trình khai phá dữ liệu - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 1 Quá trình khai phá dữ liệu (Trang 11)
Hình 2 : Cây quyết định với Temperature làm node gốc - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 2 Cây quyết định với Temperature làm node gốc (Trang 17)
Hình 3 : Cây quyết định với Outlook làm node gốc - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 3 Cây quyết định với Outlook làm node gốc (Trang 17)
Hình chữ nhật liên tục, các 1-itemset A, B, C, D - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình ch ữ nhật liên tục, các 1-itemset A, B, C, D (Trang 43)
Hình 18: Thuật toán Pincer- Search 3.6. Thuật toán khai phá các mẫu  dài từ CSDL (Max-Miner) [14] - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 18 Thuật toán Pincer- Search 3.6. Thuật toán khai phá các mẫu dài từ CSDL (Max-Miner) [14] (Trang 46)
Hình 23: Thuật toán sinh FP-Tree - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 23 Thuật toán sinh FP-Tree (Trang 52)
Hình 24: Một ví dụ của FP-Tree - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 24 Một ví dụ của FP-Tree (Trang 53)
Hình 26: Thuật toán FPGrowth. - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 26 Thuật toán FPGrowth (Trang 57)
Hình 29:Thuật toán FDM-LP - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 29 Thuật toán FDM-LP (Trang 77)
Hình 30: Mô hình chung hệ thống - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 30 Mô hình chung hệ thống (Trang 79)
Hình 32: Biểu đồ phân cấp chức năng - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 32 Biểu đồ phân cấp chức năng (Trang 81)
Hình 33: Định dạng tệp giao dịch - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 33 Định dạng tệp giao dịch (Trang 82)
Sơ đồ lớp các chức năng: - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Sơ đồ l ớp các chức năng: (Trang 84)
Hình 35: Các môđun dùng trong hệ thống - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Hình 35 Các môđun dùng trong hệ thống (Trang 84)
Bảng 10: Các tham số để sinh tập dữ liệu giả - đồ án công nghệ thông tin nghiên cứu các thuật toán khai phá luật kết hợp nhanh và ứng dụng
Bảng 10 Các tham số để sinh tập dữ liệu giả (Trang 85)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

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