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

Khai phá mẫu phổ biến, luật kết hợp và thước đo tương quan

88 1,1K 3

Đ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 88
Dung lượng 2,59 MB

Nội dung

Lĩnh vực nghiên cứu này chú trọng nghiên cứu sâu một số vấn đề như: Làm thế nào có thể tìm thấy các tập mục phổ biến trong trong một lượng lớn dữ liệu, trong đó, dữ liệu có thể là các d

Trang 1

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

VŨ MỸ HẠNH

KHAI PHÁ MẪU PHỔ BIẾN, LUẬT KẾT HỢP

VÀ THƯỚC ĐO TƯƠNG QUAN

LUẬN VĂN THẠC SỸ

HÀ NỘI - 2011

Trang 2

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

VŨ MỸ HẠNH

KHAI PHÁ MẪU PHỔ BIẾN, LUẬT KẾT HỢP

VÀ THƯỚC ĐO TƯƠNG QUAN

LUẬN VĂN THẠC SỸ

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Nguyễn Công Điều

HÀ NỘI - 2011

Trang 3

MỤC LỤC

NHẬN XÉT – ĐÁNH GIÁ 1

LỜI CAM ĐOAN 2

LỜI CẢM ƠN 3

MỤC LỤC 4

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

MỞ ĐẦU 7

CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ MẪU PHỔ BIẾN, LUẬT KẾT HỢP VÀ CÁC THƯỚC ĐO TƯƠNG QUAN 9

1.1 Tổng quan về khai phá dữ liệu 9

1.1.1 Khai phá dữ liệu 9

1.1.2 Tiến trình khai phá tri thức 9

1.1.3 Các hướng tiếp cận trong khai phá dữ liệu 10

1.1.4 Một số ứng dụng trong khai phá dữ liệu 11

1.1.5 Một số thách thức trong khai phá dữ liệu 12

1.2 Các khái niệm cơ bản về khai phá mẫu phổ biến tìm luật kết hợp và phân tích mối tương quan 13

1.2.1 Khái niệm về khai phá mẫu phổ biến 13

1.2.2 Phát biểu bài toán tìm luật kết hợp 14

1.2.3 Mối tương quan giữa các mục 17

CHƯƠNG 2: MỘT SỐ PHƯƠNG PHÁP KHAI PHÁ LUẬT KẾT HỢP 18

2.1 Phương pháp khai phá tập mục phổ biến sử dụng kỹ thuật sinh ứng viên 18

2.1.1 Tư tưởng của thuật toán 18

2.1.2 Tính chất Apriori 18

2.1.3 Các bước thực hiện thuật toán Apriori 19

2.2 Phương pháp sinh luật kết hợp mạnh 28

2.3 Phương pháp khai phá tập mục phổ biến không cần sinh ứng viên 29

2.3.1 Một số bất cập trong phương pháp khai phá tập phổ biến sử dụng kỹ thuật sinh ứng viên 29

2.3.2 Thuật toán FP-growth 31

2.4 Giới thiệu một số thuật toán khai phá tập mục phổ biến khác 36

Trang 4

2.4.1 Thuật toán Apriori-TID 36

2.4.2 Thuật toán Apriori-Hybrid 37

2.4.3 Thuật toán AIS ( Agrawal Imielinski Swami) 37

2.4.4 Thuật toán DIC ( Dynamic Itemset Counting) 37

2.4.5 Thuật toán phân hoạch 37

2.5 Khai phá luật kết hợp định lượng 38

2.5.1 Một số hướng tiếp cận trong khai phá luật kết hợp 38

2.5.2 Khai phá luật kết hợp định lượng 39

2.6 Các thước đo tương quan 56

2.6.1 Các luật mạnh không nhất thiết đã thú vị 56

2.6.2.Từ phân tích luật kết hợp đến phân tích tương quan 57

CHƯƠNG 3: GIỚI THIỆU CÔNG CỤ KHAI PHÁ DỮ LIỆU WEKA VÀ MÔ PHỎNG 66

3.1 Tổng quan về phần mềm Weka 66

3.2 Cửa sổ ứng dụng Explorer trong Weka 68

3.2.1 Giao diện người dùng 68

3.2.2 Tiền xử lý – Preprocessing 72

3.2.3 Luật kết hợp 79

3.2.4 Một số định dạng tập tin trong Weka 80

3.3 Sử dụng công cụ Weka mô phỏng thuật toán sinh luật kết hợp 82

KẾT LUẬN 87

TÀI LIỆU THAM KHẢO 89

Trang 5

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

Thuật ngữ, chữ viết tắt Thuật ngữ tiếng anh Giải thích

CSDL Database Cơ sở dữ liệu

KPDL Data Mining Khai phá dữ liệu

Min_sup Minimum support Độ hỗ trợ tối thiểu

Min_conf Minimum confidence Độ tin cậy tối thiểu

Trang 6

MỞ ĐẦU

Trong những năm gần đây, cùng với sự phát triển vượt bậc của khoa học và công nghệ, khả năng thu thập và lưu trữ dữ liệu được nâng cao đáng kể, điều này đồng nghĩa với việc một lượng lớn dữ liệu được lưu trữ trên các thiết bị nhớ tăng lên không ngừng Cũng chính vì thế mà từ đây con người gặp phải một bất cập lớn trong việc phân tích một kho dữ liệu khổng lồ để rút ra được các quyết định hữu ích, ứng dụng trong hầu hết các lĩnh vực khoa học, kinh tế, xã hội

Khai phá dữ liệu – Data mining là một lĩnh vực khoa học liên ngành, nhằm tự

động hóa quá trình khai phá thông tin, tri thức hữu ích tiềm ẩn trong cơ sở dữ liệu của các tổ chức, doanh nghiệp, Đây là lĩnh vực khoa học tiềm năng, mang lại nhiều lợi ích thiết thực, đồng thời thể hiện ưu thế vượt trội hơn hẳn so với các công cụ phân tích

dữ liệu truyền thống

Khai phá Mẫu phổ biến – Frequent pattern mining (hay còn gọi là “Mẫu

thường xuyên ”) đóng vai trò thiết yếu trong khai phá luật kết hợp, mối tương quan, và

mối quan hệ thú vị khác nhau trong dữ liệu Hơn nữa, nó giúp phân lớp, phân cụm dữ liệu, và hỗ trợ khá tốt các nhiệm vụ khai phá dữ liệu Do vậy, khai phá mẫu phổ biến

đã trở thành nhiệm vụ khai phá dữ liệu quan trọng và là một chủ đề cần khai phá và tìm kiếm dữ liệu [1]

Khai phá luật kết hợp - Accessociation rule mining là một kỹ thuật quan trọng

của khai phá dữ liệu lần đầu tiên được Rakesh Agrawal, Tomas Imielinski, Arun Swami đề xuất năm 1993 Những nghiên cứu về luật kết hợp gần đây tập trung vào việc xây dựng các thuật toán khai phá luật kết hợp theo hai hướng là cải tiến đưa thuật toán mới và cải tiến hiệu quả của thuật toán cũ

Trong luận văn này tập trung trình bầy những khái niệm tổng quan về khai phá

dữ liệu, mẫu phổ biến, luật kết hợp Từ đó tìm hiểu các phương pháp khai phá tập mục phổ biến sinh ứng viên đối với khai phá khai phá luật kết hợp nhị phân Đồng thời, dựa trên phân tích về những bất cập của phương pháp này, luận văn xem xét một

số phương phương pháp cải tiến, khai phá tập mục không cần sinh ứng viên, cùng với những phân tích đánh giá chi tiết về ưu điểm và nhược điểm của phương pháp này Bên cạnh đó, luận văn cũng đề cập đến một hướng tiếp cận khác trong việc khai phá luật kết hợp đó là khai phá luật kết hợp định lượng Đây là một trong những hướng

Trang 7

phát triển để hoàn thiện những khía cạnh còn thiếu sót của khai phá luật kết hợp nhị phân Hơn nữa, các thước đo tương quan cũng được trình bầy để giúp đánh giá một luật được đưa ra có thực sự mạnh và đáng quan tâm hay không Cuối cùng, tìm hiểu về công cụ Weka và sử dụng công cụ này để mô phỏng các phương pháp khai phá đã đề cập

Luận văn bao gồm ba chương: Chương 1: Tổng quan về khai phá mẫu phổ biến, luật kết hợp và các thước đo tương quan Chương 2: Một số phương pháp cơ bản và

mở rộng trong khai phá luật kết hợp Chương 3: Giới thiệu công cụ khai phá dữ liệu Weka và mô phỏng

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

Học viên

Vũ Mỹ Hạnh

Trang 8

CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ MẪU PHỔ BIẾN, LUẬT KẾT

HỢP VÀ CÁC THƯỚC ĐO TƯƠNG QUAN

1.1 Tổng quan về khai phá dữ liệu

1.1.1 Khai phá dữ liệu

Phát hiện tri thức trong cơ sở dữ liệu (còn được gọi là khai phá dữ liệu) là một quá trình không tầm thường, nhận ra những mẫu có giá trị, mới, hữu ích, tiềm năng và

hiểu được trong dữ liệu.[1]

1.1.2.Tiến trình khai phá tri thức

Nhiều người cho rằng khai phá dữ liệu (data mining) đồng nghĩa với khám phá tri thức từ dữ liệu – Knowledge Discovery form Data hoặc KDD Một cách nhìn khác cho rằng khai phá dữ liệu đơn giản chỉ là một bước cốt yếu trong tiến trình khám phá tri thức[2] Khai phá tri thức là một tiến trình bao gồm một dãy các bước:

Hình 1.1: Khai phá dữ liệu là một bước trong tiến trình khai phá tri thức

1.Chọn lựa dữ liệu (Trích chọn dữ liệu) – Data selection: 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 như CSDL - databases, kho dữ liệu - data warehouses, theo một số tiêu chí nhất định

Trang 9

2.Tiền xử lý dữ liệu – Data preprocessing: là bước làm sạch dữ liệu (xử lý với dữ

liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không đồng nhất, v.v ), rút gọn dữ liệu (sử dụng hàm nhóm và tính tổng, các phương pháp nén dữ liệu, sử dụng histograms, lấy mẫu,v.v ), rời rạc hóa dữ liệu (rời rạc hóa dựa vào histograms, dựa vào entropy, dựa vào phân khoảng,v.v ) Kết thúc bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn và được rời rạc hóa

3.Đổi dạng dữ liệu – data transformation: là bước chuẩn hóa 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

4.Khai phá dữ liệu – data mining: là bước áp dụng những kỹ thuật khai phá ( phần

nhiều là các kỹ thuật của học máy – machine learning) để khai phá, trích chọn được những mẫu – patterns thông tin, những mối liên hệ - relationships đặc biệt trong dữ liệu Đây được xem là bước quan trọng và tốn nhiều thời gian nhất của

toàn quá trình khai phá tri thức – KDD

5.Trình diễn (Biểu diễn và đánh giá tri thức) – knowledge representation &

evaluation: những mẫu thông tin và mối quan hệ trong dữ liệu đã được khai phá

ở bước trên được chuyển dạng và biểu diễn ở một 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 khám phá được theo những tiêu chí nhất định

1.1.3 Các hướng tiếp cận trong khai phá dữ liệu

Các hướng tiếp cận của KPDL có thể được phân chia theo chức năng hay lớp các bài toán khác nhau Sau đây là một số hướng tiếp cận khá phổ biến:

Phân lớp và dự đoán (classification and prediction): là phương pháp xếp một

đối tượng vào một trong những lớp đã biết trước Hướng tiếp cận này thường sử dụng một số kỹ thuật học máy như: cây quyết định – decision, mạng nơ-ron –

neural network, Phân lớp còn được gọi là học có giám sát – supervised

learning

Phân cụm (clustering/segmentation): Xếp các đối tượng theo từng cụm, số

lượng cũng như tên các cụm chưa được biết trước Phân cụm còn được gọi là

học không giám sát – unsupervised learning

Trang 10

Khai phá luật kết hợp (association rules): là cách biểu diễn tri thức dưới dạng

các luật khá đơn giản nhưng mang rất nhiều ý nghĩa Thông tin luật đem lại là rất đáng kể và hỗ trợ không nhỏ trong quá trình ra quyết định Tìm kiếm được những luật thực sự “mạnh” chứa đựng nhiều thông tin từ CSDL tác nghiệp là một trong những hướng tiếp cận chính của lĩnh vực KPDL, là một động lực không nhỏ thúc đẩy việc tập trung nghiên cứu của nhiều nhà khoa học

Khai phá chuỗi theo thời gian (sequential/temporal patterns): giống như khai

phá 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

Mô tả khái niệm (concept description & summarization): thiên về mô tả, tổng hợp và tóm tắt khái niệm Ví dụ như: tóm tắt văn bản,

1.1.4 Một số ứng dụng trong khai phá dữ liệu

Khai phá dữ liệu là một lĩnh vực mới nhưng thu hút được rất nhiều sự quan tâm của các nhà nghiên cứu nhờ vào tính ứng dụng thực tiễn của nó Một số ứng dụng điển hình được kể đến bao gồm:

Phân tích dữ liệu và hỗ trợ quyết định (data analysis and dicision support):

oPhân tích và quản lý thị trường: Tiếp thị định hướng, quản lý quan hệ khách hàng, phân tích thói quen mua sắm, tiếp thị chéo, phân đoạn thị trường

oPhân tích và quản lý rủi ro: dự báo, duy trì khách hàng, cải thiện bảo lãnh, kiểm soát chất lượng, phân tích cạnh tranh

oPhát hiện gian lận, phát hiện mẫu bất thường (ngoại lai)

Ứng dụng khác:

oKhai phá văn bản (text mining), khai phá web (web mining)

oKhai phá dữ liệu dòng

oTin sinh (bio-informatics): tìm kiếm, đối sánh giữa các hệ gen và thông tin

di truyền, mối liên hệ giữa một số hệ gen và bệnh di truyền, phân tích AND và dữ liệu sinh học

Trang 11

oĐiều trị y học ( medical treament), như tìm hiểu mối quan hệ giữa triệu chứng, chuẩn đoán và phương pháp điều trị, giữa chế độ dinh dưỡng với bệnh lý và thuốc,

oTài chính và thị trường chứng khoán ( finance and stock market): phân tích

và dự báo tình tình tài chính cũng như quy luật hoạt động của cổ phiếu trên trị thường chứng khoán,

oBảo hiểm ( insurance)

1.1.5 Một số thách thức trong khai phá dữ liệu

Hiện nay, khai phá dữ liệu được ứng dụng trong nhiều lĩnh vực khá điển hình như: trong Phân tích dữ liệu hỗ trợ ra quyết đinh, trong y học, bảo hiểm, giáo dục, trong lĩnh vực tài chính và phân tích thị trường, và một số lính vực khác như Tin sinh học,

và khai phá dữ liệu web, Có khá nhiều những giải pháp cũng như các phương pháp được sử dụng trong khai phá dữ liệu, tuy nhiên vẫn tồn tại không ít khó khăn và thách thức:

Cơ sở dữ liệu lớn (về số lượng các bản ghi cũng như về số chiều thuộc tính)

trong cơ sở dữ liệu ( CSDL) Dung lượng của các bản ghi trong CSDL đôi khi lên tới hàng GigaByte(GB), TeraByte(TB) Số chiều thuộc tính trong CSDL

có thể rất lớn và đa dạng Để giải quyết vấn đề này, người ta đưa ra một ngưỡng nào đó cho CSDL bằng các cách như: chiết xuất mẫu, xấp xỉ hoặc xử

lý song song Trong CSDL khi số chiều thuộc tính là rất lớn, cùng với số lượng lớn các bản ghi sẽ dẫn đến kích thước và độ phức tạp của bài toán tăng lên.Vì vậy, không gian tìm kiếm và không gian trạng thái gia tăng, nhiều mẫu

dư thừa và trùng lặp, phát sinh nhiều luật thừa Đây được coi là vấn đề nan giải trong quá trình khai phá dữ liệu Nhằm giải quyết những vấn đề trên, phải

sử dụng một số tri thức đã biết để loại bỏ và trích lọc ra những dữ liệu thích hợp với yêu cầu bài toán

Dữ liệu bị thay đổi phụ thuộc theo thời gian: có nghĩa là dữ liệu bị ảnh hưởng

và phụ thuộc vào thời điểm quan sát, thời điểm lấy mẫu, thời điểm khai phá Kết quả đạt được sau khai phá cũng gây không ít khó khăn cho khai phá dữ liệu, ví dụ như các mẫu khai phá ở giai đoạn trước có thẻ không còn giá trị hay vô nghĩa tại thời điểm sử dụng, hoặc có thể bị làm nhiễu hay phát sinh

Trang 12

hiệu ứng phụ làm sai lệch kết quả Để khắc phục được vấn đề này cần thiết phải chuẩn hóa, cải tiến và nâng cấp mẫu, nâng cấp các mô hình và có thể xem các thay đổi này là mục đích của khai phá và tìm kiếm mẫu bị thay đổi Thuộc tính không phù hợp, các bộ giá trị không đầy đủ, bị thiếu các giá trị trong các miền thuộc tính đã làm ảnh hưởng không nhỏ đến quá trình khai phá dữ liệu Trong khai phá dữ liệu, khi các hệ thống tương tác với nhau phụ thuộc nhau mà thiếu vắng mội vài giá trị nào đó, sẽ dẫn đến các mẫu không còn chính xác, bị thiếu và không đầy đủ Để giải quyết vấn đề này, người ta coi sự thiếu vắng của các dữ liệu này như là các giá trị ẩn, chưa biết và có thể được tiên đoán bằng một số phương pháp nào đó Quan hệ phức tạp giữa các thuộc tính trong CSDL cũng là vấn đề cần được quan tâm Những bộ thuộc tính có cấu trúc, phân lớp phức tạp, có mối liên hệ phức tạp với nhau trong CSDL đòi hỏi tiến trình khai phá dữ liệu phải có các giải pháp, các kỹ thuật

để có thể áp dụng được, nhận ra được các mối quan hệ này

Lựa chọn giải pháp khai phá dữ liệu tự động: Hiện này người ta chưa đưa ra

được một tiêu chuẩn để đánh giá cho việc lựa chọn phương pháp nào là phù hợp và hiệu quả cho từng trường hợp cụ thể Các kỹ thuật đều khá mới mẻ trong các lĩnh vực ứng dụng, hơn nữa lại có rất nhiều kỹ thuật được sử dụng cho nhiều bài toán khác nhau

Vì vậy, ngay sau câu hỏi khai phá dữ liệu là gì? Câu hỏi kế tiếp ngay sau đó sẽ

là: Nên sử dụng kỹ thuật nào là phù hợp và hiệu quả? Câu trả lời thật sự không đơn

Frequent patterns – mẫu phổ biến được biết đến như: các tập mục – itemsets,

dãy con – subsequence, hoặc cấu trúc con – substructures, là những mẫu xuất hiện

phổ biến trong một tập dữ liệu

Trang 13

1.2.1.2 Ý nghĩa của khai phá mẫu phổ biến

Tìm kiếm các mẫu phổ biến đóng vai trò thiết yếu trong khai phá luật kết hợp, tìm kiếm mối tương quan, và các mối quan hệ thú vị trong dữ liệu Hơn nữa, nó giúp phân lớp, phân cụm dữ liệu, và hỗ trợ các nhiệm vụ khai phá dữ liệu khá tốt Do vậy, khai phá mẫu phổ biến đã trở thành nhiệm vụ khai phá dữ liệu quan trọng và là một chủ đề cần khai phá và tìm kiếm dữ liệu [2]

Chủ đề về khai phá mẫu phổ biến thực sự rất phong phú và rộng lớn Lĩnh vực nghiên cứu này chú trọng nghiên cứu sâu một số vấn đề như:

Làm thế nào có thể tìm thấy các tập mục phổ biến trong trong một lượng lớn dữ liệu, trong đó, dữ liệu có thể là các dữ liệu giao dịch hoặc dữ liệu quan hệ?

Làm thế nào có thể khai phá được các luật kết hợp trong không gian đa mức

và đa chiều?

Những luật kết hợp nào là lý thú nhất?

Làm thế nào có thể chỉ ra được các thuật toán, phương pháp khai phá hiệu quả để khám phá những luật kết hợp thú vị hoặc các mối tương quan giữa các mục?

Đây cũng chính là cơ sở để tạo điều kiện thuận lợi cho việc mở rộng các hình thức khai phá mẫu phổ biến sau này

1.2.2 Phát biểu bài toán tìm luật kết hợp

Cho I={I1,I2, ,Im} là một tập mục Cho D là một tập cơ sở dữ liệu giao dịch, trong đó mỗi giao dịch T là một tập mục có dạng (T  I) Mỗi giao dịch có một định danh TID Cho A là một tập các mục, một giao dịch T được gọi là chứa A, nếu và chỉ nếu A  T

Một luật kết hợp, ký hiệu là AB, trong đó A  I, B  I, và A  B =  Luật AB trong tập giao dịch D có độ hỗ trợ s, và độ tin cậy c

Trong đó:

Cơ sở dữ liệu giao dịch là toàn bộ các mặt hàng khách mua, mỗi mặt hàng (mục:

item) ứng với mỗi mục trong tập I Giao dịch T là danh sách các mặt hàng trong một giỏ hàng mà khách đã mua, T  I, mỗi giao dịch T được gán định danh TID

s là phần trăm (%) các giao dịch trong D chứa AB Chính là xác suất P(AB)

Trang 14

Support (AB) = P(AB) (1.2)

c là phần trăm (%) của những giao dịch trong D có chứa A thì cũng chứa B Chính là

xác suất điều kiện P (BA) Đó là:

Một tập các mục được gọi là tập mục (itemset) Ký hiệu k-itemset được hiểu là

tập mục có chứa k mục

Ví dụ: Tập {máy giặt, xà phòng giặt} là tập 2-itemset

Sự phổ biến của một tập mục là số giao dịch có chứa tập mục đó Nếu độ hỗ trợ

của một tập mục I thỏa mãn ngưỡng hỗ trợ tối thiểu (min-sup) thì I được gọi là tập

mục phổ biến Tập mục phổ biến k-itemset thường được biểu diễn bởi L k

Công thức (1.3) có thể được viết lại như sau:

(1.4) Công thức (1.4) cho biết độ tin cậy của luật AB có thể dễ dạng nhận được từ

độ hỗ trợ của A và AB Do vậy, vấn đề bắt buộc của khai phá luật kết hợp là phải khai phá các tập mục phổ biến

Tóm lại, tìm luật kết hợp có thể thực hiện qua hai bước:

1.Tìm tất cả các tập mục phổ biến: theo định nghĩa, việc xác định tập mục phổ

biến được thực hiện thông qua việc xét độ hỗ trợ của mỗi tập mục có thỏa mãn

độ hỗ trợ tối thiểu (min-sup) định trước

2.Tạo luật liên kết mạnh từ tập mục phổ biến: định nghĩa, một luật kết hợp được

coi là mạnh nếu luật này thỏa mãn độ hỗ trợ tối thiểu và độ tin cậy tối thiểu

Ví dụ 1.1 Minh họa bài toán khai phá mẫu phổ biến tìm luật kết hợp

Một cách tổng quát, cho tập mục I = {A,B,C,D,E,F}gồm 6 mục Xét cơ sở dữ liệu giao dịch D với các giao dịch ứng với các định danh TID thể hiện ở bảng dưới đây (Giả

thiết, giá trị min-sup=50%, min-conf=50%)

Trang 15

TID Các mục hàng trong giỏ

T01 A,B,C

T02 A,C

T03 A,D

T04 B,E,F

Bảng 1.1 Cơ sở dữ liệu giao dịch D

Duyệt cơ sở dữ liệu, dựa vào tần suất xuất xuất hiện của các tập mục trong các giao dịch từ T01 đến T04, ta tìm được các tập mục phổ biến có độ hỗ trợ thỏa mãn min-sup (các tập mục có độ hỗ trợ min-sup được loại bỏ) như sau:

Các tập mục Tần suất xuất hiện Độ hỗ trợ (support)

Bảng 1.2 Tần suất xuất hiện và độ hỗ trợ của các tập mục phổ biến

Từ đó, ta tìm được hai luật: A C và C  A Tính độ tin cậy, và độ hỗ trợ của từng luật ta có:

+) Đối với luật A C:

Support (A C) = P(AC) = (thỏa mãn min-sup)

Confidence (A C) = P(CA) = = (thỏa mãn min-conf)

Vậy A C là luật mạnh

+) Đối với luật C A:

Support (C A) = P(CA) = (thỏa mãn min-sup)

Confidence (C A) = P(AC) = = (thỏa mãn min-conf)

Vậy C A là luật mạnh

Kết luận: Từ CSDL D có thể sinh được hai luật mạnh đó là A C và C  A

Trang 16

1.2.3 Mối tương quan giữa các mục

Hầu hết các thuật toán khai phá luật kết hợp sử dụng một cấu trúc độ hỗ trợ - độ tin

cậy Thông thường, nhiều luật lý thú có thể tìm thấy khi sử dụng một ngưỡng hỗ trợ

thấp Mặc dầu, ngưỡng hỗ trợ tối thiểu và ngưỡng tin cậy tối thiểu giúp loại bỏ hoặc ngăn chặn một số lượng tốt các luật không đáng quan tâm, tuy nhiên, nhiều luật được sinh ra vẫn không hữu ích đối với người dùng Thật không may, điều này lại đặc biệt

đúng khi khai phá với ngưỡng hỗ trợ thấp và khai phá các mẫu dài Điều này đã từng

là một trong những trở ngại lớn trong việc ứng dụng thành công khai phá luật kết hợp

Trong Chương 2 của luận văn, sẽ đề cập đến việc xem xét: Tại sao một số luật kết hợp

mạnh lại không đáng quan tâm và gây hiểu nhầm? Sau đó chúng ta sẽ thảo luận về

việc bổ sung thêm những thước đo tương quan vào cấu trúc độ hỗ trợ - độ tin cậy

Trang 17

CHƯƠNG 2: MỘT SỐ PHƯƠNG PHÁP KHAI PHÁ LUẬT KẾT HỢP

2.1 Phương pháp khai phá tập mục phổ biến sử dụng kỹ thuật sinh ứng viên

Apriori là thuật toán khai phá tập mục phổ biến cho các luật kết hợp Boolean

Thuật toán chịu ảnh hưởng bởi thuyết của R.Agrawal và R.Srikant năm 1994

2.1.1 Tư tưởng của thuật toán

Apriori sử dụng một phương pháp đệ quy được biết đến như một cấp tìm kiếm thông minh, trong đó k-itemsets được sử dụng để tìm kiếm (k+1)-itemsets

Đầu tiên, 1-itemsets phổ biến được tìm thấy bằng cách duyệt CSDL để đếm các mục, và lựa chọn các tập mục thỏa mãn độ hỗ trợ tối thiểu (min-sup) Kết quả thể hiện bởi tập L1

Tiếp đến L1 được sử dụng để tìm L2 (tập có hai mục phổ biến), rồi lại sử dụng L2

để tìm L3 Cứ tiếp tục như thế, cho đến khi không thể tìm thấy nhiều hơn k-itemsets phổ biến

Mỗi lần tìm một tập mục phổ biến Lk thuật toán đòi hỏi phải quét toàn bộ CSDL một lần

ra là dư thừa hoặc không chỉ ra được mối quan hệ tương quan giữa các tập mục Vì thế, tính chất Apriori giúp giảm thiểu không gian tìm kiếm, giảm thiểu chi phí cho việc sinh và kiểm tra các tập mục không phổ biến

Thuộc tính Apriori dựa trên cơ sở những quan sát sau đây Theo định nghĩa, nếu

một tập mục I không thỏa mãn ngưỡng hỗ trợ tối thiểu min-sup (nghĩa là P(I) <

min_sup), thì I không phổ biến Nếu một mục A được thêm vào tập mục I, thì tập mục

Trang 18

kết quả (I A) không thể phổ biến hơn tập mục I Do vậy, tập mục I A thậm chí

không phổ biến, vì P(I A) < min_sup

Thuộc tính này được gọi là không đơn điệu (antimonotone) trong trường hợp một tập mục không thể qua được đợt kiểm tra về tính phổ biến thì tất cả các tập cha (supersets) của nó cũng sẽ thất bại trong bài kiểm tra tương tự

2.1.3 Các bước thực hiện thuật toán Apriori

Thuật toán được thực hiện qua 2 bước cơ bản, bao gồm bước kết nối ( join) và bước cắt tỉa ( prune)

Bước kết nối (join): Tìm tập mục phổ biến Lk từ tập ứng viên Ck

Tập ứng viên C k được sinh ra bằng cách kết nối Lk-1 với chính nó Cho l1

và l2 là các tập mục thuộc Lk-1 Ký hiệu li[j] để chỉ mục thứ j trong tập mục li ( ví dụ l1[k-2] để chỉ mục cuối cùng thứ hai trong l1) Theo quy ước, Apriori giả định các mục bên trong một giao dịch hoặc tập mục được sắp xếp theo thứ tự từ điển Đối với (k-1)-tập mục, li , có nghĩa là các mục được sắp xếp theo thứ tự li[1] < li[2]< < li[k-1] Kết nối Lk-

1 Lk-1 được thực hiện như sau: các thành phần của Lk-1 được kết hợp nếu (k-2) mục đầu tiên giống nhau Ở đó, thành phần l1 và l2 của Lk-1

được kết hợp nếu (l1[1]=l2[1] ˄ (l1[2]=l2[2] )˄ .˄ (l1[k-2]=l2[k-2]) ˄ (l1[k-1] < l2[k-1]) Điều kiện l1[k-1] < l2[k-1] chỉ đơn giản là đảm bảo rằng không có bản sao nào được tạo ra Tập mục kết hợp được hình thành bằng cách kết hợp l1 và l2 là l1[1], l1[2], ,l1[k-2], l1[k-1], l2[k-1]

Bước tỉa ( prune):Tập ứng viên Ck là tập cha Lk, các thành viên của nó có thể phổ biến hoặc không phổ biến, nhưng Lk phải bao gồm tất cả các tập mục phổ biến có k mục Duyệt CSDL để xác định số lượng các ứng viên

sẽ xuất hiện trong Ck, nhưng số ứng viên này có thể rất lớn, vì vậy điều này có thể dẫn đến việc tính toán khó khăn Để giảm kích thước của Ck,

tính chất Apriori được sử dụng như sau: Nếu bất kỳ (k-1)_tập con không

phổ biến thì không thể là tập con của k-tập mục phổ biến, do đó có thể

xóa khỏi Ck Kiểm tra tập con này có thể thực hiện nhanh chóng bằng cách duy trì một cây băm của tất cả các tập mục phổ biến

Trang 19

Ví dụ 2.1

Xét một CSDL giao dịch D được thể hiện bởi bảng sau:

TID Danh sách các mục ứng với mỗi giao dịch

C1(có 1-tập mục) Thuật toán đơn giản là quét tất cả các giao dịch theo thứ tự để

đếm số lần xuất hiện của mỗi mục

2.Giả thiết rằng số đếm hỗ trợ tối thiểu (min_sup count) theo yêu cầu là 2, nghĩa là min_sup = 2~ 2/9 = 22.2% Từ đó, tập mục phổ biến L1 (có 1-tập mục) được

xác định bằng cách lựa chọn những mục ứng viên thuộc C1 thỏa mãn min-sup Trong ví dụ này, tất cả các ứng viên trong C1 đều thỏa mãn độ hỗ trợ tối thiểu

(vì độ hỗ trợ của các ứng viên đều lớn hơn 2)

3.Để xác định tập gồm 2_tập mục phổ biến, L2, thuật toán sử dụng phép kết nối

L1⋈L1 để tạo ra một tập ứng viên C2 có 2_tập mục C2 bao gồm ) 2_tập mục Ta thấy rằng không có ứng viên nào bị xóa khỏi C2 trong bước cắt tỉa bởi

vì mỗi tập con của các ứng viên đều phổ biến

4.Tiếp theo, các giao dịch trong D được quét và số hỗ trợ của mỗi tập mục ứng viên trong C2 được tích lại, như ta nhìn thấy trong bảng ở giữa của dòng thứ hai trong Hình 2.1

5.Sau đó tập 2_tập mục ứng viên L2 được xác định, bao gồm những ứng viên 2_tập mục trong C2 có độ hỗ trợ thỏa mãn độ hỗ trợ tối thiểu (min-sup)

6.Để minh họa cho việc sinh tập mục ứng viên C3 ta sử dụng Hình 2.2 dưới đây Từ bước kết nối (join) đầu tiên chúng ta tìm được C3 = L2⋈L2 = {{I1,I2,I3}, {I1,I2,I5}, {I1,I3,I5}, {I2,I3,I4}, {I2,I3,I5}, {I2,I4,I5}} Dựa trên tính chất

Trang 20

So sánh độ hỗ trợ của ứng viên với độ hỗ trợ tối thiểu min-sup

So sánh độ hỗ trợ của ứng viên với độ hỗ trợ tối thiểu min-sup

C 3

L 3

Apriori: tất cả các tập con của một tập mục phổ biến thì cũng phổ biến Từ đó chúng ta có thể thấy rằng bốn ứng viên sau cùng không thể phổ biến (vì các tập {I3,I4}, {I3,I5},{I4,I5} không phổ biến)

Hình 2.1 Sinh tập mục ứng viên và tập mục phổ biến với min-sup=2

Tập mục Độ hỗ trợ {I1}

Độ hỗ trợ {I1,I2}

Độ hỗ trợ {I1,I2}

(a) Bước tỉa sử dụng tính chất Apriori: Tất cả các tập con không rỗng của một

tập mục phổ biến cũng phải phổ biến

Các tập con có 2-mục của tập {I1,I2,I3} là {I1,I2}, {I1,I3},{I2,I3} Tất cả các tập con này đều thuộc L2, do đó tập {I1, I2,I3} được giữ lại

Các tập con có 2-mục của tập {I1,I2,I5} là {I1,I2}, {I1,I5},{I2,I5} Tất cả các tập con này đều thuộc L2, do đó tập {I1, I2,I5} được giữ lại

Các tập con có 2-mục của tập {I1,I3,I5} là {I1,I3}, {I1,I5},{I3,I5} Ta thấy tập {I3,I5} không thuộc L2, do đó tập {I1,I3,I5} bị loại khỏi C3

Các tập con có 2-mục của tập {I2,I3,I4} là {I2,I3}, {I2,I4},{I3,I4} Ta thấy tập {I3,I4} không thuộc L2, do đó tập {I2,I3,I4} bị loại khỏi C3

Các tập con có 2-mục của tập {I2,I3,I5} là {I2,I3}, {I2,I5},{I3,I5} Ta thấy tập {I3,I5} không thuộc L2, do đó tập {I1,I3,I5} bị loại khỏi C3

Các tập con có 2-mục của tập {I2,I4,I5} là {I2,I4}, {I2,I5},{I4,I5} Ta thấy tập {I4,I5} không thuộc L2, do đó tập {I1,I3,I5} bị loại khỏi C3

(b) Do đó, sau bước tỉa, C3 = {{I1,I2,I3},{I1,I2,I5}}

Trang 21

Hình 2.2 Sinh và tỉa 3-tập mục ứng viên C 3 từ L 2 sử dụng tính chất Apriori

Do vậy, chúng ta có thể xóa chúng khỏi C3, như vậy chúng ta đã tiết kiệm được những nỗ lực không cần thiết khi phải đếm chúng trong suốt quá trình quét CSDL D để xác định L3 Lưu ý rằng, khi đưa ra một ứng viên k_tập mục , chúng ta chỉ cần kiểm tra xem nếu (k-1)-tập con phổ biến, thì từ thuật toán Apriori sử dụng một cấp tìm kiếm thông minh tìm kiếm chiến lược Kết quả cắt tỉa phiên bản C3 được thể hiện trong bảng đầu tiên của dòng cuối cùng trong Hình 2.1

7.Các giao dịch trong D được quét theo thứ tự xác định L3, bao gồm tập mục 3-ứng viên trong C3 thỏa mãn độ hỗ trợ tối thiểu ( Hình 2.1)

8.Thuật toán sử dụng kết nối L3⋈L3 để phát sinh một tập ứng viên của 4-tập mục,

C4 Mặc dầu kết quả kết nối là {{I1,I2,I3,I5}}, tuy nhiên tập mục này bị cắt tỉa bởi vì tập con{{I2,I3,I5}}của nó không phổ biến Do đó C4=, và thuật toán kết thúc, đã tìm thấy tất cả các tập mục phổ biến

2.1.3.1 Mô tả thuật toán Apriori dưới dạng giả mã

Thuật toán Apriori: Sử dụng một cấp tìm kiếm thông minh dựa trên việc sinh ứng

viên

Đầu vào:

-Cơ sở dữ liệu giao dịch D = {t  t : giao dịch }

- Độ hỗ trợ tối thiểu min_sup > 0

Đầu ra: Tập hợp tất cả các tập phổ biến

Phương pháp:

(0)Mincount = Min_sup * ;

(1)L1 = {tất cả các tập mục phổ biến có độ dài bằng 1 }

(2)For ( k=2; Lk-1 , k++) {

(3) Ck =Apriori-gen (Lk-1); // sinh mọi ứng viên có độ dài k

(4) For (mỗi giao dịch t D) { // quét CSDL D để đếm

Trang 22

(5) Ct = (c ϵ Ck c t); // tất cả các ứng viên c thuộc Ck với c là tập con của giao dịch t

(6) For (mỗi ứng viên c ϵ Ct)

Thủ tục Apriori_gen thực hiện hai loại hành động, cụ thể là, kết nối và cắt tỉa

Trong thành phần kết nối, Lk-1 được kết nối với Lk-1 để sinh các ứng viên tiềm năng (bước 1 tới bước 4) Thành phần tỉa (bước 5 đến bước 7) dựa vào tính chất Apriori để

loại bỏ các ứng viên mà có tập con không phổ biến Thủ tục has_infrequent_subset

dùng để kiểm tra các tập con không phổ biến

Procedure Apriori-gen ( Lk-1 : tập mục phổ biến có độ dài k-1)

Trang 23

Ví dụ 2.2: Minh họa thuật toán Apriori

Hình 2.3 mô tả chi tiết quá trình tìm tập mục phổ biến từ cơ sở dữ liệu giao dịch D, dựa vào thuật toán Aprori với độ hỗ trợ 0.5

Hình 2.3 Ví dụ minh họa thuật toán Apriori với độ hỗ trợ = 0.5

Trang 24

2.1.3.2 Một số kỹ thuật cải tiến thuật toán Apriori

Apriori là một thuật toán khá hiệu quả trong khai phá tập mục phổ biến, tuy nhiên thuật toán này vẫn còn tồn đọng một số vấn đề như:

Phải duyệt CSDL nhiều lần, do mỗi lần sinh tập mục ứng viên, lại phải duyệt CSDL một lần

Chưa tối ưu hóa được tập ứng viên, vì thế số lượng các ứng viên trong tập mục ứng viên là khá lớn

Hai vấn đề này làm tăng chi phí khi thực hiện thuật toán Vậy “Làm thế nào

chúng ta có thể cải thiện được hiệu quả của việc khai phá dựa trên Apriori” Có nhiều

cải tiến của Apriori được đề xuất để nâng cao hiệu quả của thuật toán ban đầu Một số các cải tiến đó được tóm lược như sau:

(1)Kỹ thuật Băm: (băm các tập mục thành các nhóm tương ứng): kỹ thuật băm

có thể sử dụng để giảm kích thước của k-tập mục ứng viên , Ck, , với k>1

Ví dụ: Khi quét mỗi giao dịch trong CSDL để sinh tập mục phổ biến L1 itemsets từ tập ứng viên C1, chúng ta có thể sinh tất cả tập mục 2-itemsets đối với mỗi giao dịch, băm chúng vào các nhóm-cụm (buckets) khác nhau

1-trong cấu trúc một bảng băm ( a hash table), và tăng số đếm nhóm (bucket

count) tương ứng ( Hình 2.4) Một tập mục có độ dài hai ( 2-tập mục) tương ứng với số nhóm đếm được trong bảng băm mà dưới ngưỡng hỗ trợ tối thiểu thì không thể phổ biến và do dó có thể loại bỏ khỏi tập ứng viên Kỹ thuật dựa trên cơ sở băm về căn bản có thể giảm số ứng viên của tập k-tập mục cần kiểm tra ( đặt biệt là khi k=2)

Hình 2.4 Bảng băm H2, với 2-tập mục ứng viên: Bảng băm này đƣợc tạo bằng cách duyệt các giao dịch của Bảng 2.1 trong khi tìm tập L1 từ tập ứng viên C1

Số đếm mỗi cụm

Nội dung các cụm

Trang 25

Nếu độ hỗ trợ tối thiểu bằng 3, thì các tập mục trong nhóm 0,1,3 và 4 không thể

phổ biến và do đó chúng không thể có mặt trong C2

(2)Giảm giao dịch (Giảm số lần quét giao dịch trong trong lần lặp lại tiếp

theo): Một giao dịch mà không chứa k-tập mục phổ biến nào thì cũng không thể chứa (k+1) tập mục phổ biến Do đó, một giao dịch có thể được đánh dấu hoặc loại bỏ trong lần quét CSDL sau đối với j-tập mục, với j>k,

sẽ không cần đến nó

(3)Phân hoạch (phân chia dữ liệu để tìm tập mục ứng viên): Kỹ thuật này chỉ

sử dụng hai lần quét CSDL để khai phá tập mục phổ biến ( Hình 2.5) Kỹ thuật phân hoạch bao gồm hai giai đoạn

Giai đoạn I, thuật toán chia nhỏ giao dịch D thành n cụm không chồng

chéo Nếu ngưỡng hỗ trợ tối thiểu của giao dịch trong D là min_sup, thì ngưỡng hỗ trợ tối thiểu của mỗi vùng là (min_sup số giao dịch trong

vùng này) Với mỗi nhóm, tất cả các tập mục phổ biến bên trong nhóm đều

được tìm Đây được gọi là tập mục phổ biến địa phương – local frequent

itemsets Thủ tục sử dụng một cấu trúc dữ liệu đặc biệt đó là, với mỗi tập

mục, ghi lại định danh TID của giao dịch có chứa các mục trong tập mục Điều này cho phép nó tìm tất cả k_tập mục phổ biến địa phương với k=1,2, , chỉ trong một lần quét CSDL

Hình 2.5 Khai phá bằng phân hoạch dữ liệu

Một tập mục không phổ biến hoặc phổ biến địa phương liên quan đến toàn

bộ CSDL D Bất kỳ tập mục nào là phổ biến đối với D phải xảy ra như một tập mục phổ biến trong ít nhất một trong các phân hoạch Do đó, tất cả các

Các giao

dịch

trong D

Chia D thành n vùng

Tìm các tập mục phổ biến địa phương cho mỗi vùng (1 lần quét)

Tổ hợp các tập mục phổ biến địa phương để được tập mục ứng cử

Tìm các tập mục phổ biến đích trong số các ứng cử (1 lần quét)

Các tập mục phổ biến trong

D

Giai đoạn 2 Giai đoạn 1

Trang 26

tập mục phổ biến là tập mục ứng cử đối với D Bộ sưu tập các tập mục phổ

biến từ tất cả các phân cụm mẫu tập mục ứng viên phổ biến – global

candidate itemsets với liên quan tới D Trong cụm II, một lần quét thứ hai

của D được tiến hành với độ hỗ trợ thực tế của mỗi ứng viên được đánh giá theo thứ tự xác định tập mục phổ biến Phân hoạch kích thước và số lượng các vùng được thiết lập để mỗi phân hoạch có thể vừa vặn với bộ nhớ chính

và do đó chỉ đọc một lần mỗi giai đoạn

(4)Lấy mẫu (khai phá trên một tập con của tập dữ liệu cho trước): ý tưởng cơ

bản của cách tiếp cần này là lấy ngẫu nhiên S trên CSDL đã cho D, và sau

đó tìm tập mục phổ biến trong S thay vì trong D , độ phức tạp được cải thiện Kích thước của mẫu là đảm bảo để tìm các tập mục phổ biến trong S

có thể thực hiện được trong bộ nhớ chính và chỉ cần một lần duyệt S Do chúng ta đang tìm kiếm tập mục phổ biến trong S thay vì trong D, có thể chúng ta sẽ bỏ lỡ một số tập mục phổ biến toàn bộ (global) Để giảm bớt khả năng này, chúng ta sử dụng một ngưỡng hỗ trợ thấp hơn so với độ hỗ trợ tối thiểu để tìm tập mục phổ biến địa phương từ S ( ký hiệu LS) Phần còn lại của CSDL thường sử dụng tính toán tần suất thực tế của mỗi tập mục trong

LS Một cơ chế được sử dụng để xác định tất cả tập mục phổ biến toàn bộ ( global frequent itemsets) có ở trong LS Nếu LS thực sự chứa tất cả các tập mục phổ biến trong D, sau đó chỉ cần yêu cầu một lần duyệt D Nếu không, một lượt thứ hai để tìm tập mục phổ biến mà đã bị mất trong lượt thứ nhất Phương pháp lấy mẫu đặc biệt có lợi vô cùng quan trọng, như là trong các ứng dụng tính toán chuyên sâu phải chạy thường xuyên

(5)Đếm tập mục động ( thêm tập mục ứng viên tại những điểm khác nhau

trong suốt quá trình quét ): Một kỹ thuật đếm tập mục động được đề xuất cho CSDL là phân tách thành các khối được đánh dấu bởi các điểm bắt đầu Trong cải tiến này, tập mục ứng viên mới có thể thêm vào tại một vài điểm bắt đầu, không giống như Apriori, quyết định tập mục ứng viên mới ngay lập tức trước mỗi khi hoàn thành việc quét CSDL Kỹ thuật này ước tính sự

hỗ trợ của tất cả các tập mục đã được đếm đến một mức độ nào đó, thêm tập mục ứng viên nếu tất cả các tập con của nó được ước tính là phổ biến Kết quả thuật toán đòi hỏi quét CSDL vơi số lần ít hơn so với Apriori

Trang 27

2.2 Phương pháp sinh luật kết hợp mạnh

Từ tập mục phổ biến được tìm thấy từ CSDL giao dịch nhờ thuật toán Apriori, có thể

dễ dàng sinh các luật kết hợp mạnh từ chúng

Luật kết hợp mạnh là luật kết hợp thỏa mãn cả hai độ hỗ trợ tối thiểu – minsup và độ tin cậy tối thiểu – minconf Để thực hiện được việc này ta sử dụng phương trình sau để tính độ tin cậy của luật:

(2.1)

Trong đó: support_count (AB) là số giao dịch có chứa các tập mục AB và support_count (A) là số giao dịch có chứa tập mục A

Dựa vào công thức này, luật kết hợp có thể được sinh ra như sau:

Với mỗi tập mục phổ biến l, sinh tất cả các tập con khác rỗng của l

s≠, s  l, sinh luật có dạng s  ( l-s), nếu

với min_conf là ngưỡng tin cậy tối thiểu

Do các luật được sinh từ tập mục phổ biến, mỗi tập mục tự động thỏa mãn độ hỗ trợ tối thiểu – minsup

Ví dụ 2.3 Sinh luật kết hợp

Sử dụng một CSDL giao dịch được thể hiện trong Bảng 2.1 để thể hiện quá trình sinh luật kết hợp Theo ví dụ 2.1, ta tìm được hai tập mục phổ biến có độ dài bằng 3 (3-itemsets) là {I1,I2,I5} và {I1,I2,I3}

Xét tập mục phổ biến l= {I1,I2,I3} Những tập con khác rỗng của l gồm:

{I1,I2}, {I1,I5}, {I5,I2}, {I1}, {I2}, {I5} Kết quả, ta thu được các luật kết hợp cùng với độ tin cậy của chúng như sau:

I1˄I2I5 độ tin cậy =2/4=50%

I1˄I5I2 độ tin cậy =2/2=100%

I2˄I5I1 độ tin cậy =2/2=100%

I1I2˄I5 độ tin cậy =2/6=33%

I2I1˄I5 độ tin cậy =2/7=29%

I5I1˄I2 độ tin cậy =2/2=100%

Trang 28

Giả sử ngưỡng tin cậy tối thiểu min-conf là 70%, thì chỉ có luật thứ hai, thứ ba và

luật cuối cùng được lấy ra, và các luật này là các luật kết hợp mạnh ( do độ hỗ trợ -

confidence lớn hơn min-conf = 70%) Ta thấy rằng, không giống như quy tắc phân loại

luật thông thường, luật kết hợp có thể chứa nhiều hơn một liên kết ở vế phải của luật

2.3 Phương pháp khai phá tập mục phổ biến không cần sinh ứng viên 2.3.1 Một số bất cập trong phương pháp khai phá tập phổ biến sử dụng

kỹ thuật sinh ứng viên

Có rất nhiều các nghiên cứu từ những năm 2000 trở về trước như: khai phá tập mục phổ biến đóng vai trò thiết yếu trong khai phá luật kết hợp ( Agrawal et al.,1993,1996; Agrawal and Srikant¸1994; Mannila et al.,1994), các mối tương quan ( Brin et al., 1997), thuyết nhân quả ( Silverstein et al.,1998), mẫu dãy ( Agarawal và Srikant, 1995), mẫu đa chiều ( Lent et, al.,1997), và rất nhiều các nhiệm vụ khai phá khác, đa

số đều sử dụng phương pháp Apriori – like dựa trên một thuyết đơn điệu Apriori (của

Agrawal và Srikant, 1994) đó là: “Nếu trong CSDL có một mẫu có độ dài k không phổ

biến thì mẫu cha của nó có độ dài (k+1) cũng không bao giờ phổ biến”

Bản chất của thuyết này là sinh các mẫu ứng viên có độ dài ( k+1) dựa vào tập mẫu phổ biến có độ dài k ( k 1) và kiểm tra xem chúng có phổ biến trong CSDL hay không Phương pháp sinh ứng viên này có ý nghĩa đặc biệt trong việc giảm kích thước tập ứng viên Tuy nhiên, trong một số trường hợp khác như số lượng các mẫu phổ biến quá lớn, hoặc ngưỡng hỗ trợ tối thiểu thấp, phương pháp này gặp phải hai vấn đề lớn sau:

Phát sinh một số lượng lớn tập ứng viên.Ví dụ, nếu ở đó có 104 tập mục phổ biến có độ dài 1 (1-itemsets) , thuật toán Apriori sẽ cần sinh nhiều hơn 107 tập mục ứng viên độ dài 2 (2-itemsets) Thêm nữa, để tìm ra một mẫu phổ biến có

độ dài là 100, như {a1, ,a100}, nó phải sinh ít nhất 2100-1 1030 ứng viên tất cả

Phải lặp lại nhiều lần việc duyệt CSDL và kiểm tra một lượng lớn các tập ứng viên bằng các mẫu phù hợp (pattern matching) Vấn đề này đặc biệt đúng khi

khai phá các mẫu dài (long patterns)

Để cải thiện những bất cập nêu trên, Jiawei Han, Jian Pei và Yiwen đề xuất thuật toán

Frequent-Pattern growth viết tắt là FP-growth Thuật toán này đã loại bỏ những bất

Trang 29

cập về việc sinh các ứng viên, đồng thời sử dụng một cấu trúc dữ liệu mới dạng cây để

giảm chi phí trong khai phá các mẫu phổ biến Phương pháp này được gọi là khai phá

tập mục phổ biến không cần sinh ứng viên, phương pháp này dựa trên 3 kỹ thuật chính

sau:

Sử dụng kỹ thuật nén và tích hợp dữ liệu vào một cấu trúc cây, được gọi là cây

mẫu phổ biến - frequent pattern tree viết tắt là FP-tree Trong cây chỉ có các

tập mục có độ dài bằng 1 (1-itemsets) và các node trên cây được sắp xếp sao cho các node xuất hiện thường xuyên hơn có thể dễ dàng chia sẻ với các node xuất hiện ít hơn Như vậy CSDL lớn được nén chặt vào một cấu trúc dữ liệu nhỏ hơn (cây FP-tree) Việc khai phá mẫu phổ biến sẽ được thực hiện trên cây FP-tree này, thay vì làm việc với toàn bộ CSDL

Phương pháp khai phá tăng trưởng từng đoạn (growth mining) dựa trên FP-tree

được gọi là phương pháp FP-growth Bắt đầu từ các mẫu có độ dài bằng 1 ( coi

đó như một mẫu hậu tố - suffix pattern ban đầu) Xây dựng cơ sở mẫu phụ

thuộc - conditional pattern base bao gồm tập đường dẫn tiền tố - prefix path

trong FP-tree xảy ra đồng thời với mẫu hậu tố, và coi chúng như một tập CSDL

con – sub database Từ đó xây dựng cây phụ thuộc FP-tree tương ứng với mỗi

cơ sở mẫu phụ thuộc và thực hiện khai phá đệ quy trên cây này Mẫu phát triển

( pattern growth) được hình thành bằng sự móc nối mẫu hậu tố với các mẫu phổ

biến sinh ra từ một cây điều kiện FP-tree

Chiến lược chia để trị ( divide-and-conquer): Phân rã nhiệm vụ khai phá thành

các nhiệm vụ nhỏ hơn trên các mẫu được lưu trữ trong các CSDL phụ thuộc, từ

đó làm giảm kích thước không gian tìm kiếm Đầu tiên, biểu diễn tập mục phổ

biến bởi một cây mẫu phổ biến – frequent pattern tree hay còn gọi là FP-tree

Trong đó, thông tin liên kết tập mục được giữ lại Sau đó chia CSDL đã được

nén bởi cây FP-tree vào một tập CSDL phụ thuộc – conditional databases,

trong đó, mỗi tập CSDL được liên kết với một mục phổ biến hoặc “một đoạn mẫu – pattern fragment”, sau đó khai phá mỗi CSDL một cách tách biệt Phương pháp này giúp giảm kích thước của cơ sở mẫu phụ thuộc, hơn nữa, thay

vì phải tìm kiếm các mẫu phổ biến dài, ta chỉ cần tìm kiếm trong những tập mục ngắn hơn sau đó móc nối với phần hậu tố Điều đó làm giảm đáng kể chi phí tìm kiếm!

Trang 30

Theo như nghiên cứu cho thấy, thuật toán FP-growth hiệu quả trong cả khai phá các mẫu phổ biến dài và các mẫu phổ biến ngắn và tốc độ xử lý của nó nhanh hơn thuật toán Apriori trước đây

2.3.2 Thuật toán FP-growth

Thuật toán được thực hiện qua hai giai đoạn:

Giai đoạn 1: Xây dựng cây mẫu phụ thuộc FP-tree

Giai đoạn 2: Sử dụng cây FP-tree để khai phá các mẫu phổ biến

Để có cái nhìn trực quan về phương pháp này, chúng ta sẽ minh họa thuật toán dựa trên CSDL giao dịch D, của Bảng 2.1 trong ví dụ 2.1

2.3.2.1.Giai đoạn 1: Xây dựng cây mẫu phụ thuộc FP-tree

Để xây dựng cây mẫu phụ thuộc FP-tree, thuật toán phải duyệt CSDL hai lần

-Lần duyệt CSDL đầu tiên:

Trong lần duyệt này, giống như thuật toán Apriori, bắt đầu từ tập mục phổ biến có độ

dài 1 (1-itemsets) và tính độ hỗ trợ của chúng (Giả sử số đếm hỗ trợ tối thiểu min-sup

count = 2) Sắp xếp tập mục phổ biến này theo thứ tự giảm dần của độ hỗ trợ Ta có

một danh sách L như sau: L= {{I2:7}, {I1:6}, {I3:6}, {I4:2}, {I5:2}}

-Duyệt CSDL lần thứ hai:

Cây mẫu phổ biến FP-tree được xây dựng như sau

Đầu tiên, tạo gốc của cây, gán nhãn là “null”

Duyệt CSDL lần thứ hai Sắp xếp các mục trong mỗi giao dịch theo thứ tự trong L (ví dụ, sắp xếp theo thứ tự giảm dần của độ hỗ trợ) và loại bỏ

những mục có số đếm hỗ trợ nhỏ hơn min-sup count Đồng thời tạo một

nhánh cây ứng với mỗi giao dịch

Ví dụ: Sau khi duyệt CSDL lần hai, CSDL D sẽ có dạng như sau:

TID Các mục hàng đã mua Sắp xếp các mục theo thứ tự L

T01 I1, I2, I5 I2, I1, I5

Trang 31

T06 I2, I3 I2, I3

T07 I1, I3 I1, I3

T08 I1, I2, I3, I5 I2, I1, I3, I5

T09 I1, I2, I3 I2, I1, I3

Nhận thấy không có mục nào bị loại bỏ khỏi giao dịch do chúng đều có độ hỗ

trợ lớn hơn 2 Duyệt giao dịch đầu tiên trong CSDL D “ T01: I1, I2, I5”, chứa 3 mục (

I2, I1, I5 theo thứ tự L), từ đó tạo ra nhánh đầu tiên của cây với ba node <I2:1>,

<I1:1>, và <I5:1>, trong đó I2 được kết nối như một con của gốc, I1 liên kết tới I2, và I5 kết nối với I1 (Hình 2.6a)

Ứng với giao dịch thứ hai, “T02: I2, I4” chứa các mục I2 và I4 theo thứ tự L

Thông thường, kết quả của nhánh này là I2 kết nối với gốc và I4 kết nối với I2 Tuy

nhiên, nhánh này phải chia sẻ một tiền tố chung (a common frefix) I2, đã được thiết lập trong đường đi của nhánh ứng với giao dịch T01 trước đó Do đó, số đếm của node

I2 được tăng thêm 1, và tạo một node mới , <I4:1>, liên kết như một con của <I2:2>.

Hình 2.6 a,b Tạo cây FP-tree

Nhìn chung, khi xét đến các nhánh ứng với mỗi giao dịch khi thêm vào cây, số đếm của mỗi node có tiền tố chung sẽ tăng thêm 1, và các node của các mục theo sau tiền tố được tạo ra và được liên kết cho phù hợp

Để thuận tiện cho việc duyệt cây, một bảng header được xây dựng bao gồm ba trường: (1) ID-mục, (2) Độ hỗ trợ ứng với từng mục, (3)Node-link Trong đó mỗi mục

trong bảng chỉ đến sự kiện của nó trong cây theo một chuỗi Node-link Cây thu được

sau khi duyệt tất cả các giao dịch trong CSDL D được thể hiện trong Hình 2.7 có biểu diễn các liên kết với chuỗi node-links Cây FP-tree thu được đã chứa toàn bộ thông tin

về CSDL Bằng cách này, vấn đề khai phá mẫu phổ biến trong CSDL được biến đổi hoàn toàn thành khai phá cây FP-tree

Như vậy một cây mẫu phổ biến (FP-tree) có cấu trúc như sau:

I4:1 I5:1

I1:1

I5:1 I1:1

Trang 32

1.Bao gồm một node gốc có nhãn là “null”, một tập các cây con tiền tố (item-prefix subtree) là con của node gốc, và một bảng frequent-item-header

2.Mỗi node trong cây con tiền tố (prefix subtree) bao gồm 3 trường :

item-name, count và node-link Trong đó, item-name là tên của node tương ứng với

các mục trong CSDL Count là số giao dịch được mô tả bởi một phần đường dẫn đến node này, và node-link liên kết tới node tiếp tiếp theo trong cây FP-tree

có cùng tên với node (cùng item-name), hoặc bằng null nếu không có node nào cùng tên

3.Mỗi mục trong bảng frequent-item-header bao gồm 3 trường: (1) Id_mục, (2)độ

hỗ trợ và (3)node-link ( chỉ đến node đầu tiên trong cây FP-tree có item-name

trùng với Id_mục)

Từ những phân tích trên, cây FP-tree được xây dựng bằng thuật toán giả mã như sau:

Input:

CSDL giao dịch D,

Ngưỡng hỗ trợ tối thiểu min-sup

Output: Cây mẫu phổ biến FP-tree tương ứng với CSDL giao dịch D

Phương pháp:

Cây FP-tree được xây dựng qua hai bước:

(a)- Quét CSDL lần đầu, tìm tập mục phổ biến F cùng với độ hỗ trợ của chúng -Sắp xếp các mục trong F theo thứ tự giảm dần của độ hỗ trợ, ta có danh sách tập mục phổ biến L đã sắp xếp

(b)- Tạo gốc T của cây, gán nhãn T= “null”

-Duyệt CSDL lần thứ hai, với mỗi giao dịch, loại bỏ những mục không phổ biến (độ hỗ trợ < min-sup), sắp xếp các mục phổ biến theo thứ tự L

-Xét chuỗi [pP] là danh sách các mục đã sắp xếp của một giao dịch, trong đó, p

là mục đầu tiên của danh sách, P là phần còn lại của danh sách Gọi thủ tục

Insert_tree (string [pP],T), với T là gốc của cây FP-tree đang cần tạo

Chi tiết về thủ tục Insert_tree (string [pP],T) mô tả dưới dạng giả mã như sau:

Procedure Insert_tree ( string [pP], T);

1.If T có node con N mà N.ItemName = p Then N.Count ++;

2.Else

3 Tạo node mới N;

Trang 33

4 N.ItemName := p; N.Count:=1;

5 Kết nối node gốc T với N;

6 Node-link của node N kết nối tới các node có cùng tên thông qua cấu trúc node-link

7.If P <>  Then Call Insert_tree ( P, N);

Hình 2.7 Một cây FP-tree đã đƣợc nén thông tin

2.3.2.2 Giai đoạn 2: Khai phá cây FP-tree để tìm mẫu phổ biến

x Cơ sở mẫu phụ thuộc Cây FP-tree Sinh các mẫu phổ biến

I5 {{I2,I1:1},{I2,I1,I3:1}} <I2:2,I1:2> {I2,I5:2},{I1,I5:2},{I2,I1,I5:2} I4 {{I2,I1:1},{I2:1}} <I2:2> {I2,I4:2}

I3 {{I2,I1:2},{I2:2},{I1:2}} <I2:4,I1:2>,<I1:2> {I2,I3:4},{I1,I3:4},{I2,I1,I3:2} I1 {{I2:4}} <I2:4> {I2,I1:4}

Bảng 2.2 : Khai phá cây FP-tree bằng cách tạo các cơ sở mẫu phụ thuộc

FP-tree được khai phá như sau Bắt đầu từ mẫu phổ biến có độ dài 1 (được coi như là

một mẫu hậu tố - suffix pattern ban đầu), cấu trúc của cây được xây dựng dựa trên cơ

sở mẫu phụ thuộc - conditional pattern base (được coi như là một “CSDL con –

subdatabase”, bao gồm tập đường dẫn tiền tố - prefix path trong FP-tree cùng xảy ra

với mẫu hậu tố), sau đó xây dựng chính cây FP-tree của nó, và thực hiện khai phá đệ quy trên một cây Mẫu phát triển (pattern growth) hình thành bằng cách móc nối mẫu hậu tố với các mẫu phổ biến sinh ra từ một cây điều kiện FP-tree

Khai phá FP-tree được tổng hợp trong Bảng 2.2 và chi tiết như sau Đầu tiên chúng ta xét I5, đây là mục cuối cùng trong L I5 xuất hiện ở hai nhánh của FP-tree trong

Trang 34

Hình.2.7 (Sự hiện diện của I5 trên cây FP-tree có thể dễ dàng tìm thấy bằng chuỗi

node-links của nó) Đường dẫn hình thành bởi các nhánh là <I2, I1, I5:1> và <I2, I1,

I3, I5 :1> Do đó, coi I5 như một hậu tố, bản thân nó tương ứng với hai đường dẫn tiền

tố là <I2, I1 : 1> và <I2, I1, I3 : 1>, được gán cho cơ sở mẫu phụ thuộc của I5 Cây điều kiện FP-tree của nó chỉ bao gồm một đường dẫn đơn, <I2:2, I1:2>; không bao gồm I3 bởi vì số đếm hỗ trợ của nó bằng 1, ít hơn so với số đếm hỗ trợ tối thiểu (min-sup count = 2) Đường dẫn đơn sinh tất cả các liên kết (combinations) của các mẫu phổ biến : {I2, I5:2},{I1, I5:2},{I2,I1, I5:2}

Đối với I4, hai cơ sở mẫu phụ thuộc được tạo ra dựa trên cơ sở mẫu hậu tố là {{I2 I1:1}, {I2:1}}, từ đó tạo ra cây điều kiện FP-tree chỉ có một node đơn <I2:2>, do đó nhận một mẫu phổ biến, {I2,I1:2}

Hình 2.8 Cây điều kiện FP-Tree ứng với node I3

Giống như phân tích ở trên, cơ sở mẫu phụ thuộc của I3 là {{I2,I1:2}, {I2:2}, {I1:2}} Cây điều kiện FP-tree của nó bao gồm hai nhánh, < I2:4, I1:2> và <I1:2>, như được thể hiện trong Hình.2.8, từ đó sinh được tập các mẫu phổ biến là , {{I2,I3:4}, {I1,I3:4}, {I2, I1,I3:2}} Chú ý rằng mặc dầu I5 đứng ngay sau I3 trong nhánh đầu tiên, nhưng ta thấy không có I5 trong phân tích ở đây, bởi vì một vài mẫu phổ biến đã chứa I5 được phân tích ứng với lần xét I5

Cuối cùng thì cơ sở mẫu điều kiện của I1 là {{I2:4}}, trong đó FP-tree chỉ bao gồm một node, <I2:4>,và sinh ra một mẫu phổ biến, {I2, I1:4} Thuật toán khai phá này được tổng hợp trongBảng 2.2

Như vậy, để khai phá tập mục phổ biến từ cây FP-tree, ta sẽ gọi thủ tục viết dưới dạng giả mã như sau:

Procedure FP-growth ( Tree, )

Trang 35

// là mẫu hậu tố ứng với cây Tree

1.If Tree chứa một đường dẫn đơn P Then

2 For mỗi tổ hợp (ký hiệu bởi ) của các node trong đường P

3 Sinh mẫu   với support-count = Min (support-count của các node

trong );

4.Else Với mỗi mục ai trong bảng header của Tree {

5 Sinh mẫu : = a i với support_count = a i support_count

6 Xây dựng cơ sở mẫu phụ thuộc của , từ đó xây dựng cây phụ thuộc tree của  gọi là Tree

FP-7.If Tree <> Then FP-growth (Tree, ) }

2.3.2.3 Ưu điểm của phương pháp FP-growth

Phương pháp FP-growth biến đổi vấn đề tìm kiếm trên các mẫu phổ biến dài bằng tìm kiếm những mẫu ngắn hơn một cách đệ quy và sau đó móc nối thêm hậu tố

Nó sử dụng các mục phổ biến cuối cùng như một hậu tố, để đề xuất một sự lựa chọn tốt Cách thức này thực sự đã làm giảm chi phí tìm kiếm

Khi CSDL lớn, đôi khi xây dựng cây FP-tree dựa trên cơ sở một bộ nhớ chính là không thực tế Một thay thế thú vị khác là đầu tiên phân chia CSDL thành một

tập CSDL dự án (project databases), sau đó xây dựng một FP-tree và khai phá

nó trong mỗi CSDL dự án Áp dụng đệ quy với CSDL dự án nếu cây FP-tree của nó chưa vừa vặn trong bộ nhớ chính

Qua nghiên cứu cho thấy phương pháp FP-growth hiệu quả đối với cả khai phá mẫu phổ biến ngắn và khai phá mẫu phổ biến dài là tốc độ xử lý nhanh hơn thuật toán Apriori

2.4 Giới thiệu một số thuật toán khai phá tập mục phổ biến khác

2.4.1 Thuật toán Apriori-TID

Như đã biết, thuật toán Apriori quét toàn bộ CSDL trong mỗi giai đoạn để tính độ hỗ trợ Việc quét toàn bộ CSDL có thể không cần thiết trong mọi giai đoạn Với ý tưởng này, Agrawal đã đề xuất thuật toán Apriori-TID Tương tự như thuật toán Apriori,

thuật toán này cũng sử dụng hàm Apriori-gen() để xác định các tập mục ứng viên

Trang 36

trước khi bắt đầu mỗi giai đoạn Điểm khác nhau chủ yếu của thuật toán này so với Apriori là nó không sử dụng CSDL để tính độ hỗ trợ trong các giai đoạn ( với k>1) Thay vào đó, nó sử dụng mã hóa các tập mục ứng viên đã được sử dụng trong giai đoạn trước, Ck’ Nhiều thí nghiệm trên nhiều CSDL chỉ ra rằng thuật toán Apriori cần

ít thời gian hơn Apriori-TID trong các giai đoạn đầu, tuy nhiên lại mất nhiều thời gian hơn trong các giai đoạn sau [9]

2.4.2 Thuật toán Apriori-Hybrid

Thuật toán này dựa vào ý tưởng sau: “ Không nhất thiết phải áp dụng cùng một thuật toán cho tất cả các giai đoạn lên dữ liệu” Như đã đề cập ở trên, thuật toán Apriori thực hiện hiệu quả ở các giai đoạn đầu, thuật toán Apriori-TID thực hiện hiệu quả ở các giai đoạn sau Kết hợp hai thuật toán trên, phương pháp này sử dụng thuật toán Apriori ở giai đoạn đầu, và sử dụng thuật toán Apriori-TID ở các giai đoạn sau [9]

2.4.3 Thuật toán AIS ( Agrawal Imielinski Swami)

Trong thuật toán AIS, tập các mục ứng viên được sinh ra và được tính khi quét toàn bộ CSDL Với mỗi giao dịch T, thuật toán chọn tập các mục phổ biến nào đã được phát hiện ở các giai đoạn trước có chứa giao dịch T Các tập mục ứng viên mới được sinh ra bằng việc mở rộng các tập mục phổ biến này với các mục khác trong giao dịch T [8,9]

2.4.4 Thuật toán DIC ( Dynamic Itemset Counting)

Thuật toán DIC bắt đầu tính độ hỗ trợ cho k-tập mục sau khi quét (k-1)M giao dịch, M< và dừng việc tính sau khi k-tập mục được tìm thấy trong tất cả các giao dịch Thuật toán Apriori là trường hợp đặc biệt của thuật toán DIC, ứng với M= Vì vậy, thuật toán DIC thực hiện tốt hơn thuật toán Apriori nếu M được chọn thích hợp [9]

2.4.5 Thuật toán phân hoạch

Thuật toán này chia CSDL thành các phân hoạch nhỏ, mỗi phân hoạch có thể được lưu trữ trên bộ nhớ chính Cho các phân hoạch của CSDL D là D1, D2, , Dn Lần quét đầu tiên, thuật toán tìm tập mục phổ biến trên mỗi phân hoạch Di ( 1≤ i gọi là tập mục phổ biến cục bộ Mỗi tập mục phổ biến cục bộ Li có thể được tìm thấy bằng cách

sử dụng thuật toán Apriori Lần quét thứ hai, thuật toán này sử dụng tính chất sau: tập

Trang 37

mục phổ biến thỏa mãn trên CSDL toàn cục thì cũng là tập mục phổ biến cục bộ trong

ít nhất một phân hoạch nào đó của CSDL Ta hợp các tập mục phổ biến cục bộ được tìm thấy trong mỗi phân hoạch để tạo ra các tập mục ứng viên và thực hiện tính độ hỗ trợ tổng thể trên CSDL D, để tìm tất cả các tập mục phổ biến Thuật toán này thực thi tốt trên các máy tính song song Thuật toán Apriori chỉ thực hiện tốt hơn thuật toán phân hoạch khi nào ngưỡng hỗ trợ lớn [9]

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

2.5.1 Một số hướng tiếp cận trong khai phá luật kết hợp

Lĩnh vực khai thác luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng khác nhau, như đề xuất nhằm cải tiến tính hiệu quả của một số thuật toán đã có hay đề xuất tìm kiếm các luật có ý nghĩa và đáng tin cậy hơn, v.v Một số hướng khai phá luật kết hợp được đề cập ở đây như:

Khai phá luật kết hợp nhị phân (binary association rule ): là hướng nghiên cứu

đầu tiên của luật kết hợp Trong đó các mục(item) trong CSDL giao dịch đều là các thuộc tính Boolean thể hiện sự xuất hiện hay không xuất hiện của một mục hàng trong một giao dịch và đặc biệt là vai trò của chúng được xem là tương đương nhau Ví dụ: Trong một giao dịch, việc bán một mặt hàng bột giặt và máy giặt được xem là tương đương nhau Trên thực tế, việc bán một chiếc máy giặt đem lại lợi nhuận lớn hơn rất nhiều so với việc bán một túi bột giặt Thuật toán tiêu biểu nhất của khai phá dạng luật này là thuật toán Apriori

Khai phá luật kết hợp có trọng số ( Mining Weighted Association Rules): đây là

hướng khai phá mở rộng cho bài toán khai phá luật kết hợp nhị phân Trong đó phương pháp này quan tâm đến tầm quan trọng của các mục khác nhau trong CSDL Các mục quan trọng thường là các mục đem lại nhiều lợi nhuận Để xác định tầm quan trọng của các mục, người ta gán cho mỗi mục một giá trị mô tả mức độ quan trọng của các mục Giá trị này thường được cho kèm theo bảng CSDL giao dịch và được gọi là trọng số mục Trọng số càng lớn, mức độ quan trọng càng cao và ngược lại Nhờ vậy, ta có thể thu được những luật “hiếm” ( tức là các luật có độ hỗ trợ thấp nhưng mang nhiều ý nghĩa) Bài toán khai phá luật kết hợp trên những CSDL được đánh trọng số như trên được C.H.Cai, Ada W.C.Fu, C.H Cheng và W.W Kwong giới thiệu năm 1998

Trang 38

Khai phá luật kết hợp định lượng (Mining Quantitive Association Rules): Các

thuộc tính trong cơ sở dữ liệu được phân làm hai loại là thuộc tính định lượng

và thuộc tính phân loại Thực hiện việc ánh xạ các thuộc tính định lượng và phân loại sang dạng nhị phân, từ đó áp dụng các phương pháp khai phá luật kết hợp nhị phân để tìm các luật mạnh

Khai phá luật kết hợp tiếp cận theo hướng tập thô ( Mining association rules

base on rough set ): tìm kiếm luật kết hợp dựa trên lí thuyết tập thô

Khai phá luật kết hợp đa mức ( Multi-level association rules ): với cách tiếp

cận luật kết hợp thế này sẽ tìm kiếm thêm những luật có dạng : mua máy tính PC mua hệ điều hành Window và mua phần mềm văn phòng Microsoft Office,… Khai phá luật kết hợp đa mức sử dụng một số chiến lược, dựa trên các ngưỡng hỗ trợ tối thiểu được định nghĩa ở mỗi mức trừu tượng, như là uniform support, reduced support, và group-based support Dự phòng đa mức các luật kết hợp (hậu duệ) có thể bị loại bỏ nếu ngưỡng hỗ trợ và tin cậy của chúng gần với giá trị dự kiến, dựa trên luật gốc tương ứng của chúng

Khai phá luật kết hợp mờ (Fuzzy association rules ): Với những khó khăn gặp

phải khi rời rạc hoá các thuộc tính số, các nhà nghiên cứu đề xuất luật kết hợp

mờ để khắc phục hạn chế đó và chuyển luật kết hợp về một dạng gần gũi hơn

Khai phá luật kết hợp song song (Parallel mining of association rule ) Nhu cầu

song song hoá và xử lí phân tán là cần thiết vì kích thước dữ liệu ngày càng lớn nên đòi hỏi tốc độ xử lí phải được đảm bảo

Trên đây là những biến thể của khai phá luật kết hợp cho phép ta tìm kiếm luật kết hợp một cách linh hoạt trong những cơ sở dữ liệu lớn Trong phần tiếp theo luận

văn sẽ làm rõ hơn về hướng Khai phá luật kết hợp định lượng (Mining Quantitive

Association Rules)

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

2.5.2.1 Tổng quan về khai phá luật kết hợp định lượng

Từ khi được đề xuất vào năm 1993, mô hình bài toán khai phá luật kết hợp nhị phân đã được nghiên cứu và ứng dụng hiệu quả trong nhiều lĩnh vực, tuy nhiên nó cũng cho thấy một số hạn chế, đó là:

Chỉ quan tâm đến ngữ nghĩa thống kê của vấn đề

Trang 39

Vai trò của các mục trong CSDL là tương đương nhau

Không quan tâm đến các đặc tính dữ liệu vốn có của các mục

Do vậy, việc phát triển các mô hình mở rộng mới là nhu cầu tất yếu Bài toán khai phá luật kết hợp nhị phân là một trong những hướng phát triển của bài toán khai phá luật kết hợp

Như chúng ta đã đề cập ở các phần trước, tất các các mục trên các bảng CSDL quan hệ đều thể hiện ở hai trạng thái là sự xuất hiện hay không xuất hiện mục đó trong mỗi giao dịch, nghĩa là chúng đều tồn tại ở dạng nhị phân Trên bảng quan hệ, mỗi mục

tương ứng với một item, mỗi bản ghi tương ứng với một giao dịch (Transaction) Giá

trị mỗi mục trong mỗi bản ghi bằng 1 nếu mục này là một mặt hàng được mua trong ít nhất một giao dịch, ngược lại thì bằng 0 Bài toán khai phá luật kết hợp nhị phân cũng

đã được đề cập đến trong phần 2.5.1 theo hướng xác định tầm quan trọng của các mục

trong dữ liệu, bằng việc gán giá trị trọng số cho các mục (Khai phá luật kết hợp có

trọng số) Tuy nhiên, trên thực tế, các bảng trong CSDL được tổ chức với nhiều kiểu

dữ liệu khác nhau, có thể chia thành hai loại:

Chứa các thuộc tính định lƣợng (Quantitative) Ví dụ: tuổi, lương,

Chứa các thuộc tính phân loại (Categorical) Ví dụ: biển số xe, CMTND,

No Yes Yes

Bảng 2.3 Bảng “People” chứa thuộc tính định lượng và phân loại

Trong Bảng 2.3, các thuộc tính như “Tuổi” và “Số lượng xe” là các thuộc tính định

lượng (Quantitative), và thuộc tính “Đã kết hôn” là thuộc tính phân loại (Categorical) Bài toán khai phá luật kết hợp trên các bảng dữ liệu chứa các thuộc tính định lượng và

thuộc tính phân loại như trên được gọi là Bài toán khai phá luật kết hợp định lƣợng

(Mining Quantitative Asociation Rules) được đề xuất bởi R.Srikant và R.Agrawal,

1996 [5] Áp dụng những kỹ thuật đã biết đối với bài toán Khai phá luật kết hợp nhị

Trang 40

phân, luận văn này sẽ trình bầy những kỹ thuật được áp dụng trong Bài toán khai phá luật kết hợp định lượng với mục đích đưa ra những mẫu luật có dạng:

(Biết rằng: min-sup = 40%, min-conf =50%)

Luật ( mẫu) Độ hỗ trợ Độ tin cậy

<Tuổi: 30 39> và <Đã kết hôn: Yes>  <Số lượng xe: 2>

<Số lượng xe: 0 1>  < Đã kết hôn: No>

40%

40%

100% 66.6%

2.5.2.2 Ánh xạ từ bài toán khai phá luật kết hợp định lƣợng về bài toán khai phá luật kết hợp nhị phân

Để áp dụng được các thuật toán khai phá đã có đối với luật kết hợp nhị phân, ta phải

thực hiện việc ánh xạ các thuộc tính định lượng (quantitative) và các thuộc tính phân loại (categorical) về dạng các thuộc tính nhị phân Tư tưởng của phương pháp ánh xạ

này được thể hiện như sau:

 Đối với các mục phân loại hoặc các mục định lượng chỉ có một vài giá trị thì

việc ánh xạ các mục này thành các mục nhị phân được thực hiện như sau:

o Nếu mục phân loại (categrical) có n loại hoặc các mục định lượng

(quantitative) có n giá trị thì ta xây dựng n mục nhị phân tương ứng với

n cặp có dạng: (mục x, giá trị 1), (mục x, giá trị 2), , ( mục x, giá trị n)

oMỗi mục nhị phân này sẽ nhận một trong hai giá trị 0 hoặc 1 Trong đó,

với k = 1 n; (mục x, giá trị k) có giá trị bằng 1 nếu mục x có giá trị bằng

k trên bản ghi gốc, các mục còn lại tương ứng của x sẽ có giá trị bằng 0

Nếu miền giá trị của mục định lượng rộng, ta sẽ chia miền giá trị thành các khoảng (interval) và sau đó tiến hành ánh xạ từng cặp (mục, khoảng) của mục

định lượng tương ứng với một mục nhị phân

Ví dụ 2.5 Ánh xạ các mục định lƣợng/phân loại sang dạng nhị phân

Từ Bảng 2.3, ánh xạ các mục phân loại và định lượng sang dạng nhị phân như sau:

ID Tuổi

20 29

Tuổi 30 39

Đã kết hôn (Yes)

Đã kết hôn ( No)

Ngày đăng: 25/03/2015, 09:38

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

w