1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Khai thác mẫu phổ biến trên cơ sở dữ liệu tăng trưởng sử dụng cấu trúc node set

79 96 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 79
Dung lượng 1,26 MB

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

Nội dung

Luận văn nhằm tìm hiểu cấu trúc Node-set và áp dụng trong khai thác tập phổ biến trên cơ sở dữ liệu tăng trưởng... 3- Phạm vi nghiên cứu đề tài Vì tầm quan trọng của một số ứng dụng kha

Trang 1

-

LÊ MINH TÂM

KHAI THÁC MẪU PHỔ BIẾN TRÊN CƠ SỞ

DỮ LIỆU TĂNG TRƯỞNG SỬ DỤNG

Trang 2

LÊ MINH TÂM

KHAI THÁC MẪU PHỔ BIẾN TRÊN CƠ SỞ

DỮ LIỆU TĂNG TRƯỞNG SỬ DỤNG

Trang 3

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HCM

Cán bộ hướng dẫn khoa học: PGS.TS VÕ ĐÌNH BẢY

Luận văn Thạc sĩ được bảo vệ tại Trường Đại học Công nghệ TP HCM ngày 24 tháng 4 năm 2017

Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm:

Xác nhận của Chủ tịch Hội đồng đánh giá Luận sau khi Luận văn đã được sửa chữa (nếu có)

Chủ tịch Hội đồng đánh giá LV

TS CAO TÙNG ANH

Trang 4

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên: Lê Minh Tâm Giới tính: Nữ Ngày, tháng, năm sinh: 26/ 09/ 1988 Nơi sinh: TP HCM Chuyên ngành: Công nghệ Thông tin MSHV:1541860024

I- Tên đề tài:

Khai thác mẫu phổ biến trên cơ sở dữ liệu tăng trưởng sử dụng cấu trúc Node-set

II- Nhiệm vụ và nội dung:

Tìm hiểu cơ sở lý thuyết thuật toán Apriori, FP-Growth, PPV, Prepost, FIN, Prelarge-Tree

Cải tiến thuật toán Prelarge-Tree dựa vào cấu trúc Node-set và thuật toán FIN

III- Ngày giao nhiệm vụ:

IV- Ngày hoàn thành nhiệm vụ: 31/ 03/ 2017

V- Cán bộ hướng dẫn: PGS.TS VÕ ĐÌNH BẢY

CÁN BỘ HƯỚNG DẪN KHOA QUẢN LÝ CHUYÊN NGÀNH

Trang 5

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi Các số liệu, kết quả nêu trong Luận văn là trung thực và chƣa từng đƣợc ai công bố trong bất kỳ công trình nào khác

Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện luận văn này

đã đƣợc cảm ơn và các thông tin trích dẫn trong Luận văn đã đƣợc chỉ rõ nguồn gốc

Học viên thực hiện luận văn

Lê Minh Tâm

Trang 6

Xin chân thành cảm ơn Thầy hướng dẫn PGS Võ Đình Bảy đã tận tình, chu đáo hướng dẫn tôi thực hiện khoá luận này

Mặc dù đã có nhiều cố gắng để thực hiện đề tài một cách hoàn chỉnh nhất Song do buổi đầu làm quen với công tác nghiên cứu khoa học, tiếp cận với thực tế sàn xuất cũng như hạn chế về kiến thực và kinh nghiệm nên không thể tránh khỏi những thiếu sót nhất định mà bản thân chưa thấy được Tôi rất mong được sự góp ý của quý Thầy, Cô để khoá luận được hoàn chỉnh hơn

Tôi xin chân thành cảm ơn

Lê Minh Tâm

Trang 7

TÓM TẮT

Ngành công nghiệp công nghệ thông tin ngày càng phát triển, đòi hỏi lượng thông tin lưu trữ ngày càng cao Khả năng ứng dụng khai thác dữ liệu nhằm phát hiện các quy luật thông tin trong lượng dữ liệu khổng lồ, giúp đưa ra những quyết định đúng đắn mang lại cơ hội phát triển mạnh mẽ cho các doanh nghiệp

Mặc dù đã có nhiều thuật toán khai thác dữ liệu như Approri (Agrawal & Srikant,1994), Eclat (Zaki, 2000), FP-Growth (Han và các đồng sự, 2000) nhưng chưa hiệu quả và phù hợp với lượng lớn dữ liệu hiện nay Gần đây, Node-list (Deng & Wang, 2010) và N-list (Deng, Wang, & Jiang, 2012) là hai cấu trúc dữ liệu được sử dụng phổ biến, nó được chứng minh là rất hiệu quả trong việc khai thác tập phổ biến Vấn đề chính đặt ra đối với những cấu trúc này là, cả hai thuật toán đều phải mã hóa cho từng nút một của PPC-Tree với mã pre-order và post-order Đây là nguyên nhân gây tốn bộ nhớ vá bất tiện trong quá trình khai thác tập phổ biến Vì vậy, cấu trúc Node-set (Deng & Lv, 2014) hiệu quả hơn cho việc khai thác tập phổ biến Node-set chỉ yêu cầu pre-order hoặc post-order cho mỗi nút, chính điều này giúp cho Node-set tiết kiệm một nửa bộ nhớ so với Node-list và N-list

Luận văn nhằm tìm hiểu cấu trúc Node-set và áp dụng trong khai thác tập phổ biến trên cơ sở dữ liệu tăng trưởng

Trang 8

ABSTRACT

The IT industry is growing, demanding an increasing amount of information The ability to utilize data mining to detect information rules in huge amounts of data helps to make the right decisions that provide a strong opportunity for business growth

Although many data mining algorithms, such as Approri (Agrawal & Srikant, 1994), Eclat (Zaki, 2000), FP-Growth (Han et al., 2000), are not efficient and consistent with large amounts of data Current data Recently, Node-list (Deng & Wang, 2010) and N-list (Deng, Wang, & Jiang, 2012) are two commonly used data structures, which have proved to be very effective in stating Popular file pool The main problem with these constructs is that both algorithms must encode each node of the PPC-Tree with pre-order and post-order code This is the cause of memory loss inconvenient patch during the common file exploit Therefore, the Node-set (Deng & Lv, 2014) structure is more efficient for common file mining Node-sets only require pre-order or post-order for each node, which in turn allows Node-sets to save half the memory compared to Node-lists and N-lists

The thesis aims to investigate the Node-set structure and apply in the popular file

mining on the incremental database

Trang 9

MỤC LỤC

MỞ ĐẦU 1

1- Nhu cầu thực tiễn 1

2- Mục tiêu đề tài 1

3- Phạm vi nghiên cứu đề tài 1

4- Bố cục đề tài 2

CHƯƠNG 1- TỔNG QUAN VỀ ĐỀ TÀI 4

I- giới thiệu về khai thác dữ liệu 4

1- Dữ liệu là gì? 4

2- Khai thác dữ liệu là gì? 4

3- Quy trình phát hiện tri thức và khai thác dữ liệu 5

4- Các k thuật khai thác dữ liệu 7

CHƯƠNG 2- CƠ SỞ LÝ THUYẾT 8

I- KHAI THÁC DỮ LIỆU 8

1- Khai thác luật kết hợp 8

2- Khai thác tập phổ biến 8

II- Các thuật toán khai thác tập phổ biến 10

1- Khai thác tập phổ biến sử dụng thuật toán Apriori 10

2- Khai thác tập phổ biến sử dụng thuật toán FP-growth 14

3- Khai thác tập phổ biến sử dụng thuật toán PPV 18

4- Khai thác tập phổ biến sử dụng thuật toán PrePost 25

5- Tìm hiểu cấu trúc POC-Tree, Node-set và thuật tóan FIN 33

CHƯƠNG 3 - ỨNG DỤNG NODE-SET TRONG KHAI THÁC TẬP PHỔ BIẾN TRÊN CƠ SỞ DỮ LIỆU TĂNG TRƯỞNG 46

I- Giới thiệu 46

II- Khai thác tập phổ biến trên cơ sở dữ liệu tăng Trưởng 46

1- Thuật toán Prelarge-itemset 47

2- Thuật toán cập nhật Incremental_FIN 48

Trang 10

3- Ví dụ minh họa 52

CHƯƠNG 4- KẾT QỦA THỰC NGHIỆM 59

I- Môi trường thực nghiệm 59

II- Dữ liệu thực nghiệm 59

III- So sánh thời gian khai thác 59

1- Khai thác dữ liệu Mushroom 60

2- Khai thác dữ liệu T40l10D100K 61

3- Khai thác dữ liệu Connect 62

CHƯƠNG 5- KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 63

I- Điểm mạnh 63

II- Điểm yếu 63

1- Hiệu quả của đề tài 63

2- Hướng phát triển trong tương lai 63

Trang 12

DANH MỤC CÁC BẢNG

Bảng 2 1: CSDL các giao dịch 8

Bảng 2 2: Độ phổ biến của các tập 1-mục 10

Bảng 3 1: Cơ sở dự liệu ban đầu 52

Bảng 3 2: Ba giao dịch mới 53

Bảng 3.3: Số lƣợng của tất cả các tập trong giao dịch mới 55

Bảng 3.4: Vùng của các tập trong giao dịch mới 55

Bảng 3.5: Ba phân vùng của tập trong các giao dịch mới 56

Bảng 4.1: Đặc điểm của các cơ sở dữ liệu thực nghiệm 59

Trang 13

DANH MỤC CÁC BIỂU ĐỒ, ĐỒ THỊ, SƠ ĐỒ, HÌNH ẢNH

Hình 1.1: Quy trình phát triển tri thức và khai thác dữ liệu 5

Hình 2.1: Bước 1 và 2 của thuật toán Apriori tìm tập phổ biến 1-mục 12

Hình 2.2: Bước 3 và 4 của thuật toán Apriori tìm tập phổ biến 2-mục 12

Hình 2.3: Bước 5 và 6 của thuật toán Apriori tìm tập phổ biến 3-mục 13

Hình 2.4: Bước 7 và 8 của thuật toán Apriori tìm tập phổ biến 4-mục 13

Hình 2.5: Bước 9 và 10 của thuật toán Apriori tìm tập phổ biến 5-mục 13

Hình 2.6: Tập phổ biến 1-mục 17

Hình 2.7: Cây FP-tree cho CSDL bảng 2.1 17

Hình 2.8: Cây PPC-Tree cho CSDL của bảng 2.1 19

Hình 2.9: Node-list của tập phổ biến 20

Hình 2.10: Node-list của bc 21

Hình 2.11: Node-list của bce 22

Hình 2.12: Minh hoạ khởi dựng PPC-tree 25

Hình 2.13: Tập phổ biến của N-list 26

Hình 2.14: N-list của bf 28

Hình 2 15: N-list của bcf 33

Hình 2.16: POC-tree sau khi chạy thuật toán 2.11 theo dữ liệu của bảng 2.1 35

Hình 2.17: Chỉ ra các Node-set của tất cả tập phổ biến 36

Hình 2.18: Node-set của bf 37

Hình 2.19: Node-set của bcf 38

Hình 2.20: Một ví dụ về cây liệt kê 40

Hình 3.1: Chín trường hợp khi thêm giao dịch mới vào CSDL đã tồn tại 47

Hình 3.2: Tập phổ biến và gần phổ biến của CSDL bảng 3.1 52

Hình 3.3: POC- tree được xây dựng 54

Hình 3.4: Kết quả cuối cùng của Prelarge tree 57

Hình 4.1: Tổng thời gian khai thác và số lượng tập phổ biến khi thêm 10% dữ liệu với ngưỡng =0.1, =0.05 60

Trang 14

Hình 4.2: Tổng thời gian khai thác và số lƣợng tập phổ biến khi thêm 10 lần dữ liệu

có =0.05, =0.02 61Hình 4.3: Tổng thời gian khai thác và số lƣợng tập phổ biến khi thêm 10 lần dữ liệu

có =0.8, =0.7 62

Trang 15

MỞ ĐẦU 1- Nhu cầu thực tiễn

Những tổ chức có thể khai thác dữ liệu và thông tin để hỗ trợ việc đưa ra những quyết định chiến lược trong thế giới số hiện nay sẽ có thể đổi mới doanh nghiệp và dẫn đầu trong ngành của họ

Việc giải phóng thông tin kịp thời có thể được sử dụng để mang lại sự thấu hiểu, kinh nghiệm và những quyết định sáng suốt hơn, giúp các công ty sáng tạo với tốc độ chưa từng có

Các tổ chức thành công sẽ tạo ra sự khác biệt bằng cách cung cấp trải nghiệm khách hàng mang tính nhất quán, an toàn, có thể tùy biến và có khả năng mở rộng Họ sẽ đạt được kết quả kinh doanh thực sự thông qua khả năng nâng cao hiệu suất hoạt động, lòng trung thành của khách hàng và tốc độ tăng trưởng

Khi công nghệ thông tin đóng vai trò cốt lõi để hỗ trợ mọi ứng dụng đang phục vụ khách hàng, các công ty có thể tối ưu hóa và bảo vệ cơ sở hạ tầng trung tâm dữ liệu nhằm cung cấp hiệu năng và chức năng khai thác dữ liệu để cải thiện hoạt động tương tác với khách hàng Giúp các chủ doanh nghiệp đưa ra những quyết định hiệu quả hơn và theo kịp được những xu thế và sở thích mới

Vấn đề đặt ra, làm sao giải quyết các vấn đề này nhằm giảm chi phí, tốn k m cho các nhà cung cấp dịch vụ; tối ưu hơn nhằm tăng doanh số, doanh thu cho các tổ chức, cá nhân

2- Mục tiêu đề tài

Nghiên cứu cơ sở lý thuyết các k thuật khai thác dữ liệu tăng trưởng Cụ thể là đưa

ra giải pháp cải tiến thuật toán khai thác dữ liệu tăng trưởng

3- Phạm vi nghiên cứu đề tài

Vì tầm quan trọng của một số ứng dụng khai thác dữ liệu tăng trưởng, nhiều thuật toán đã được đề xuất trong lĩnh vực khai thác trong nhiều năm qua, hầu hết các thuật toán đều tập trung giảm bớt thời gian khai thác nhưng vẫn đưa ra kết quả chính xác nhất

Luận văn này tập trung nghiên cứu các giải pháp cho bài toán khai thác dữ liệu tăng trưởng Luận văn khảo sát các cấu trúc dữ liệu và thuật toán đã có từ trước Việc khảo sát

Trang 16

nhằm mục đích cải tiến các giải pháp đã có và hướng nghiên cứu trong lĩnh vực này Luận văn cũng đưa ra phân tích so sánh kết quả thực hiện của nhiều k thuật khai thác tăng trưởng đã có và thảo luận các khía cạnh về mặt lý thuyết của lĩnh vực này, sau đó ứng dụng các kết quả đã chứng minh vào khai thác dữ liệu tăng trưởng

Dựa trên một số công trình nghiên cứu trong lĩnh vực khai thác dữ liệu tang trưởng

đã công bố trong những năm gần đây, từ đó luận văn trình bày:

- Phương pháp khai thác dữ liệu tăng trưởng Nghiên cứu cấu trúc dữ liệu

và thuật toán khai thác dữ liệu tăng trưởng, tiêu biểu cấu trúc Node-set và thuật toán FIN 


- Kết hợp cấu trúc dữ liệu Node-set Node-set với thông tin giao dịch vào thuật toán FIN Sau đó có thể áp dụng trực tiếp vào quá trình khai thác dữ liệu tang trưởng một cách hiệu quả hơn 


- Xây dựng tập cơ sở dữ liệu thực nghiệm, so sánh các kết quả đạt được và đánh giá hiệu quả của ứng dụng đề xuất về thời gian, bộ nhớ

4- Bố cục đề tài

Chương 1: Giới thiệu tổng quan

Chương 2: Cơ sở lý thuyết

Chương 3: Ứng dụng Node-set trong khai thác tập phổ biến trên cơ sở dữ liệu tăng trưởng

Chương 4: Thực nghiệm và đánh giá


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

Luận văn trình bày trong 5 chương Chương một trình bày tổng quan về CSDL tăng trưởng Chương này cung cấp một cái nhìn chung nhất về lĩnh vực khai thác dữ liệu CSDL tăng trưởng

Chương hai trình bày cơ sở lý thuyết về khai thác dữ liệu đã được phát triển Trong

đó, luận văn mô tả sơ lượt thuật toán Apriori, FP-Growth, PPV, PrePost là các thuật toán

cơ bản làm cơ sở để phát triển các thuật toán sau này

Chương ba trình bày chi tiết cấu trúc dữ liệu Node-set, thuật toán FIN và áp dụng chúng trong khai thác dữ liệu tăng trưởng

Trang 17

Luận văn trình bày tổng quan về khai thác dữ liệu tăng trưởng, lý do vì sao chọn cấu trúc Node-set, thuật toán FIN vào thuật toán khai thác dữ liệu tăng trưởng

Chương bốn trình bày những kết quả thực nghiệm và nhận x t

Chương năm trình bày kết luận và hướng phát triển trong tương lai

Trang 18

CHƯƠNG 1- TỔNG QUAN VỀ ĐỀ TÀI I- GIỚI THIỆU VỀ KHAI THÁC DỮ LIỆU

1- Dữ liệu là gì?

Những năng gần đây, nhu cầu lưu trữ dữ liệu ngày càng cao Các công ty muốn phát triển đón đầu thị hiếu phải nắm rõ được nhu cầu và sở thích khách hàng Đơn cử như trang eBay, Amazon hoặc những trang tương tự, trang này cũng sẽ đưa ra những sản phẩm gợi ý tiếp theo cho bạn, ví dụ khi xem điện thoại, nó sẽ gợi ý cho bạn mua thêm ốp lưng, pin dự phòng; hoặc khi mua áo thun thì sẽ có thêm gợi ý quần jean, dây nịt, v.v Vì vậy, nghiên cứu được sở thích, thói quen của khách hàng cũng gián tiếp giúp doanh nghiệp bán được nhiều hàng hóa hơn

Vậy những thông tin về thói quen, sở thích này có được từ đâu? Chính là từ lượng

dữ liệu khổng lồ mà các doanh nghiệp thu thập trong lúc khách hàng gh thăm và tương tác với trang web của mình Chỉ cần doanh nghiệp biết khai thác một cách có hiệu quả dữ liệu thì nó không chỉ giúp tăng lợi nhuận cho chính họ mà còn tăng trải nghiệm mua sắm của người dùng, chúng ta có thể tiết kiệm thời gian hơn nhờ những lời gợi ý so với việc phải tự mình tìm kiếm Tuy nhiên dữ liệu ngày một lớn thời gian khai thác ngày càng dài, tốc độ ngày càng chậm ảnh hưởng đến hiệu quả trong quá trình sử dụng

Khai thác dữ liệu được xem như là một công nghệ tri thức giúp khai thác những thông tin hữu ích từ những kho dữ liệu được tích trữ trong suốt quá trình hoạt động của một công ty, tổ chức nào đó

Trang 19

Khai thác dữ liệu được gọi là khám phá tri thức trong cơ sở dữ liệu Đây là tiến trình của khám phá những mẫu hay tri thức có ích từ nguồn dữ liệu, như là cơ sở dữ liệu, văn bản, ảnh, Web, v.v Các mẫu phải có giá trị, có khả năng hữu ích và dễ hiểu Khai thác dữ liệu là một lĩnh vực đa ngành liên quan đến máy học, thống kê, cơ sở dữ liệu, trí tuệ nhân tạo, thu thập thông tin, và mô phỏng trực quan

Đ nh n h 1 1: Khai thác dữ liệu là một tập hợp các k thuật được sử dụng để tự

động khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ liệu khổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập dữ liệu đó

3- Quy trình phát hiện t i thức v h i th c ữ iệu

Khai thác dữ liệu là một bước trong bảy bước của quá trình KDD (Knowleadge Discovery in Database) và KDD được xem như các quá trình khác nhau theo thứ tự sau:

Bắt đầu của quá trình là kho dữ liệu thô và kết thúc với tri thức được chiết xuất ra Về lý thuyết thì có vẽ rất đơn giản nhưng thực sự đây là một quá trình rất khó khăn gặp phải rất nhiều vướng mắc như: quản lý các tập dữ liệu, phải lặp đi lặp lại toàn bộ quá trình, v.v

Gôm ữ iệu (Gathering): tập hợp dữ liệu là bước đầu tiên trong quá trình

khai thác dữ liệu Đây là bước được khai thác trong một cơ sở dữ liệu, một kho dữ liệu và thậm chí các dữ liệu từ các nguồn ứng dụng Web

dữ liệu đã được chọn

các mẫu

các tri thức

dữ liệu đã được làm sạch

Hình 1.1: Quy trình phát triển tri thức và khai thác dữ liệu

Trang 20

T ch ọc ữ iệu (Selection): ở giai đoạn này, dữ liệu được lựa chọn hoặc

phân chia theo một số tiêu chuẩn nào đó, trích chọn dữ liệu từ những kho dữ liệu và sau đó chuyển đổi về dạng thích hợp cho quá trình khai thác tri thức Quá trình này bao gồm cả việc xử lý với dữ liệu nhiễu (noisy data), dữ liệu không đầy đủ

(incomplete data), v.v Ví dụ chọn ra những thông tin duyệt web của người dùng được lưu tại Web log mà những thông tin đó cho biết được người dùng đã xem một sản phẩm cụ thể nào chứ không phải là người dùng đã thao tác khác (xem hoặc lưu hình ảnh; truy cập trang không tồn tại; v.v )

ạch, tiền v chu n t ước ữ iệu (Cleaning, Pre-processing and Preparation): giai đoan thứ ba này là giai đoạn hay bị sao lãng, nhưng thực tế

nó là một bước rất quan trọng trong quá trình khai thác dữ liệu Một số lỗi thường mắc phải trong khi gom dữ liệu là tính không đủ chặt chẽ, logic Vì vậy, dữ liệu thường chứa các giá trị vô nghĩa và không có khả năng kết nối dữ liệu Ví dụ: trong Web log, cần loại bỏ các liên kết mà người dùng truy cập mà không tồn tại Giai đoạn này sẽ tiến hành xử lý những dạng dữ liệu không chặt chẽ nói trên Những dữ liệu dạng này được xem như thông tin dư thừa, không có giá trị Bởi vậy, đây là một quá trình rất quan trọng vì dữ liệu này nếu không được “làm sạch - tiền xử lý - chuẩn bị trước” thì sẽ gây nên những kết quả sai lệch nghiêm trọng

Chu ển đổi ữ iệu (Transformation): tiếp theo là giai đoạn chuyển đổi dữ

liệu, dữ liệu đưa ra có thể sử dụng và điều khiển được bởi việc tổ chức lại nó Dữ liệu đã được chuyển đổi phù hợp với mục đích khai thác

h i th c ữ iệu (Data mining): đây là công đoạn quan trọng và tốn nhiều

chi phí nhất của quá trình khai thác tri thức Xác định nhiệm vụ khai thác dữ liệu và lựa chọn k thuật khai thác để thực hiện khai thác, phát sinh tập mẫu Các mẫu này

là nguồn tri thức thô Trong công đoạn này, có thể cần sự tương tác của người dùng

để điều chỉnh và rút ra các thông tin cần thiết nhất Các tri thức nhận được có thể được lưu lại và sử dụng lại

Diễn iải v đ nh i t uả ẫu Int t ti n Ev u ti n Result): đây là giai đoạn cuối trong quá trình khai thác dữ liệu Ở giai đoạn này, các

Trang 21

mẫu dữ liệu được chiết xuất ra bởi phần mềm khai thác dữ liệu Không phải bất cứ mẫu dữ liệu nào cũng đều hữu ích, đôi khi nó còn bị sai lệch Vì vậy, cần phải ưu tiên những tiêu chuẩn đánh giá để chiết xuất ra các tri thức (Knowledge)

Quá trình khai thác tri thức không chỉ là một quá trình tuần tự từ bước đầu tiên đến bước cuối cùng mà là một quá trình lặp và quay lui lại các bước đã qua Trong khai thác tri thức thì có thể cần có sự tương tác của con người để điều chỉnh rút trích dữ liệu cần thiết

4- C c thuật h i th c ữ iệu

Khai thác dữ liệu được chia nhỏ thành một số hướng chính như sau:


M tả h i niệm (concept description): thiên về mô tả, tổng hợp và tóm tắt

khái niệm Ví dụ: tóm tắt văn bản

Luật t h ci ti n u là dạng luật biểu diễn tri thứ ở dạng khá

đơn giản Ví dụ: “60 nam giới vào siêu thị nếu mua bia thì có tới 80 trong số họ

sẽ mua thêm thịt bò khô” Luật kết hợp được ứng dụng nhiều trong lĩnh vực kính doanh, y học, tin-sinh, tài chính thị trường chứng khoán, v.v

Ph n ớ v ự đ n c i ic ti n icti n xếp một đối tượng vào

một trong những lớp đã biết trước Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết Hướng tiếp cận này thường sử dụng một số k thuật của machine learning như cây quyết định (decision tree), mạng nơron nhân tạo (neural network), v.v Người ta còn gọi phân lớp là học có giám sát (học có thầy)

Ph n cụ c u t in xếp các đối tượng theo từng cụm (số lượng cũng

như tên của cụm chưa được biết trước Người ta còn gọi phân cụm là học không giám sát (học không thầy)

: tương tự như khai thác luật kết hợp nhưng có thêm tính thứ

tự và tính thời gian Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cao

Trang 22

CHƯƠNG 2- CƠ SỞ LÝ THUYẾT I- KHAI THÁC DỮ LIỆU

1- Khai thác luật t h

Khai thác luật kết hợp trong CSDL là một trong các chức năng chính của khai thác

dữ liệu, là tìm ra các mối quan hệ giữa các đối tượng trong khối lượng dữ liệu lớn

Khai thác dữ liệu để tìm luật kết hợp gồm 2 giai đoạn:

- Khai thác tập phổ biến 


- Sinh luật kết hợp từ các tập phổ biến tìm được 


Khai thác tập phổ biến là bài toán rất quan trọng vì nó là giai đoạn đầu tiên trong khai thác luật kết hợp 


2- Khai thác tập phổ bi n

Bài toán khai thác tập phổ biến là tìm kiếm các hạng mục, phần tử (itemset) có độ

phổ biến (support) thỏa mãn ngưỡng phổ biến tối thiểu (minSupp) được cho trước tùy vào

yêu cầu của người sử dụng Nói đơn giản hơn là tìm các phần tử mục, có số lần xuất hiện

lớn hơn hoặc bằng một con số minSupp cho trước

Ví dụ 2.1: lọc ra các mặt hàng xuất hiện từ 40 trong các giao dịch bán trở lên trong cửa hàng Trong đó, độ phổ biến (support) của mỗi mặt hàng là số lần bán mặt hàng

đó và minSupp = 40%

Cho một cơ sở dữ liệu D là các giao dịch, mỗi giao dịch có mã ID duy nhất và liệt

kê các mục có trong giao dịch đó Tập hợp tất cả các mục kí hiệu là I = {i1, i2, , im} Gọi

X = {i1, i2, , ik} với X I là một tập k-mục nếu nó chứa k mục Các giao dịch và mục

ở đây có thể hiểu là giao dịch bán hàng và các mặt hàng bán trong mỗi giao dịch (xem bảng 2.1)

Trang 23

Trong đó I = {a, b, c, d, e, f, g, h} {a}, {b}, {c}, v.v là các mặt hàng (mục) {c}

là mục xuất hiện trong các giao dịch có mã ID là 1, 2, 3, 5 Tập 1- mục là { a, b, c, d, e, f, g, }; tập 2-mục gồm {ab, ac,, ae, af, ag, bc, bd, be, bf, bg, cd, ce, cf, cg, de, df, ef}; tập 3-mục gồm {abc, abe,,, ace, agc, bce, bcd, bcf, bde, bdf, bef, cde, cdf, cde, cdf, cef; tương tự ta có tập 4-mục, 5-mục, v.v

2.1- Các khái niệ c ản

 Item (phần tử, mục)


- Các phần tử, mục đang được quan tâm

- 
I={I1,I2, ,Im}:tập tất cả m mục có thể có trong tập dữ liệu

Trang 24

Ví dụ 2.2: Cho minSupp = 40% (40*5/100 = 2) Tập phổ biến 1-mục của giao dịch

D trong bảng 2.1 là {a, b, c, e, f} vì có độ phổ biến ≥ minSupp Tương tự, tập phổ biến

2-mục là {ac, bc, be, bf, ce}, tập phổ biến 3- mục là {bce}

II- CÁC THUẬT TOÁN KHAI THÁC TẬP PHỔ BIẾN

1- Khai thác tập phổ bi n s dụng thuật toán Apriori

Thuật toán Apriori được đề xuất bởi Agrawal năm 1994 3 Mục đích là để tìm mối liên hệ giữa các mặt hàng (danh mục) được bán trong siêu thị Thuật toán dựa trên tính chất:

- “Mọi tập con của tập phổ biến đều phổ biến, nghĩa là ∀X Y, nếu (Y) ≥

minSupp thì (X) ≥ minSupp”

- “Mọi tập cha của tập không phổ biến đều không phổ biến, nghĩa là ∀Y ⊇ X

nếu (X) < minSupp thì (Y) < minSupp”

Trang 25

Thuật t n 2 1: Thuật toán Aprori

Đầu v :CSDL giao dịch D và ngƣỡng phổ biến minSupp

Đầu : FIs chứa tất cả các tập phổ biến của D

Trang 28

Nhận xét:

Thuật toán Apriori đơn giản, dễ hiểu Tuy nhiên, mặt hạn chế của thuật toán là phải

qu t CSDL nhiều lần Nếu CSDL có tập k-mục phổ biến thì phải qu t ít nhất k lần Điều này làm Apriori tốn rất nhiều thời gian nếu CSDL lớn

2- Khai thác tập phổ bi n s dụng thuật toán FP-growth

Thuật toán FP-Growth là một phương pháp khác cho việc xác định các tập mục phổ biến Tương phản với những thuật toán Apriori, sử dụng cơ chế sinh-kiểm tra (sinh ra các tập mục cần x t, và kiểm tra xem mỗi tập mục có phải là phổ biến) phương pháp tăng trưởng mẫu (pattern-growth) nhận được itemsets phổ biến trực tiếp từ CSDL mà không mất chi phí cho việc sinh và kiểm tra độ lớn của các ứng viên

Đ nh n h 2 1(FP-tree): Cấu trúc FP-tree được định nghĩa như sau

- FP-tree bao gồm một nhãn root là “null”, tập các cây tiền tố là con của root,

và một bảng tập phổ biến

- Mỗi nút của cây tiền tố gồm ba trường dữ liệu: item-name, count và link, ở đây item-name được khai báo là mục đại diện cho nút, count là số lượng giao dịch đại diện cho đường dẫn điến nút này, và node-link là nút kế tiếp trong FP-tree

node-có cùng item-name, hay null nếu không node-có.

- Mỗi mục trong bảng frequent-header gồm hai trường dữ liệu, (1) name và node-link đứng đầu (một con trỏ chỉ đến nút đầu tiên mang theo item-name

item-trong FP-tree)

Trang 29

Thuật t n 2.2: FP-tree

Đầu v Cơ sơ dữ liệu giao dịch DB, ngƣỡng minSupp

Đầu Cây FP-Tree

Duyệt D lần đầu để thu đƣợc tập F gồm các frequent item và support count của chúng Sắp xếp các item trong F theo trật tự giảm dần của support count ta đƣợc danh sách L

Tạo nút gốc R và gán nhãn “null”

Tạo bảng Header có |F| dòng và đặt tất cả các node –link chỉ đến null

For each giao tác T  D { Duyệt D lần 2

- Chọn các item phổ biến của T đƣa vào P;

- Sắp các item trong P theo trật tự L;

- Call Insert_Tree(P, R); }

Hàm Insert_Tree(string[p|P],Tree T){

Trong đó p là mục đầu tiên của dãy và P là phần còn lại của dãy

If cây T có nút con N mà N.Item name = p

Trang 30

If Tree chỉ chứa một đường dẫn đơn P then {

For mỗi tổ hợp của các nút trong đường dẫn P Do {

Sinh mẫu p= ∪ v i support_count( p) = mức hỗ trợ nhỏ nhất của

các nút trong

F=F∪ p }else{

for mỗi ai trong header của tree do

Sinh mẫu = ai ∪ support_count( ) = ai support_count

F= F∪

Xây dựng cơ sơ mẫu có điều kiện của Xây dựng FP tree có điều kiện của

if ∅ then Call FP_ Growth ( , ) }

}

Trang 31

Ví dụ 2.4: X t cơ sở dữ liệu mẫu nhƣ trên bảng 2.1 Với minSupp= 40% (40*5/100

e:3 c:3

{}

f:1

f:2 a:1

a:1

Trang 32

Chiếu trên f sinh ra các tập phổ biến là: {f:3, ef:2, cf: 2, bf:3, bcef: 2 }

Chiếu trên e sinh ra các tập phổ biến là: {e:3, be:3, ce:3, bce:3}

Chiếu trên c sinh ra các tập phổ biến là: {c:3, cb:3}

Chiếu trên b ta được {∅} ⇒ tập phổ biến: {b:4}

- Ưu điểm của FP-Growth

Trong thực tế thuật toán FP-Growth chỉ cần đọc file hai lần, trái ngược với Apriori đọc file cho mỗi lần lặp

Một lợi ích khác FP-Growth loại bỏ việc tính toán cho các cặp đã được đếm, điều làm cho tiến trình xử lý rất nặng, bởi vì FP-Growth sử dụng cấu trúc FP-Tree

Thuật toán FP-Growth được lưu trữ nhỏ gọn trong bộ nhớ của dữ liệu

- Tắt nghẽn trong FP-Growth

Vấn đề lớn nhất là sự phụ thuộc lẫn nhau của các cơ sở dữ liệu Vấn đề phụ thuộc lẫn nhau là các thuật toán song song vẫn cần được chia sẽ, tạo nên tắc nghẽn trong quá trình chia sẽ bộ nhớ

3- Khai thác tập phổ bi n s dụng thuật toán PPV

Đ nh n h 2.2: PPC-Tree là một cấu trúc cây

- Nó bao gồm một nhãn root là “null”, một tập hợp mục của các nhánh tiếp theo là con của root

- Mỗi nút có 5 trường thông tin: item-name, count, childreNodet-list, order, and post-order item-name là tập phổ biến đại diện cho nút count là số lượng giao dịch được thực hiện bằng cách đi qua các nút này childreNode-list là tất cả các con của nút pre-order là thứ tự hàng trước của nút post-order là thứ tự kế tiếp của

pre-nút

Đ nh n h 2.3: PP-code

Đối với mỗi nút N trong PPC-tree, chúng ta gọi < (N.pre-order, N.post-order): N.count > là PP-code của N

Đ nh n h 2.4: Mối quan hệ cha-con của PP-codes

Cho 2 PP-codes X1 and X2, X1 là cha của X2 if khi và chỉ khi nút được đại diện bởi X1 cha của nút đại diện bởi X2

Trang 33

Đ nh n h 2.5: Node-list của tập phổ biến

Đối với PPC-tree, Node-list của tập phổ biến là một dãy tất cả các PP-code của nút được khai báo theo mục trong PPC-tree PP-codes được sắp xếp trong suốt quá trình truy cập

Thuật t n 2.4: PPC-tree

Đầu v Một cơ sở dữ liệu giao dịch và ngưỡng hỗ trợ tối thiểu minSupp 


Đầu PPC-tree, F1 (tập phổ biến 1-patterns)

Hàm: Construct-PPC-tree(DB, minSupp) {

Bước 1: Duyệt dữ liệu lần đầu tìm ra tập phổ biến 1-patterns (danh mục tập

phổ biến) F1 and mức hỗ trợ của chúng Sắp xếp F1 theo mức hỗ trợ giảm dần là I f,

là danh sách tập phổ biến đã được sắp xếp

Bước 2: Tạo root của PPC-tree, PPT, và có nhãn là “null” Duyệt DB lần nữa Mỗi lần lặp giao dịch T trong DB, sắp xếp lại tập phổ biến trong danh sách của I f

và sau đó thêm nó vào PPC-tree

Bước 3: Duyệt PPC-tree phát sinh pre-order Duyệt PPC-tree lần nữa phát sinh post-order.}

Ví dụ 2.5: X t cơ sở dữ liệu như trong bảng 2.1 Với minSupp= 40% (40*5/100 =

2) Ta thực hiện các bước sau

b:4 c:1

a:1

e:3 c:3 Root

Trang 34

Hình 2.9: Node-list c a t p ph bi n

Đ nh n h 2.6: Node-list được định nghĩa như sau

Cho hai tập phổ biến khác nhau i1 and i2, Node-list tương ứng của chúng là {<(x11,

y11): z11>, <(x12, y12): z12>, , <(x 1m , y 1m ): z 1m >} and {<(x21, y21): z21>, <(x22, y22): z22>, ,

<(x 2n , y 2n ): z 2n >} Node-list của 2-pattern i1i2 là một dãy PP-codes được sắp xếp tăng dần

theo pre-order và được phát sinh bởi điểm giao nhau Node-list của i1 và i2, theo quy định sau:

Đối với bất kỳ <(x 1p , y 1p ): z 1p> ∈ Node-list của i1 (1≤p≤m) và <(x 2q , y 2q ): z 2q> ∈

Node-list của i2 (1≤q≤n), if <(x 1p , y 1p ): z 1p > là cha của <(x 2q , y 2q ): z 2q >, thì <(x 2q , y 2q ): z 2q> ∈

Node-list của i1i2

Cho ví dụ, trong hình 2.8, Node-list của b is {<(3,7): 4>} và Node-list của c là

{<(1,1): 1>, <(4,5): 3>} Qua định nghĩa 3.5, chỉ có PP-code <(4,5): 3> là đáp ứng các

quy tắc kết hợp Vì vậy Node-list của bc là {<(4,5): 3>} như trong hình 2.9

Trang 35

Hình 2.10: Node-list c a bc

Đ nh n h 2.7: Node-list được định nghĩa như sau

Cho P = i1 i2 i (k-2) i x i y là một mẫu (k ≥ 3), và Node-list của P1 = i1 i2 i (k-2) i x là {<(x P11,

y P11 ): z P11 >, <(x P12 , y P12 ): z P12>, , <(x P1m , y P1m ): z P1m >}, Node-list của P2 = i1 i2 i (k-2) i y is

{<(x P21 , y P21 ): z P21 >, <(x P22 , y P22 ): z P22 >, , <(x P2n , y P2n ): z P2n >} Node-list của P là một dãt của PP-codes được sắp xếp tăng dần theo pre-order và được phát sinh bởi điểm giao nhau giữa Node-list của P1 và P2, theo quy định sau:

Đối vơi bất kì <(x P1r , y P1r ): z P1r> ∈ Node-list của P1 (1≤r≤m) và <(x P2s , y P2s ): z P2s> ∈

Node-list của P2 (1≤s≤n), nếu <(x P1r , y P1r ): z P1r > là cha của <(x P2s , y P2s ): z P2s >, thì <(x P2s , y P2s):

z P2s> ∈ Node-list của P

Cho ví dụ, Node-list của bc là {<(4,5): 3>} được chỉ ra trong hình 2.9, vì vậy chỉ có một nút trong hình 2.9, item-name của nút là c và một trong số các cha của nút c có item- name là b Vì vậy mức hỗ trợ của bc là 3

Hình 2.10 chỉ ra phương thức phát sinh Node-list của bce bởi điểm giao nhau giữa Node-list của bc và Node-list của be

< (1,1):1 >

< (3,7):4 >

{b}

< (4,5): 3> {c}

Trang 37

Thuật t n 2.5(code-intersection)

Đầu vào: NL1 and NL2, là Node-list của hai k- patterns.
 Đầu The Node-list của (k+1)-pattern.


Hàm: code-intersection(NL1, NL2)

int i = 0; điểm bắt đầu của NL1.


int j = 0; điểm bắt đầu của NL2

while (i < NL1.size() && j < NL2.size()) {

Trang 38

Thuật t n 2.6: PPV

Đầu v ngưỡng minSupp, tập phổ biến 1-patterns của chúng Node-list


Đầu ra: Tập hợp các mẫu phổ biến

l = p.i1, p.i2, ,p.i k-1 ,q.i k-1 ; ứng cử viên k-pattern

If all k-1 subsets l of are in L k-1 {

l.Node-list= code-intersection(p.Node-list, q.Node-list);

- Ưu điểm của thuật toán PPV sử dụng Node-list

Cấu trúc Node-list nhỏ gọn hơn Tidset hay Diffset Khi các giao dịch các nút có chung tiền tố của PPC-Tree

Mối quan hệ cha – con là bước giao nhau cơ bản được thêm vào Node-list, điều

nay rất hiệu quả khi xác nhận mã pre-post của nút

Trang 39

4- Khai thác tập phổ bi n s dụng thuật toán PrePost

Đ nh n h 2.8: Tập phổ biến N-list

Cho PPC-tree, tập phổ biến của N-list là một dãy các tập đƣợc khai báo PP-code theo nút trong PPC-tree PP-codes đƣợc sắp xếp tăng dần theo giá trị pre-order của chúng

Mỗi PP-code trong N-list đƣợc khai báo ⟨(x, y) : z⟩, ở đây x là pre-order, y là

post-order and z là count N-list của tập phổ biến đƣợc khai báo là <( ): >,

<( ): >, …<( ): > Hình 2.11 chỉ ra tập phổ biến của N-list

Ví dụ 2.6: X t cơ sở dữ liệu mẫu nhƣ trên bảng 2.1 Với minSupp= 40% (40*5/100

= 2) ta có:

Hình 2.12: Minh hoạ khởi dựng PPC-tree

b:4 c:1

a:1

e:3 c:3 Root

Ngày đăng: 31/12/2018, 16:55

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