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

khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng

89 807 2

Đ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 89
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

Một trong những nội dung cơ bản nhất trong khai phá dữ liệu và rất thường xuyên là phát hiện các luật kết hợp trong kho cơ sở dữ liệu khổng lồ, nhằm tìm ra các tập mục thường xuyên thườn

Trang 1

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN VĂN TƯ

KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

Thái nguyên, năm 2011

Trang 2

ĐẠI HỌC THÁI NGUYÊN TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

NGUYỄN VĂN TƯ

KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG

CHUYÊN NGÀNH: KHOA HỌC MÁY TÍNH

Trang 3

LỜI CAM ĐOAN

Tôi xin cam đoan toàn bộ nội dung trong Luận văn là được thực hiện

theo đúng đề cương đã được hội đồng khoa học trường Đại học Thái nguyên-

khoa Công nghệ thông tin phê duyệt, nội dung thực hiện trong đề cương đã

được cán bộ hướng dẫn giao cho và kiểm soát Nội dung luận văn, các phần

trích lục các tài liệu hoàn toàn chính xác Nếu có sai sót tôi hoàn toàn chịu

trách nhiệm

Tác giả luận văn

Nguyễn Văn Tư

Trang 4

LỜI CẢM ƠN

Tôi xin chân thành cảm ơn các thầy cô Trường Đại học Công nghệ Thông tin và Truyền thông – Đại học Thái Nguyên, các Thầy cô Viện công nghệ thông tin – Viện Khoa học và Công nghệ Việt Nam, các anh chị lớp Cao học K8 - khóa 2009-2011 đã giúp đỡ tôi trong quá trình nghiên cứu và thực hiện luận văn

Tôi xin trân trọng cảm ơn TS Nguyễn Huy Đức – Khoa Thông tin - Máy tính, Trường Cao đẳng Sư phạm Trung ương, người thầy trực tiếp hướng dẫn, đưa ra ý tưởng, định hướng, đóng góp các ý kiến chuyên môn và tận tình giúp đỡ tôi trong suốt quá trình nghiên cứu và thực hiện luận văn thạc sĩ ngành khoa học máy tính

Tôi xin cảm ơn các bạn bè đồng nghiệp và gia đình đã giúp đỡ, đóng góp ý kiến và động viên tôi trong suốt qua trình học, quá trình nghiên cứu và hoàn thành luận văn

Tác giả

Trang 5

MỤC LỤC

Trang

Lời cam đoan……….…….………i

Lời cảm ơn… ……….……….……….ii

Mục lục……… ……….….……… ……iii

DANH MỤC CÁC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT v

DANH MỤC CÁC BẢNG BIỂU vi

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ vii

MỞ ĐẦU 1

Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU 3

1.1 Quá trình phát hiện tri thức từ cơ sở dữ liệu 3

1.2 Kiến trúc của hệ thống khai phá dữ liệu 6

1.3 Quá trình khai phá dữ liệu 8

1.4 Nhiệm vụ của khai phá dữ liệu 10

1.5 Các phương pháp chính trong khai phá dữ liệu 11

1.5.1 Phương pháp luật kết hợp 12

1.5.2 Phương pháp cây quyết định 12

1.5.4 Các phương pháp dựa trên mẫu 14

1.6 Các ứng dụng của khai phá dữ liệu 15

Kết luận chương 1: 16

Chương 2: KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ DỮ LIỆU 17

2.1 Bài toán mở đầu 17

2.2 Các khái niệm cơ sở 18

2.2.1.Cơ sở dữ liệu giao tác 19

2.2.2 Biểu diễn cơ sở dữ liệu giao tác 19

2.2.3 Tập mục thường xuyên 21

2.2.4 Luật kết hợp 22

2.2.5 Độ hỗ trợ và độ tin cậy của luật kết hợp 22

2.3 Khai phá luật kết hợp 24

2.4 Các cách tiếp cận khai phá tập mục thường xuyên 26

2.5 Các thuật toán điển hình khai phá tập mục thường xuyên 27

2.5.1 Thuật toán Apriori 28

2.5.2.Thuật toán FP_growth 33

2.6 Thuật toán sinh luật kết hợp: 41

2.7 Một số mở rộng khai phá luật kết hợp trong cơ sở dữ liệu 44

Kết luận chương 2: 46

Chương 3: KHAI PHÁ LUẬT KẾT HỢP CÓ TRỌNG SỐ 47

3.1 Một số khái niệm về luật kết hợp có trọng số 47

3.2 Khai phá luật kết hợp trọng số không chuẩn hóa 49

3.3 Khai phá luật kết hợp trọng số chuẩn hóa 52

Trang 6

3.3.1 Một số khái niệm về trọng số chuẩn hóa 52

3.3.2 Thuật toán khai phá luật kết hợp trọng số chuẩn hóa (MINVAL(W)) 54

Kết luận chương 3: 56

Chương 4: THỰC NGHIỆM KHAI PHÁ LUẬT KẾT HỢP 57

4.1 Giới thiệu bài toán 57

4.2 Dữ liệu thực nghiệm 58

4.3 Xây dựng chương trình 60

4.4 Thực nghiệm khai phá 61

4.5 Kết quả thực nghiệm 63

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

1 Những kết quả đã đạt được 63

2 Hướng phát triển của đề tài là: 64

TÀI LIỆU THAM KHẢO 65

PHỤ LỤC 67

Trang 7

DANH MỤC CÁC KÝ HIỆU VÀ CÁC CHỮ VIẾT TẮT

KPDL Khai phá dữ liệu

CSDL Cơ sở dữ liệu

DB Cơ sở dữ liệu giao tác

TID Định danh của giao tác

BFS Breadth First Search

DFS Depth First Search

FP-growth Frequent-Pattern Growth

FP-tree Frequent pattern tree

Trang 8

DANH MỤC CÁC BẢNG BIỂU

Bảng 2.1: Danh mục các tập mục trong CSDL 19

Bảng 2.2: Biểu diễn ngang của CSDL giao tác 20

Bảng 2.3: Biểu diễn dọc của CSDL giao tác 20

Bảng 2.4: Ma trận giao tác của CSDL bảng 2.2 21

Bảng 2.5: Cơ sở dữ liệu DB 24

Bảng 2.6: Độ hỗ trợ của các mục 25

Bảng 2.7: Độ hỗ trợ của các tập mục 25

Bảng 2.8: Độ tin cậy của các luật 26

Bảng 2.9: CSDL giao tác minh hoạ cho thuật toán Apriori 31

Bảng 2.10: CSDL giao tác minh hoạ cho thuật toán FP- growth 34

Bảng 3.1.a Tập giao tác DB 48

Bảng 3.1.b Thông tin của cửa hàng 48

Bảng 4.1: Dữ liệu đã trích chọn để khai phá 58

Bảng 4.2: Mã hóa các mặt hàng 59

Trang 9

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 1.1 Quá trình khám phá tri thức 5

Hình 1.2 Kiến trúc của hệ thống khai phá dữ liệu 7

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

Hình 1.4: Mẫu kết quả với phương pháp cây quyết định 12

Hình 1.5: Phân cụm các đối tượng k-Mean ( + là tâm của cụm) 13

Hình 2.1: Phân loại các thuật toán khai phá tập mục thường xuyên 27

Hình 2.2: Cây FP-tree được xây dựng dần khi thêm các giao tác t1, t2, t3 35

Hình 2.3: Cây FP-tree của CSDL DB trong bảng 2.10 36

Hình 2.4: FP-tree phụ thuộc của m 39

Hình 2.5 : Các FP-tree phụ thuộc của am, cm và cam 39

Hình 4.1: Dữ liệu đã mã hóa chuẩn bị cho khai phá 60

Hình 4.2: Giao diện chương trình 61

Hình 4.3: Giao diện kết quả khai phá tập mục thường xuyên 62

Hình 4.4: Giao diện kết quả khai phá luật kết hợp 62

Trang 10

MỞ ĐẦU

Trong những năm qua, việc nắm bắt, xử lý được thông tin được coi là

cơ sở của mọi hoạt động của đời sống xã hội, đặc biệt là trong sản xuất, kinh doanh Những thông tin tiềm ẩn mang tính dự đoán trong các khối dữ liệu là rất lớn Mỗi cá nhân hoặc tổ chức nào thu thập và hiểu được thông tin, hành động dựa trên các thông tin được kết xuất từ các thông tin đã có sẽ đạt được thành công trong mọi hoạt động Chính vì lý do đó, việc tạo ra thông tin, tổ chức lưu trữ và khai phá ngày càng trở nên quan trọng và gia tăng không ngừng

Sự tăng trưởng vượt bậc của các cơ sở dữ liệu (CSDL) trong cuộc sống như: thương mại, quản lý và khoa học …đã làm nảy sinh và thúc đẩy sự phát triển của kỹ thuật thu thập, lưu trữ, phân tích và khai phá dữ liệu không chỉ bằng các phép toán đơn giản thông thường như: phép đếm, thống kê mà đòi hỏi cách xử lý thông minh hơn, hiệu quả hơn Từ đó các nhà quản lý có được thông tin có ích để tác động lại quá trình sản xuất, kinh doanh của mình đó là tri thức Các kỹ thuật cho phép ta khai phá được tri thức hữu dụng từ CSDL (lớn) được gọi là các kỹ thuật khai phá dữ liệu (DM – Data Mining) Khai phá luật kết hợp là một nội dung quan trọng trong khai phá dữ liệu

Một trong những nội dung cơ bản nhất trong khai phá dữ liệu và rất thường xuyên là phát hiện các luật kết hợp trong kho cơ sở dữ liệu khổng lồ, nhằm tìm ra các tập mục thường xuyên thường xuất hiện đồng thời trong cơ

sở dữ liệu và rút ra các luật về ảnh hưởng của tập mục thường xuyên dẫn đến

sự xuất hiện của một (hay một tập) mục thường xuyên khác như thế nào, do vậy khai phá luật kết hợp trong kho cơ sở dữ liệu có ý nghĩa rất quan trọng, có lợi ích to lớn trong việc tổng hợp và cung cấp những thông tin cần thiết trong nguồn cơ sở dữ liệu lớn

Trang 11

Xuất phát từ thực tế nói trên và với mục đích tìm hiểu về bài toán tìm luật kết hợp trong cơ sở dữ liệu, em đã quyết định lựa chọn đề tài:

“Khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng”

Ứng dụng khai phá luật kết hợp trong cơ sở dữ liệu đã mang lại những lợi ích to lớn trong việc tổng hợp và cung cấp những thông tin trong các nguồn cơ sở dữ liệu lớn Đây là một đề tài không chỉ có ý nghĩa khoa học mà còn mang đậm tính thực tiễn Phương pháp nghiên cứu của luận văn là tổng hợp các kết quả nghiên cứu về khai phá tập mục thường xuyên, khai phá luật kết hợp đã công bố trên các bài báo khoa học, hội thảo chuyên ngành trong và ngoài nước, từ đó, trình bày làm rõ vấn đề khai phá luật kết hợp và xây dựng chương trình thực nghiệm đánh giá một số thuật toán

Luận văn gồm 4 chương và phần kết luận

Chương 1: Tổng quan về cơ sở dữ liệu và khai phá dữ liệu

Chương 2: Khai phá luật kết hợp trong cơ sở dữ liệu

Chương 3: Khai phá luật kết hợp có trọng số

Chương 4: Thực nghiệm khai phá luật kết hợp

Trong suốt quá trình tìm hiểu, nghiên cứu và hoàn thành luận văn, được

sự hướng dẫn tận tình của Thầy hướng dẫn TS Nguyễn Huy Đức - Khoa Thông tin - Máy tính, Trường Cao đẳng Sư phạm Trung ương; mặc dù em đã

cố gắng, nỗ lực hết sức nhưng không thể tránh khỏi thiếu sót, em tha thiết kính mong tiếp tục nhận được sự giúp đỡ, chỉ bảo của các thầy cô để đề tài được hoàn thiện hơn

Em xin chân thành cảm ơn !

Thái Nguyên, ngày 30 tháng 10 năm 2011

Học viên: Nguyễn Văn Tư

Trang 12

Chương 1: TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU VÀ KHAI PHÁ DỮ LIỆU 1.1 Quá trình phát hiện tri thức từ cơ sở dữ liệu

Trong thời đại ngày nay, với sự phát triển vượt bậc của công nghệ thông tin, các hệ thống thông tin có thể lưu trữ một khối lượng lớn dữ liệu về hoạt động hàng ngày của chúng Lượng dữ liệu được lưu trữ dẫn đến một đòi hỏi cấp bách phải có những kỹ thuật mới, những công cụ tự động mới trợ giúp con người một cách thông minh trong việc chuyển đổi một lượng lớn dữ liệu thành thông tin hữu ích

Một số nhà khoa học xem khai phá dữ liệu như là một cách gọi khác của một thuật ngữ cũng rất thông dụng là khám phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases – KDD), vì cho rằng mục đích của quá trình khám phá tri thức là thông tin và tri thức có ích, nhưng đối tượng mà chúng ta phải xử lý rất nhiều trong suốt quá trình khám phá tri thức lại chính

là dữ liệu Một số nhà khoa học khác thì xem khai phá dữ liệu như là một bước chính trong quá trình khám phá tri thức

Hiểu quá trình khám phá, phát hiện tri thức ở đây là gì? Thông thường chúng ta coi dữ liệu như là một dãy các bit, các số và các ký hiệu, hoặc các

“đối tượng” được gửi cho một chương trình dưới một định dạng nhất định nào

đó Chúng ta sử dụng các bit để đo lường thông tin, khi sử dụng xem nó như

là dữ liệu đã được lọc bỏ dư thừa, được rút gọn tới mức tối thiểu Bít được dùng làm đơn vị đặc trưng cho dữ liệu Chúng ta có thể xem tri thức như là các thông tin tích hợp, bao gồm các sự kiện và các mối quan hệ giữa chúng Các mối quan hệ này có thể được học, được hiểu, được phát hiện ra Nói cách khác, tri thức có thể coi là dữ liệu có độ trừu tượng và tổ chức cao

Trang 13

Phát hiện tri thức là quá trình nhận biết cái logic, cái mới lạ, những tri thức tiềm tàng hữu ích từ cơ sở dữ liệu, cuối cùng là việc hiểu được các mẫu các mô hình trong cơ sở dữ liệu Vì vậy mà kỹ thuật phát hiện tri thức đã ra đời và ngày càng phát triển để đáp ứng nhu cầu của con người trong việc xử

lý các thông tin trong kho cơ sở dữ liệu khổng lồ

Thuật ngữ KPDL (Khai phá dữ liệu) ra đời vào những năm cuối của thập kỷ 1980 Khai phá dữ liệu bao gồm nhiều hướng tiếp cận, là sự kết hợp của nhiều ngành như: Cơ sở dữ liệu; Hiển thị dữ liệu; Học máy; Trí tuệ nhân tạo; Lý thuyết thông tin; Xác suất thống kê; Tính toán hiệu năng cao, và các phương pháp tính toán mềm v v… Có rất nhiều định nghĩa khác nhau về

"KPDL" đã được đưa ra, ta có thể hiểu khai phá dữ liệu được định nghĩa là quá trình tìm kiếm những thông tin (tri thức) có ích, tiềm ẩn và mang tính dự đoán trong các khối cơ sở dữ liệu lớn

KPDL là cốt lõi của quá trình khám phá tri thức Nó gồm có các giải thuật KPDL chuyên dùng, dưới một số quy định về hiệu quả tính toán chấp nhận được KPDL là nhằm tìm ra những mẫu mới, mẫu có tính chất không tầm thường, những thông tin tiềm ẩn mang tính dự đoán chưa được biết đến

và có khả năng mang lại lợi ích cho người sử dụng

Nói tóm lại, mục đích chung của việc phát hiện tri thức từ dữ liệu và KPDL là tìm ra các mẫu được quan tâm nhất tồn tại trong cơ sở dữ liệu, nhưng chúng lại bị che dấu bởi một số lượng lớn dữ liệu

Trang 14

Quá trình khám phá tri thức được tiến hành qua các bước sau:

Hình 1.1 Quá trình khám phá tri thức

Bước 1: Trích chọn dữ liệu (data selection): là bước trích chọn những

tập dữ liệu cần được khai phá từ các tập dữ liệu lớn (databases, data warehouses)

Bước 2: Tiền xử lý dữ liệu (data preprocessing): là bước làm sạch dữ

liệu (xử lý dữ liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán, v v), rút gọn dữ liệu (sử dụng các phương pháp thu gọn dữ liệu, histograms, lấy mẫu, v .v ), rời rạc hoá dữ liệu (dựa vào histograms, entropy, phân khoảng,

v v ) Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn và được rời rạc hoá

Trang 15

Bước 3: Biến đổi dữ liệu (data transformation): là bước chuẩn hoá và

làm mịn dữ liệu để đưa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các

kỹ thuật khai phá ở bước sau

Bước 4: Khai phá dữ liệu (data mining): đây là bước quan trọng và tốn

nhiều thời gian nhất của quá trình khám phá tri thức, áp dụng các kỹ thuật khai phá(phần lớn là các kỹ thuật của machine learning) để khai phá, trích chọn được các mẫu (pattern) thông tin, các mối liên hệ đặc biệt trong dữ liệu

Bước 5: Đánh giá và biểu diễn tri thức (knowledge representation &

evaluation ): Dùng các kỹ thuật hiển thị dữ liệu để trình bày các mẫu thông

tin (tri thức) và mối liên hệ đặc biệt trong dữ liệu đã được khai phá ở bước trên biểu diễn theo dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu, luật, v v Đồng thời bước này cũng đánh giá những tri thức khai phá được theo những tiêu chí nhất định

Trong giai đoạn khai phá dữ liệu, 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 tri thức cần thiết nhất Các tri thức nhận được cũng có thể được lưu và sử dụng lại

1.2 Kiến trúc của hệ thống khai phá dữ liệu

Khai phá dữ liệu là quá trình rút trích thông tin bổ ích từ những kho dữ liệu Khai phá dữ liệu là quá trình chính trong khai phá tri thức từ cơ sở dữ liệu

Kiến trúc của một hệ thống khai phá dữ liệu có các thành [3,8] phần như sau:

* CSDL, kho dữ liệu hoặc lưu trữ thông tin khác: Đây là một hay các

tập CSDL, các trang tính hay các dạng khác của thông tin được lưu trữ Các

kỹ thuật làm sạch dữ liệu và tích hợp dữ liệu có thể được thực hiện

Trang 16

Hình 1.2 Kiến trúc của hệ thống khai phá dữ liệu

* Máy chủ CSDL (Database or Warehouse Server): Máy chủ có trách

nhiệm lấy những dữ liệu thích hợp dựa trên những yêu cầu khai phá của người dùng

* Cơ sở tri thức (Knowledge-base): Đây là miền tri thức dùng để tìm

kiếm hay đánh giá độ quan trọng của các mẫu kết quả thu được Tri thức này

có thể bao gồm một sự phân cấp khái niệm dùng để tổ chức các tập mục dữ liệu ở các mức trừu tượng khác nhau

* Máy khai phá dữ liệu (Data mining engine): là một hệ thống khai phá

dữ liệu cần phải có một tập các Modul chức năng để thực hiện công việc, chẳng hạn như kết hợp, phân lớp, phân cụm

(Data mining engine)

Kho dữ liệu Các lưu trữ

Trang 17

* Modul đánh giá mẫu ( Pattern evaluation): Bộ phận tương tác với

các Modul khai phá dữ liệu để tập trung vào việc duyệt tìm các mẫu đáng được quan tâm Nó có thể dùng các ngưỡng về độ quan tâm để lọc mẫu đã khai phá được Cũng có thể Modul đánh giá mẫu được tích hợp vào Modul khai phá dữ liệu, tùy theo cách cài đặt của phương pháp khai phá dữ liệu được dùng

* Giao diện đồ họa cho người dùng ( Graphical user interface): Bộ

phận này cho phép người dùng giao tiếp với hệ thống khai phá dữ liệu Thông qua giao diện này người dùng tương tác với hệ thống bằng cách đặc tả một yêu cầu khai phá hay một nhiệm vụ, cung cấp thông tin trợ giúp cho việc tìm kiếm và thực hiện khai phá thăm dò trên các kết quả khai phá trung gian Ngoài ra bộ phận này còn cho phép người dùng xem các lược đồ CSDL, lược

đồ kho dữ liệu, các đánh giá mẫu và hiển thị các mẫu trong các khuôn dạng khác nhau

1.3 Quá trình khai phá dữ liệu

Quá trình khai phá dữ liệu là một bước trong quá trình khai phá tri thức, được thực hiện bằng việc xác định những vấn đề cần giải quyết, từ đó sẽ xác định dữ liệu liên quan dùng để xây dựng giải pháp và những việc cần thực hiện, xử lý chúng thành một dạng sao cho thuật toán khai phá dữ liệu có thể hiểu được

Với những dữ liệu đã thu thập, ta tiến hành tích hợp và chỉnh sửa dữ liệu, lọc dữ liệu, đây là quá trình tiền xử lý Dữ liệu được thu thập từ nhiều nguồn khác nhau, qua những dữ liệu trực tiếp ta thống kê tóm tắt, trong khi đó

có thể có những sự sai sót, dư thừa và trùng lặp Lọc dữ liệu là cắt bỏ những

dư thừa để dữ liệu được định dạng thống nhất

Có thể dễ hiểu hơn qua thực tế ví dụ sau: Người kinh doanh bán hàng nhiều mặt hàng, muốn tăng doanh thu thì phải giải được bài toán tìm quy luật

Trang 18

mua hàng của khách hàng, ta tìm xem khách hàng thường cùng mua những mặt hàng nào để sắp xếp những món hàng đó gần nhau Từ dữ liệu có nhiều mục không cần thiết cho khai phá dữ liệu như: Mã khách hàng, nhà cung cấp, đơn giá hàng, người bán hàng… Các dữ liệu này cần cho quản lý bán hàng nhưng không cần cho khai phá dữ liệu, ta loại bỏ các mục dữ liệu này khỏi dữ liệu trước khi khai phá dữ liệu

Dữ liệu sau khi lọc và chỉnh sửa sẽ nhỏ hơn, xử lý nhanh chóng hơn Quá trình khai phá dữ liệu được thể hiện bởi hình 1.3 sau:

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

Công việc tiếp theo sử dụng các thuật toán khác nhau để khai phá các kiến thức tiềm ẩn trong kho dữ liệu sau khi đã xử lý và được thống kê tóm tắt cùng các dữ liệu trực tiếp Kết quả của quá trình khai phá dữ liệu là đạt được nhiệm vụ đặt ra Nhiều kỹ thuật khai phá dữ liệu được ứng dụng cho một nguồn dữ liệu, các kỹ thuật cho các kết quả có thể khác nhau Các kết quả được ước lượng bởi những quy tắc nào đó, nếu cuối cùng kết quả không thỏa mãn yêu cầu, chúng ta phải làm lại với kỹ thuật khác cho đến khi có kết quả mong muốn

Giải thuật khai phá DL

Xác định

nhiệm vụ

Xác định dữ liệu liên quan

Thu thập và tiền xử lý DL

Thống kê tóm tắt

Dữ liệu trực tiếp

Mẫu

Trang 19

1.4 Nhiệm vụ của khai phá dữ liệu

Mục đích của khai phá dữ liệu là đưa ra kết quả chiết xuất tri thức từ dữ liệu Khi cơ sở dữ liệu đã trở nên khổng lồ thì những khâu như: thu thập dữ liệu, tiền xử lý và xử lý dữ liệu đều đòi hỏi phải được tự động hóa bước khai

phá dữ liệu sẽ thực hiện hai mục đích mô tả (description) và dự đoán

(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 Để đạt được hai mục đích trên, nhiệm vụ chính của khai phá dữ liệu

bao gồm là:

Phân cụm, phân loại, phân nhóm, phân lớp:

Nhiệm vụ là trả lời câu hỏi: Một dữ liệu mới thu thập sẽ thuộc về nhóm nào? Quá trình này thường được thực hiện một cách tự động

Khai phá luật kết hợp:

Nhiệm vụ là phát hiện ra những mối quan hệ giống nhau của các bản ghi giao tác Luật kết hợp X=>Y có dạng tổng quát là: Nếu một giao tác đã chứa các tính chất X thì đồng thời nó cũng chứa các tính chất Y, ở một mức

độ nào đó Khai phá luật kết hợp được hiểu theo nghĩa: Biết trước các tính chất X, vậy các tính chất Y là những tính chất nào? (chúng ta sẽ tìm hiểu sâu hơn ở chương 2 và chương 3)

Phân tích đối tượng ngoài cuộc:

Một cơ sở dữ liệu có thể chứa các đối tượng không tuân theo mô hình

dữ liệu Các đối tượng dữ liệu như vậy gọi là các đối tượng ngoài cuộc Hầu

Trang 20

hết các phương pháp khai phá dữ liệu đều coi các đối tượng ngoài cuộc là nhiễu và loại bỏ chúng Sự phân tích dữ liệu ngoài cuộc được coi như là phai phá các đối tượng ngoài cuộc Một số phương pháp được ứng dụng để phát hiện đối tượng ngoài cuộc: Sử dụng các hình thức kiểm tra mang tính thống

kê trên cơ sở một phân phối dữ liệu hay một mô hình xác suất cho dữ liệu, dùng các độ đo khoảng cách mà theo đó các đối tượng có một khoảng cách đáng kể đến cụm bất kỳ khác được coi là đối tượng ngoài cuộc, dùng các phương pháp dựa trên độ lệch để kiểm tra sự khác nhau trong những đặc trưng chính của các nhóm đối tượng

Phân tích sự tiến hóa:

Phân tích sự tiến hóa thực hiện việc mô tả và mô hình hóa các quy luật hay khuynh hướng của những đối tượng mà ứng xử của chúng thay đổi theo thời gian Phân tích sự tiến hóa có thể bao gồm cả đặc trưng hóa, phân biệt, tìm luật kết hợp, phân lớp hay phân cụm dữ liệu liên quan đến thời gian, phân tích dữ liệu theo chuỗi thời gian, so sánh mẫu theo chu kỳ và phân tích dữ liệu dựa trên tính tương tự

Trong quá trình phát triển nền Kinh tế - Xã hội hiện nay, rất nhiều lĩnh vực đa ngành, nhiệm vụ khai phá dữ liệu phải làm là phát hiện ra những giả thuyết mạnh trước khi sử dụng những công cụ tính toán thống kê, đó là những công việc luôn thu hút các lĩnh vực khoa học như trí tuệ nhân tạo, cơ sở dữ liệu, hiển thị dữ liệu, marketing, toán học, tin sinh học, nhận dạng mẫu, tính toán thống kê …

1.5 Các phương pháp chính trong khai phá dữ liệu

Khai phá dữ liệu gồm nhiều hướng tiếp cận phù hợp với từng cơ sở dữ liệu của các lĩnh vực khoa học và đời sống xã hội Một số phương pháp chính trong khai phá dữ liệu là:

Trang 21

1.5.1 Phương pháp luật kết hợp

Một trong những chủ đề phổ biến của KPDL là khai phá luật kết hợp Mục đích của khai phá luật kết hợp là xác định mối quan hệ, sự kết hợp giữa các mục dữ liệu (item) trong một CSDL lớn (phương pháp này sẽ được trình bày cụ thể trong nội dung của chương 3)

1.5.2 Phương pháp cây quyết định

Cây quyết định là một mô tả tri thức dạng đơn giản nhằm phân các đối tượng dữ liệu thành một số lớp nhất định

Các nút của cây được gán nhãn là tên các mục dữ liệu, các cạnh được gán các giá trị có thể của các mục dữ liệu, các lá mô tả các lớp khác nhau Các đối tượng được phân lớp theo các đường đi trên cây, qua các cạnh tương ứng với các giá trị của mục dữ liệu tới lá Hình 1.4 mô tả một mẫu đầu ra có thể của quá trình khai phá dữ liệu dùng phương pháp cây quyết định với tập dữ liệu khách hàng xin vay vốn

Hình 1.4: Mẫu kết quả với phương pháp cây quyết định

Không cho vay

Không cho vay

Nợ > n

Thu thập < T

Trang 22

phương pháp k-Mean được coi là các kỹ thuật cơ bản của phân cụm Với phương pháp này sẽ chia tập có n đối tượng thành k cụm sao cho các đối tượng trong cùng một cụm thì giống nhau, các đối tượng khác cụm thì khác nhau

Đầu tiên chọn k đối tượng ngẫu nhiên, mỗi đối tượng đại diện cho tâm của cụm (cluster mean or center) Dựa vào khoảng cách giữa tâm cụm với mỗi đối tượng còn lại, gán mỗi đối tượng vào một cụm mà nó giống nhau nhất Sau đó, tính tâm mới của mỗi cụm Quá trình được lặp lại cho đến khi hàm tiêu chuẩn hội tụ (criterion function converges) Chẳng hạn sử dụng hàm

Hình 1.5: Phân cụm các đối tượng k-Mean ( + là tâm của cụm)

Với đối tượng được đánh dấu cộng (+) là tâm cụm

Trang 23

1.5.4 Các phương pháp dựa trên mẫu

Phương pháp này sử dụng khai phá chuỗi theo thời gian (Sequential

temporal patterns) Xét về mặt kỹ thuật thì tương tự như khai phá dữ liệu bằng luật kết hợp nhưng có thêm tính thứ tự và tính thời gian Một luật mô tả mẫu tuần tự có dạng tiêu biểu X -> Y phản ánh sự xuất hiện của biến cố X sẽ dẫn đến việc xuất hiện kế tiếp biến cố Y 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 bởi vì chúng có tính

dự báo cao

* Một số lưu ý khi thực hiện các phương pháp khai phá dữ liệu:

Khi thực hiện các phương pháp có những khó khăn phát sinh trong khai phá dữ liệu, đó là vì dữ liệu trong thực tế thường rất lớn, động và nhiễu, làm thế nào để giải quyết sự dư thừa thông tin không thích hợp khi khai phá dữ liệu

- Khai phá với dữ liệu lớn: giả sử cơ sở dữ liệu với hàng trăm trường, hàng triệu bản ghi với kích thước rất lớn, có thể lên đến GB Phương pháp giải quyết nên chọn là đưa ra lấy mẫu, lấy một ngưỡng cho cơ sở dữ liệu như các phương pháp tính xấp xỉ, xử lí song song

- Khai phá dữ liệu với kích thước lớn: khi đó, bài toán khai phá sẽ làm tăng không gian tìm kiếm, khả năng thuật toán khai phá dữ liệu có thể tìm thấy các mẫu giả Phương pháp khắc phục là làm giảm kích thước khi khai phá của bài toán và sử dụng các tri thức biết trước để xác định các mục dữ liệu không phù hợp

- Khai phá dữ liệu động: các kho cơ sở dữ liệu có đặc điểm là dữ liệu của chúng thay đổi liên tục Chẳng hạn như các mục trong cơ sở dữ liệu đã cho có thể bị thay đổi, bị xóa hoặc là tăng lên theo thời gian, việc khai phá dữ liệu bị ảnh hưởng bởi thời điểm quan sát dữ liệu, từ đó có thể làm cho mẫu

Trang 24

khai phá được trước đó mất giá trị Gặp tình huống này phương pháp giải quyết là sử dụng thuật toán tăng trưởng để cập nhật các mẫu và coi những thay đổi như là cơ hội để khai phá bằng cách sử dụng nó để tìm kiếm các mẫu

bị thay đổi

- Khai phá dữ liệu gặp các trường dữ liệu không phù hợp: nghĩa là mục

dữ liệu trở thành không thích hợp với trọng tâm hiện tại của việc khai phá Ta

sử dụng giải pháp loại bỏ dữ liệu dư thừa

- Khi sử dụng các phương pháp khai phá dữ liệu cần chú ý khả năng biểu đạt mẫu, có nghĩa là dữ liệu khai phá được phải càng dễ hiểu với con người càng tốt Vì vậy, các giải pháp thường bao gồm việc diễn tả dưới dạng

đồ họa, xây dựng cấu trúc luật với các đồ thị có hướng, biểu diễn bằng ngôn ngữ tự nhiên và kỹ thuật khác nhằm biểu diễn các tri thức và dữ liệu khai phá

1.6 Các ứng dụng của khai phá dữ liệu

Vào những năm của thế kỷ XX, khi công nghệ thông tin bùng nổ cả về

bề rộng và chiều sâu, ảnh hưởng đến hầu hết các lĩnh vực khoa học, kinh tế và đời sống xã hội Dữ liệu ngày càng tăng theo thời gian, người ta coi khai phá

dữ liệu là quá trình phân tích cơ sở dữ liệu nhằm phát hiện ra các thông tin mới và giá trị, thường thể hiện dưới dạng các mối quan hệ chưa biết đến giữa các mục dữ liệu Nhờ phân tích các dữ liệu mà các doanh nghiệp có khả năng

dự báo trước một số hành vi ứng xử của khách hàng Công nghệ thông tin phát triển đồng nghĩa với việc phát triển các phần mềm ứng dụng Phần mềm khai phá dữ liệu là một công cụ phân tích dùng để phân tích dữ liệu Nó cho phép người sử dụng phân tích dữ liệu theo nhiều góc nhìn khác nhau, phân loại dữ liệu theo những quan điểm riêng biệt và tổng kết các mối quan hệ đã được bóc tách

Hiện nay, kỹ thuật khai phá dữ liệu đang được áp dụng một cách rộng rãi trong rất nhiều lĩnh vực kinh doanh và đời sống khác nhau như:

Trang 25

- Thương mại: Phân tích dữ liệu bán hàng và thi trường, phân tích đầu

tư, quyết định cho vay, phát hiện gian lận, …

- Thông tin sản xuất: Điều khiển và lập kế hoạch, hệ thống quản lý, phân tích kết quả thử nghiệm, …

- Thông tin khoa học: dự báo thời tiết, CSDL sinh học: Ngân hàng gen,

…khoa học địa lý: dự báo động đất, …

- Trong y tế, marketing, ngân hàng, viễn thông, du lịch, internet… Những gì thu được từ khai phá dữ liệu thật đáng giá Điều đó được chứng minh bằng thực tế: Chẩn đoán bệnh trong y tế dựa trên kết quả xét nghiệm đã giúp cho bảo hiểm y tế phát hiện ra nhiều trường hợp xét nghiệm không hợp lý, tiết kiệm được nhiều kinh phí mỗi năm; Trong dịch vụ viễn thông đã phát hiện ra những nhóm người thường xuyên gọi cho nhau bằng mobile và thu lợi hàng triệu USD; IBM Suft-Aid đã áp dụng khai phá dữ liệu vào phân tích các lần đăng nhập Web vào các trang liên quan đến thị trường

để phát hiện sở thích khách hàng, từ đó đánh giá hiệu quả của việc tiếp thị qua Web và cải thiện hoạt động của các Website; trang Web mua bán qua mạng cũng tăng doanh thu nhờ áp dụng khai phá dữ liệu trong việc phân tích sở

thích mua bán của khách hàng

Kết luận chương 1:

Chương 1 đã tìm hiểu một các tổng quan quá trình phát hiện tri thức và các vấn đề về khai phá dữ liệu trong đó khai phá dữ liệu là bước quan trọng nhất để tìm ra các mẫu Khai phá dữ liệu có nhiều ứng dụng trong thực tế, cho nên đã thu hút được các nhà nghiên cứu, nhiều ngành, nhiều lĩnh vực quan tâm Các phương pháp phổ biến dùng để KPDL cũng được trình bày một cách

cụ thể, trong đó phương pháp khai phá luật kết hợp trong CSDL là một lĩnh vực đang được quan tâm nghiên cứu mạnh mẽ Chương sau sẽ trình bày cụ thể, chi tiết về khai phá luật kết hợp trong CSDL

Trang 26

Chương 2: KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ DỮ LIỆU 2.1 Bài toán mở đầu

Bài toán kinh điển dẫn đến việc khai phá luật kết hợp: bài toán phân tích dữ liệu bán hàng của một siêu thị:

Giả định chúng ta có rất nhiều mặt hàng, ví dụ như “bánh mì”, “sữa”,… Khách hàng khi đi siêu thị sẽ bỏ vào giỏ mua hàng của họ một số mặt hàng nào đó, và chúng ta muốn tìm hiểu các khách hàng thường mua các mặt hàng nào đồng thời Nhà quản lý dùng những thông tin này để điều chỉnh việc nhập hàng về siêu thị, hay đơn giản là để bố trí sắp xếp các mặt hàng gần nhau, hoặc bán các mặt hàng đó theo một gói hàng, giúp cho khách hàng đỡ mất công tìm kiếm

Ví dụ 2.1: Tìm hiểu thông tin bán hàng

Trong cửa hàng Văn phòng phẩm phục vụ học sinh chuẩn bị bước vào đầu năm học có rất nhiều mặt hàng như sách giáo khoa, sách tham khảo, sách bài tập, giấy viết, đồ dùng học tập cho các khối lớp được nhập về Hầu như các phiếu mua sách giáo khoa môn "Toán 9" thì có tới 70% mua thêm sách

"Ôn luyện thi lớp 10 môn toán", 30% mua thêm quyển " nâng cao môn toán 9" Nhà quản lý cửa hàng dùng những thông tin này để điều chỉnh việc nhập hàng về của hàng, để bố trí sắp xếp các mặt hàng gần nhau, hoặc bán các mặt hàng đó theo một gói hàng, giúp cho khách hàng đỡ mất công tìm kiếm và tại một thời gian luôn bán được nhiều mặt hàng hơn Đó chính là chủ cửa

hàng đã phát hiện ra luật kết hợp để sắp xếp các mặt hàng gần nhau thuận lợi

cho người mua hàng, tất nhiên là doanh thu của cửa hàng cũng vì vậy mà tăng lên vì đã đáp ứng được tối đa nhu cầu mua hàng của mỗi khánh hàng Ta nói rằng chủ của hàng đã biết cách khai phá luật kết hợp trong CSDL bán hàng để phục vụ cho việc kinh doanh

Trang 27

Từ bài toán trên, hoàn toàn có thể áp dụng trong các lĩnh vực khác Xét một cách tổng quát và nhìn theo góc độ của thuật ngữ tin học thì khai phá luật kết hợp được mô tả như tìm sự tương quan của các sự kiện- những sự kiện xuất hiện thường xuyên xuất hiện cùng nhau Nhiệm vụ chính của khai phá luật kết hợp là phát hiện ra các tập mục thường xuyên xuất hiện trong một khối lượng giao tác lớn của một cơ sở dữ liệu cho trước Nói cách khác, thuật toán khai phá luật kết hợp cho phép tạo ra các luật mô tả các sự kiện xảy ra đồng thời (một cách thường xuyên) như thế nào, qua đó là tìm luật, để thực hiện công việc đó, nhiệm vụ cơ bản của khai phá luật kết hợp là:

- Tìm các tập mục thường xuyên trong cơ sở dữ liệu

- Sử dụng các tập mục thường xuyên để sinh ra các luật

- Cắt tỉa các luật không đáng quan tâm từ luật kết xuất được

2.2 Các khái niệm cơ sở

Khai phá luật kết hợp là một kỹ thuật quan trọng của khai phá dữ liệu Mục tiêu khai phá là phát hiện những mối quan hệ giữa các mục dữ liệu trong

cơ sở dữ liệu Mô hình đầu tiên của bài toán khai phá luật kết hợp là mô hình nhị phân (hay còn gọi là mô hình cơ bản) được R Agrawal, T Imielinski và

A Swami đề xuất vào năm 1993, xuất phát từ nhu cầu phân tích dữ liệu của

cơ sở dữ liệu giao tác, phát hiện các mối quan hệ giữa các tập mục hàng hóa (Itemsets) đã bán được tại các siêu thị [8] Việc xác định các quan hệ này không phân biệt vai trò khác nhau cũng như không dựa vào các đặc tính dữ liệu vốn có của các mục dữ liệu mà chỉ dựa vào sự xuất hiện cùng lúc của chúng

Phần tiếp sau đây nêu một số khái niệm cơ bản dẫn đến bài toán khai

phá tập mục thường xuyên và luật kết hợp

Trang 28

2.2.1.Cơ sở dữ liệu giao tác

Định nghĩa 2.1: Cho tập các mục (item) I=i1,i2, i n Một giao tác (transaction) T là một tập con của I, TI Cơ sở dữ liệu giao tác là một tập các giao tác DB=T1,T2, T m Mỗi giao tác được gán một định danh TID Một tập mục con X I, gồm k mục phân biệt được gọi là một k-tập mục Giao tác T gọi là chứa tập mục X nếu X T

2.2.2 Biểu diễn cơ sở dữ liệu giao tác

Cơ sở dữ liệu giao tác thường được biểu diễn ở dạng biểu diễn ngang, biểu diễn dọc và biểu diễn bởi ma trận giao tác

* Biểu diễn ngang: Cơ sở dữ liệu là một danh sách các giao tác Mỗi giao tác có một định danh TID và một danh sách các mục dữ liệu trong giao tác đó

Ví dụ 2.2: Giả sử có một bảng danh sách các mặt hàng trong cửa hàng bán văn phòng phẩm, mỗi mặt hàng được quy định bằng một số tự nhiên được đánh số từ 1

Trang 29

Bảng 2.2: Biểu diễn ngang của CSDL giao tác

TID Các mục dữ liệu giao tác

T1 2, 3, 7 T2 1, 2, 6, 7 T3 3, 4, 5, 6 T4 2, 4, 6 T5 2, 3, 7 T6 1,2, 6

Bảng 2.3: Biểu diễn dọc của CSDL giao tác

Mục dữ liệu Định danh giao tác

Trang 30

Ví dụ 2.3: Xét cơ sở dữ liệu bảng 2.2 biểu diễn ở dạng ma trận giao tác,

ở mỗi giao tác mục dữ liệu đó có hay không xuất hiện chỉ nhận 1 trong hai giá trị 0 hoặc 1, được biểu diễn như bảng 2.4:

DB

Ta có: 0 ≤ sup(X) ≤ 1 với mọi tập mục X I

Định nghĩa 2.3: Cho tập mục X I và ngưỡng hỗ trợ tối thiểu

(minimum support) minsup 0,1 (được xác định trước bởi người sử dụng)

X được gọi là tập mục thường xuyên (frequent itemset hoặc large itemset) với

độ hỗ trợ tối thiểu minsup nếu sup(X )  minsup , ngược lại X gọi là tập mục

không thường xuyên

Trang 31

Một số tính chất của tập mục thường xuyên :

Cho cơ sở dữ liệu giao tác DB và ngưỡng độ hỗ trợ tối thiểu minsup

Các tập mục thường xuyên có các tính chất sau :

Tính chất 1: Giả sử X,Y  I là hai tập mục với X  Y thì sup(X)  sup(Y)

Tính chất 2: Giả sử X, Y là hai tập mục, X,Y  I, nếu Y là tập mục thường xuyên và XY thì X cũng là tập mục thường xuyên

Thật vậy, nếu Y là tập mục thường xuyên thì sup(Y)  minsup, mọi tập mục X là con của tập mục Y đều là tập mục thường xuyên trong cơ sở dữ liệu

DB vì sup(X)  sup(Y)

Tính chất 3: Giả sử X, Y là hai tập mục, X  Y và X là tập mục không thường xuyên thì Y cũng là tập mục không thường xuyên

2.2.4 Luật kết hợp

Định nghĩa 2.4: Một luật kết hợp là một biểu thức dạng XY, trong

đó X, Y  I, thỏa mãn điều kiện XY= Tập X gọi là tiền đề, tập Y gọi là kết luận của luật

Luật kết hợp có hai thông số quan trọng là độ hỗ trợ và độ tin cậy

2.2.5 Độ hỗ trợ và độ tin cậy của luật kết hợp

Định nghĩa 2.5: Độ hỗ trợ (Support) của một luật kết hợp( XY ), ký hiệu là Sup(XY), là độ hỗ trợ của tập mục XY, Sup(XY)= sup(XY)

Như vậy độ hỗ trợ của luật kết hợp ( XY ) chính là xác suất P(XY) của sự xuất hiện đồng thời của X và Y trong một giao tác

Ta có: 0 Sup(XY) 1

Khi đó, một luật kết hợp trong tập giao tác DB với độ hỗ trợ s, thì s là

số phần trăm của các giao tác trong DB có chứa XY( chứa cả X và Y), độ

hỗ trợ của luật có giá trị giữa 0 và 1

Trang 32

Khi chúng ta nói rằng độ hỗ trợ của một luật là 50%, có nghĩa là có 50% tổng số bản ghi chứa XY Như vậy, độ hỗ trợ mang ý nghĩa thống kê

Trong một số trường hợp, chúng ta chỉ quan tâm đến những luật có độ

hỗ trợ cao Nhưng cũng có trường hợp, mặc dù độ hỗ trợ của luật thấp, ta vẫn cần quan tâm (ví dụ luật kết hợp liên quan đến nguyên nhân gây ra sự ngừng đập của tim khi phẫu thuật của ngành y học)

Định nghĩa 2.6: Độ tin cậy (Confidence) của một luật XY, ký hiệu

conf (XY), là tỷ lệ giữa số giao tác chứa X Y và số giao tác chứa X

trong cơ sở dữ liệu DB

sup( )conf( ) =

Trang 33

2.3 Khai phá luật kết hợp

Bài toán khai phá luật kết hợp có thể phát biểu như sau:

Cho cơ sở dữ liệu giao tác DB, ngưỡng độ hỗ trợ tối thiểu minsup và ngưỡng độ tin cậy tối thiểu minconf

Yêu cầu: Tìm tất cả các luật kết hợp X→Y trên cơ sở dữ liệu DB sao cho sup(X→Y) ≥ minsup và conf(X→Y) ≥ minconf

Khai phá luật kết hợp này được gọi là bài toán cơ bản hay bài toán nhị phân, vì ở đây, giá trị của mục dữ liệu trong cơ sở dữ liệu là 0 hoặc 1 (xuất hiện hay không xuất hiện)

Bài toán khai phá luật kết hợp trong CSDL chia thành hai bài toán con: (1) Tìm tất cả các tập mục thường xuyên: một tập mục là thường xuyên được xác định qua tính độ hỗ trợ và thoả mãn độ hỗ trợ cực tiểu

(2) Sinh ra các luật kết hợp từ các tập mục thường xuyên đã tìm được thỏa mãn độ tin cậy tối thiểu cho trước

Khi khai phá luật kết hợp trong CSDL DB thì mọi khó khăn nằm ở bài toán thứ nhất là tìm tập mục thường xuyên

Ví dụ: Cho CSDL DB gồm 5 giao tác biểu diễn trong bảng 2.5

Bảng 2.5: Cơ sở dữ liệu DB TID Các mục dữ liệu

Trang 35

mà mục A xuất hiện trong bảng 2.5 kết quả độ tin cậy của các luật thể hiện qua bảng 2.8

Bảng 2.8: Độ tin cậy của các luật Luật kết hợp Độ tin cậy conf (X Y)

2.4 Các cách tiếp cận khai phá tập mục thường xuyên

Bài toán khai phá tập mục thường xuyên có thể chia thành hai bài toán nhỏ: tìm các tập mục ứng viên và tìm các tập mục thường xuyên Tập mục ứng viên là tập mục mà ta hy vọng nó là tập mục thường xuyên, phải tính độ

hỗ trợ của nó để kiểm tra Tập mục thường xuyên là tập mục có độ hỗ trợ lớn hơn hoặc bằng ngưỡng hỗ trợ tối thiểu cho trước Ta có thể phân chúng theo hai tiêu chí sau :

- Phương pháp duyệt qua không gian tìm kiếm

- Phương pháp xác định độ hỗ trợ của tập mục

Phương pháp duyệt qua không gian tìm kiếm được phân làm hai cách : duyệt theo chiều rộng (Breadth First Search – BFS) và duyệt theo chiều sâu (Depth First Search – DFS)

Duyệt theo chiều rộng là duyệt qua cơ sở dữ liệu gốc để tính độ hỗ trợ của tất cả các tập mục ứng viên có (k-1) mục trước khi tính độ hỗ trợ của các

Trang 36

tập mục ứng viên có k mục Với cơ sở dữ liệu có n mục dữ liệu, lần lặp thứ k

phải kiểm tra độ hỗtrợ của tất cả !

!( )!

k n

n C

Phương pháp xác định độ hỗ trợ của tập mục X được chia làm hai cách : cách thứ nhất là đếm số giao tác chứa X trong cơ sở dữ liệu và cách thứ hai là tính phần giao của các tập chứa định danh của các giao tác chứa X

Đã có rất nhiều thuật toán tìm tập mục thường xuyên được công bố, ta

có thể phân chúng theo theo hình 2.1 như sau:

Hình 2.1: Phân loại các thuật toán khai phá tập mục thường xuyên

2.5 Các thuật toán điển hình khai phá tập mục thường xuyên

Phần tiếp sau mô tả chi tiết nội dung hai thuật toán tiêu biểu: Thuật toán Apriori tiêu biểu cho phương pháp sinh ra các tập mục ứng viên và kiểm tra độ hỗ trợ của chúng; Thuật toán FP- Growth, đại diện cho phương pháp

Đếm

Trang 37

không sinh ra tập mục ứng viên, cơ sở dữ liệu được nén lên cấu trúc cây, sau

đó khai phá bằng cách phát triển dần các mẫu trên cây này

2.5.1 Thuật toán Apriori

Apriori là thuật toán khai phá tập mục thường xuyên do R Agrawal và

R Srikant đề xuất vào năm 1993 Thuật toán Apriori còn là nền tảng cho việc phát triển nhiều thuật toán khai phá tập mục thường xuyên khác về sau

Giả sử các mục dữ liệu trong mỗi giao tác được lưu theo trật tự từ điển Thuật toán sử dụng các ký hiệu sau đây:

Ck

Tập các k-tập mục ứng viên (các tập mục thường xuyên tiềm năng) Mỗi phần tử của tập này có 2 trường:

i) Tập mục (itemsets) ii) Độ hỗ trợ (count)

Ý tưởng chính của thuật toán như sau: sinh ra các tập mục ứng viên từ các tập mục thường xuyên ở bước trước, sử dụng kỹ thuật “tỉa” để bỏ đi những tập mục ứng viên không thoả mãn ngưỡng hỗ trợ cho trước Cơ sở của

kỹ thuật này là tính chất Apriori: Bất kỳ tập con nào của tập mục thường xuyên cũng phải là tập mục thường xuyên Vì vậy các tập mục ứng viên gồm

k mục có thể được sinh ra bằng cách kết nối các tập mục thường xuyên có 1) mục và loại bỏ tập mục ứng viên nếu nó có chứa bất kỳ một tập con nào không phải là thường xuyên

Trang 38

(k-Thuật toán duyệt cơ sở dữ liệu nhiều lần Mỗi lần duyệt, thuật toán thực hiện hai bước: bước kết nối và bước tỉa Trong lần lặp thứ k, thuật toán nối hai (k-1)-tập mục để sinh ra k-tập mục, sử dụng tính chất Apriori để tỉa các tập ứng viên Bước nối và bước tỉa như sau:

* Bước kết nối (tìm Ck): Tập các k-tập mục ứng viên Ck được sinh ra bởi việc kết nối Lk-1 với chính nó Hai tập mục L1 và L2 của Lk-1 được nối nếu chúng có (k-2) mục dữ liệu đầu bằng nhau , mục dữ liệu thứ (k-1) của L1 < L2: (L1[1] = L2[1])(L1[2] = L2[2]) …(L1[k-2] = L2[k-2])  (L1[k-1] < L2[k-1])

Dạng của tập mục nhận được bởi nối L1 và L2 là:

L1[1] L2[2] … L1[k-2] L1[k-1] L2[k-1]

*Bước tỉa: Tập Ck chứa tập Lk, tức là tất cả các k-tập mục thường xuyên đều thuộc tập Ck Tập Ck có thể là rất lớn dẫn đến khối lượng tính toán lớn Thuật toán áp dụng tính chất Apriori để rút gọn tập Ck Nếu có một (k-1)

- tập mục con nào đó của k- tập mục ứng viên mà không có mặt trong Lk-1 thì ứng viên đó không thể là thường xuyên, có thể loại bỏ khỏi Ck Việc kiểm tra các (k-1) - tập mục con có thể thực hiện nhanh bởi duy trì một cây băm của tất cả các tập mục thường xuyên đã tìm thấy

Thuật toán Apriori ( tìm các tập mục thường xuyên)

Input: Cơ sở dữ liệu DB, ngưỡng độ hỗ trợ minsup

Output: Tập các tập mục thường xuyên L trong DB

Trang 39

(4) For (each T DB) do begin

(5) C= subset(Ck,T) ; // Các tập mục ứng viên chứa trong T

Trang 40

Ví dụ 2.4: minh hoạ thuật toán Apriori

Ta minh họa thực hiện thuật toán Apriori trên cơ sở dữ liệu cho trong bảng 2.9 với minsup=50%, tƣ́c là xuất hiện ít nhất 2 lần

Bảng 2.9: CSDL giao tác minh hoạ cho thuật toán Apriori

TID Các mục dữ liệu T1 a, c, d

T2 b, c, e T3 a, b, c, e T4 b, e

- Duyệt CSDL lần thứ nhất: tính độ hỗ trợ cho các 1-tập mục đƣợc kết quả nhƣ sau:

Ngày đăng: 05/10/2014, 02:38

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[2] Vũ Đức Thi, Nguyễn Huy Đức (2008), “Thuật toán hiệu quả khai phá tập mục lợi ích cao trên cấu trúc dữ liệu cây”, Tạp chí Tin học và Điều khiển học, 24(3), tr. 204-216 Sách, tạp chí
Tiêu đề: Thuật toán hiệu quả khai phá tập mục lợi ích cao trên cấu trúc dữ liệu cây
Tác giả: Vũ Đức Thi, Nguyễn Huy Đức
Nhà XB: Tạp chí Tin học và Điều khiển học
Năm: 2008
[3] Nguyễn Huy Đức (2009), “Khai phá tập mục cổ phần cao và lợi ích cao trong cơ sở dữ liệu”, Luận án Tiến sĩ Toán học, Viện Công nghệ Thông tin – Viện KH và CN Việt Nam Sách, tạp chí
Tiêu đề: Khai phá tập mục cổ phần cao và lợi ích cao trong cơ sở dữ liệu
Tác giả: Nguyễn Huy Đức
Nhà XB: Viện Công nghệ Thông tin – Viện KH và CN Việt Nam
Năm: 2009
[4] Đỗ Phúc (2001), "Khảo sát quan hệ giữa tập mặt hàng phổ biến trong khai phá dữ liệu và dàn khái niệm", Hội Nghị kỷ niệm 25 năm thành lập Viện Công nghệ Thông tin, Hà Nội Sách, tạp chí
Tiêu đề: Khảo sát quan hệ giữa tập mặt hàng phổ biến trong khai phá dữ liệu và dàn khái niệm
Tác giả: Đỗ Phúc
Năm: 2001
[5] Vũ Đức Thi, Lê Hải Khôi ( 1999), “Một số nguyên lý hoạt động của kho dữ liệu”, Tạp chí Tin học và Điều khiển, Tr 27,29-32 Sách, tạp chí
Tiêu đề: Một số nguyên lý hoạt động của kho dữ liệu”, "Tạp chí Tin học và Điều khiển
[6] Vũ Đức Thi (1997), “Cơ sở dữ liệu - Kiến thức và thực hành”, Nhà xuất bản Thống kê Sách, tạp chí
Tiêu đề: Cơ sở dữ liệu - Kiến thức và thực hành”
Tác giả: Vũ Đức Thi
Nhà XB: Nhà xuất bản Thống kê
Năm: 1997
[7] Nguyễn Thanh Thủy (2003), “Phát hiện tri thức và khai phá dữ liệu: Công cụ, phương pháp và ứng dụng”, Bài giảng Trường Thu, Hà Nội Tiếng Anh Sách, tạp chí
Tiêu đề: Phát hiện tri thức và khai phá dữ liệu: Công cụ, phương pháp và ứng dụng
Tác giả: Nguyễn Thanh Thủy
Nhà XB: Bài giảng Trường Thu, Hà Nội Tiếng Anh
Năm: 2003
[8] Agrawal R. And Srikant R. (1994), “Fast algorithms for mining association rules”, in proceedings of 20th International Conference on Very Large Databases, Santiago, Chile Sách, tạp chí
Tiêu đề: Fast algorithms for mining association rules
Tác giả: Agrawal R., Srikant R
Nhà XB: proceedings of 20th International Conference on Very Large Databases
Năm: 1994
[9] Cai C. H., Chee Fu A. W., Cheng C. H., and Kwong W. W. (2005), “Mining Association Rules with Weighted Items”, Proceedings of the Sixth International Conference on Intelligent Data Engineering and Automated Learning (IDEAL 2005) Sách, tạp chí
Tiêu đề: Mining Association Rules with Weighted Items”, "Proceedings of the Sixth International Conference on Intelligent Data Engineering and Automated Learning
Tác giả: Cai C. H., Chee Fu A. W., Cheng C. H., and Kwong W. W
Năm: 2005
[10] Goethals B. and Zaki M. (2003), “Advances in frequent itemset mining implementations: Introduction to FIMI03”, In Workshop on Frequent Sách, tạp chí
Tiêu đề: Advances in frequent itemset mining implementations: Introduction to FIMI03
Tác giả: Goethals B., Zaki M
Nhà XB: Workshop on Frequent Itemset Mining Implementations
Năm: 2003
[11] Grahne G. and Zhu J. (2003), “Efficient using prefix-tree in mining frequent itemsets”, in Proc. IEEE ICDM Workshop on Frequent Itemset Mining Implementations, Melbourne, FL Sách, tạp chí
Tiêu đề: Efficient using prefix-tree in mining frequent itemsets”, in Proc. IEEE ICDM "Workshop on Frequent Itemset Mining Implementations
Tác giả: Grahne G. and Zhu J
Năm: 2003
[12] Han J., Cheng H., Xin D., Yan X. (2007), “Frequent pattern mining: current status and future directions”. Data Min Knowl Disc, Vol. 15, pp Sách, tạp chí
Tiêu đề: Frequent pattern mining: current status and future directions
Tác giả: Han J., Cheng H., Xin D., Yan X
Nhà XB: Data Min Knowl Disc
Năm: 2007
[13] Han J., Pei J., and Yin Y. (2000), “Mining frequent patterns without candidate generation”, In ACM SIGMOD Intl. Conference on Management of Data, pp. 1-12 Sách, tạp chí
Tiêu đề: Mining frequent patterns without candidate generation
Tác giả: Han J., Pei J., Yin Y
Nhà XB: ACM SIGMOD Intl. Conference on Management of Data
Năm: 2000
[14] Kotsiantis S., Kanellopoulos D. (2006), “Association Rules Mining: A Recent Overview”, GESTS International Transactions on Computer Science and Engineering, Vol. 32, No. 1, pp. 71-82 Sách, tạp chí
Tiêu đề: Association Rules Mining: A Recent Overview”, "GESTS International Transactions on Computer Science and Engineering
Tác giả: Kotsiantis S., Kanellopoulos D
Năm: 2006
[15] A.Tiwari, R.K. Gupta and D.P. Agrawal. (2010). “A Survey on Frequent Pattern Mining: Current Status and Challenging Issues”.Information Technology Journal, 9(7), 1278-1293. Asian Network for Scientific Infomation Sách, tạp chí
Tiêu đề: A Survey on Frequent Pattern Mining: Current Status and Challenging Issues
Tác giả: A. Tiwari, R.K. Gupta, D.P. Agrawal
Nhà XB: Information Technology Journal
Năm: 2010
[16] Virendra Kumar Shrivastava, Dr. Parveen Kumar, (2010), “FP-tree and COFI Based Approach for Mining of Multiple Level Association Rules in Large Databases”. International Journal of Computer Science and Information Security, Vol. 7 No. 2 Sách, tạp chí
Tiêu đề: FP-tree and COFI Based Approach for Mining of Multiple Level Association Rules in Large Databases
Tác giả: Virendra Kumar Shrivastava, Dr. Parveen Kumar
Nhà XB: International Journal of Computer Science and Information Security
Năm: 2010

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Quá trình khám phá tri thức - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Hình 1.1. Quá trình khám phá tri thức (Trang 14)
Hình 1.2. Kiến trúc của hệ thống khai phá dữ liệu - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Hình 1.2. Kiến trúc của hệ thống khai phá dữ liệu (Trang 16)
Hình 1.4: Mẫu kết quả với phương pháp cây quyết định - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Hình 1.4 Mẫu kết quả với phương pháp cây quyết định (Trang 21)
Hình 1.5: Phân cụm các đối tƣợng k-Mean ( + là tâm của cụm)  Với đối tƣợng đƣợc đánh dấu cộng (+) là tâm cụm - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Hình 1.5 Phân cụm các đối tƣợng k-Mean ( + là tâm của cụm) Với đối tƣợng đƣợc đánh dấu cộng (+) là tâm cụm (Trang 22)
Bảng 2.1: Danh mục các tập mục trong CSDL - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Bảng 2.1 Danh mục các tập mục trong CSDL (Trang 28)
Bảng 2.3: Biểu diễn dọc của CSDL giao tác. - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Bảng 2.3 Biểu diễn dọc của CSDL giao tác (Trang 29)
Bảng 2.2: Biểu diễn ngang của CSDL giao tác. - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Bảng 2.2 Biểu diễn ngang của CSDL giao tác (Trang 29)
Bảng 2.4: Ma trận giao tác của CSDL bảng 2.2 - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Bảng 2.4 Ma trận giao tác của CSDL bảng 2.2 (Trang 30)
Bảng 2.5: Cơ sở dữ liệu DB  TID     Các mục dữ liệu - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Bảng 2.5 Cơ sở dữ liệu DB TID Các mục dữ liệu (Trang 33)
Bảng 2.6: Độ hỗ trợ của các mục - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Bảng 2.6 Độ hỗ trợ của các mục (Trang 34)
Bảng 2.7: Độ hỗ trợ của các tập mục - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Bảng 2.7 Độ hỗ trợ của các tập mục (Trang 34)
Bảng 2.8: Độ tin cậy của các luật  Luật kết hợp  Độ tin cậy conf (X Y) - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Bảng 2.8 Độ tin cậy của các luật Luật kết hợp Độ tin cậy conf (X Y) (Trang 35)
Hình 2.1: Phân loại các thuật toán khai phá tập mục thường xuyên. - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Hình 2.1 Phân loại các thuật toán khai phá tập mục thường xuyên (Trang 36)
Bảng 2.9 với minsup=50%, tƣ́c là xuất hiện ít nhất 2 lần. - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Bảng 2.9 với minsup=50%, tƣ́c là xuất hiện ít nhất 2 lần (Trang 40)
Bảng 2.9: CSDL giao tác minh hoạ cho thuật toán Apriori - khai phá luật kết hợp trong cơ sở dữ liệu và ứng dụng
Bảng 2.9 CSDL giao tác minh hoạ cho thuật toán Apriori (Trang 40)

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