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

Khai thác luật kết hợp có trọng số trong cơ sở dữ liệu: luận văn thạc sĩ

76 39 0

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 76
Dung lượng 1,56 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ô hình đầu tiên mô hình nhị phân của bài toán khai thác luật kết hợp được giới thiệu bởi Agrawal và cộng sự vào năm 1993, khi nghiên cứu phát hiện các mối quan hệ giữa các mặt hàng mục

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

Người hướng dẫn khoa học: PGS.TS Nguyễn Thanh Tùng

Đồng Nai, năm 2017

Trang 3

LỜI CẢM ƠN

Lời đầu tiên, tôi xin gửi lời cảm ơn chân thành nhất đến thầy hướng dẫn PGS.TS Nguyễn Thanh Tùng - Viện Công Nghệ Thông Tin, người đã tận tình giảng dạy, hướng dẫn, chỉ bảo, động viên tôi trong suốt thời gian học tập và làm luận văn

Tôi xin gửi lời cảm ơn sâu sắc đến các Thầy/Cô giáo Khoa Công nghệ thông tin - Trường Đại học Lạc Hồng đã trực tiếp giảng dạy tôi trong hai năm học qua

Tôi xin gửi lời cảm ơn đến lãnh đạo Trường Đại Học Lạc Hồng đã tạo điều kiện về cơ sở vật chất để tôi có thể hoàn thành chương trình học của mình

Mặc dù trong quá trình làm luận văn tôi đã có nhiều cố gắng để hoàn thành luận văn một cách tốt nhất, tuy nhiên không tránh khỏi thiếu sót, rất mong nhận được sự góp ý của các thầy cô giáo và đồng nghiệp

Đồng Nai, ngày 16 tháng 12 năm 2016

Học viên

HỒ XUÂN KIÊN

Trang 4

LỜI CAM ĐOAN

Tôi xin cam đoan:

Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn của thầy PGS.TS Nguyễn Thanh Tùng

Mọi tham khảo sử dụng trong luận văn đều được trích dẫn rõ ràng tác giả, tên công trình, thời gian, địa điểm công bố

Tôi xin chịu mọi trách nhiệm với lời cam đoan này

Đồng Nai, ngày 16 tháng 12 năm 2016

Học viên

HỒ XUÂN KIÊN

Trang 5

MỤC LỤC

Trang phụ bìa

Lời cảm ơn

Lời cam đoan

Mục lục

Danh mục các ký hiệu, các chữ viết tắt

Danh mục bảng

Danh mục hình vẽ

Mở đầu 10

Chương 1 Khái quát về khai phá dữ liệu và vấn đề khai thác luật kết hợp 12

1.1 Khai phá dữ liệu 12

1.2 Khai phá luật kết hợp 16

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

1.2.2 Phát biểu bài toán khai phá luật kết hợp 18

1.2.3 Các tính chất của tập mục thường xuyên và luật kết hợp 21

1.2.3.1 Các tính chất của TMTX 21

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

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

1.2.5 Một số thuật toán khai phá luật kết hợp 24

1.2.5.1 Thuật toán Apriori 24

1.2.5.2 Thuật toán FP-Growth 31

1.2.6 Mở rộng bài toán khai phá TMTX 35

1.3 Kết luận chương 1 36

Chương 2 Các mô hình và thuật toán khai thác luật kết hợp có trọng số 37

2.1 Yêu cầu phải xem xét trọng số 37

2.2 Khai thác luật kết hợp có trọng số không chuẩn hóa, thuật toán MINWAL(O) 38

2.2.1 Mô hình bài toán 38

2.2.2 Thuật toán MINWAL(O) khai phá tập mục thường xuyên có trọng số 42

2.2.2.1 Cơ sở toán học 42

Trang 6

2.2.2.2 Thuật toán MINWAL(O) 45

2.3 Khai thác luật kết hợp có trọng số chuẩn hóa, thuật toán MINWAL(W) 56

2.3.1 Mô hình bài toán 56

2.3.2 Thuậ toán MINWAL(W) khai phá tập mục thường xuyên có trọng số chuẩn hóa 58

2.3.2.1 Cơ sở toán học 58

2.3.2.2 Thuật toán MINWAL(W) 59

2.4 Kết luận chương 2 66

Chương 3 Cài đặt thuật toán và các kết quả tính toán thử nghiệm 67

3.1 Giới thiệu bài toán 67

3.2 Cài đặt thuật toán 67

3.2.1 Môi trường cài đặt 67

3.2.2 Giao diện sử dụng và các chức năng chương trình 68

3.3 Đánh giá kết quả và hướng phát triển 73

3.4 Kết luận chương 3 73

Kết luận 74

Tài liệu tham khảo

Trang 7

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

Từ viết tắt Từ hoặc cụm từ

CSDL Cơ sở dữ liệu

CNTT Công nghệ thông tin

KDD Knowledge Discovery in Databases

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

Trang 9

DANH MỤC HÌNH

Hình 1.1 Các bước trong quá trình khám phá tri thức 14 Hình 3.1 Sơ đồ chức năng của chương trình 68

Hình 3.3 Form nhập mã hàng với trọng số tương ứng 69 Hình 3.4 Form nhập hóa đơn khách hàng 69 Hình 3.5 Chương trình minh họa thuật toán Apriori 70 Hình 3.6 Hình minh họa thuật toán MINWAL(O) 71 Hình 3.7 Minh họa thuật toán MINWAL(W) 72

Trang 10

MỞ ĐẦU

Lý do chọn đề tài

Khai thác luật kết hợp (Association Rule Mining) là một kỹ thuật quan trọng,

có nhiều ứng dụng của khai thác dữ liệu Mô hình đầu tiên (mô hình nhị phân) của bài toán khai thác luật kết hợp được giới thiệu bởi Agrawal và cộng sự vào năm

1993, khi nghiên cứu phát hiện các mối quan hệ giữa các mặt hàng (mục dữ liệu - items) trong cơ sở dữ liệu giao tác của các siêu thị [4] Sau công trình kinh điển này, vấn đề khai thác luật kết hợp trong cơ sở dữ liệu (CSDL) được rất nhiều nhà nghiên cứu lý thuyết và ứng dụng quan tâm Nhiều thuật toán mới, hiệu quả khai thác luật kết hợp, cũng như mô hình mở rộng bài toán đã được các nhà nghiên cứu đề xuất

Mô hình nhị phân của bài toán khai thác luật kết hợp có một số hạn chế, không đáp ứng được những tình huống khác nhau trong thực tiễn Một trong những hạn chế là trong mô hình này tất cả các mục dữ liệu được xử lý như nhau (xuất hiện hay không xuất hiện trong một giao tác), nhưng trên thực tế chúng có tầm quan

trọng khác nhau Nhằm khắc phục hạn chế này người ta đã đề xuất mô hình khai

thác luật kết hợp có trọng số, trong đó các mặt hàng được gán cho các trọng số khác

nhau tùy theo mức độ quan trọng của chúng trong việc mang lại lợi nhuận trong kinh doanh

Những năm gần đây, khai thác luật kết hợp có trọng số đã trở thành một đề tài hấp dẫn, một nội dung quan trọng của khai thác dữ liệu, thu hút sự quan tâm của nhiều nhà nghiên cứu và ứng dụng Sau công trình đầu tiên của Cai C.H và cộng sự [5], với hai thuật toán MINWAL(O) và MINWAL(W), các nhà nghiên cứu đã liên tục phát triển và đề xuất các thuật toán mới: thuật toán WARM bởi Tao F [7], WAR bởi Wang W và cộng sự [8], WFIM bởi Yun U và Leggett J J [9], SPWIP-tree của Chowdhury Farhan Ahmed và cộng sự [6]

Mục tiêu của đề tài

Nghiên cứu bài toán khai phá luật kết hợp có trọng số trong cơ sở dữ liệu (CSDL) lớn với một số định nghĩa về độ hỗ trợ có trọng số của một tập mục

Nghiên cứu một số thuật toán hiệu quả khai phá tập mục thường xuyên có trọng số, từ đó phát hiện các luật kết hợp có trọng số

Trang 11

Phương pháp nghiên cứu

Nghiên cứu lý thuyết: tham khảo các tài liệu, tạp chí khoa học có liên quan

trong và ngoài nước;

Phương pháp chuyên gia: Xin ý kiến đánh giá của các chuyên gia để xem

xét và xác nhận một số vấn đề trong quá trình nghiên cứu từ đó tìm ra được giải pháp tối ưu cho vấn đề đang nghiên cứu

Thực nghiệm: Viết chương trình để thử nghiệm các thuật toán nghiên cứu

Ý nghĩa khoa học và thực tiễn của đề tài nghiên cứu

Khai phá luật kết hợp có trọng số là một nội dung quan trọng của khai phá dữ liệu, khám phá tri thức Cũng như khai phá luật kết hợp kinh điển, khả năng ứng dụng thực tiễn của khai phá luật kết hợp có trọng số là rất lớn, đặc biệt trong việc phân tích dữ liệu kinh doanh nhằm mang lại lợi ích cao, … Do đó, việc nghiên cứu

về lý thuyết, các thuật toán và khả năng ứng dụng khai phá luật kết hợp có trọng số

là đề tài rất thực tế và có tính ứng dụng cao

Cấu trúc luận văn

Ngoài phần mở đầu và kết luận thì luận văn gồm 3 chương:

Chương 1 Khái quát về khai thác dữ liệu và vấn đề khai thác luật kết hợp Chương 2 Các mô hình và thuật toán khai thác luật kết hợp có trọng số Chương 3 Cài đặt các thuật toán và các kết quả tính toán thử nghiệm

Trang 12

CHƯƠNG 1 KHÁI QUÁT VỀ KHAI PHÁ DỮ LIỆU

VÀ VẤN ĐỀ LUẬT KẾT HỢP

1.1 Khai phá dữ liệu

Sự phát triển nhanh chóng các ứng dụng công nghệ thông tin (CNTT) và Internet vào nhiều lĩnh vực đời sống xã hội, quản lý kinh tế, khoa học kỹ thuật…đã tạo ra nhiều cơ sở dữ liệu (CSDL) khổng lồ Ví dụ như CSDL siêu thị Walmart (Mỹ) chứa hơn 20 triệu giao tác bán hàng; CSDL nhân khẩu TP Hồ Chí Minh với hơn 5 triệu nhân khẩu [3]…

Để khai phá hiệu quả nguồn thông tin từ các CSDL lớn hỗ trợ tiến trình ra quyết định thì bên cạnh các phương pháp khai phá thông tin truyền thống, các nhà nghiên cứu đã phát triển các phương pháp, kỹ thuật và phần mềm mới hỗ trợ tiến trình khám phá, phân tích, tổng hợp thông tin [3]

Theo đánh giá của IBM, các phương pháp khai phá thông tin truyền thống chỉ thu được 80% thông tin từ CSDL, phần còn lại bao gồm các thông tin mang tính khái quát, thông tin có tính quy luật vẫn còn đang tiềm ẩn trong dữ liệu Lượng thông tin này tuy nhỏ nhưng là những thông tin cốt lõi và cần thiết cho tiến trình ra quyết định [3]

Khai phá dữ liệu (Data Mining) là tiến trình khám phá tri thức tiềm ẩn trong CSDL Cụ thể đó là tiến trình trích lọc, sản sinh những tri thức hoặc các mẫu tiềm

ẩn, chưa biết nhưng hữu ích từ CSDL lớn [3]

Khai phá dữ liệu là tiến trình khái quát các sự kiện rời rạc trong dữ liệu thành các tri thức mang tính khái quát, tính quy luật hỗ trợ tích cực cho các tiến trình ra quyết định

Có thể chia các kỹ thuật khai phá dữ liệu thành 2 dạng chính [3]:

 Khai phá dữ liệu theo hướng kiểm tra: Người dùng đề xuất giả thiết, hệ thống kiểm tra tính đúng đắn của giả thiết Khai thác dữ liệu theo hướng kiểm tra bao gồm: truy vấn, báo cáo, phân tích đa chiều, phân tích thống kê…

Trang 13

 Khai phá dữ liệu theo hướng khám phá: Sẽ tìm kiếm các tri thức tiềm ẩn trong CSDL bằng cách tiến hành xem xét tất cả các giả thiết khả dĩ

Tri thức được rút ra có thể được dùng để [3]:

 Giải thích dữ liệu: Cung cấp sự hiểu biết sâu sắc và rất hữu ích về hành vi của các đối tượng, giúp cho doanh nghiệp hiểu rõ hơn về khách hàng của

họ

 Dự báo: Dự đoán giá trị của những đối tượng mới như khuynh hướng mua hàng của khách hàng; xác định rủi rõ tín dụng đối với một khách hàng; định hướng tập trung nguồn lực của doanh nghiệp

Khai phá dữ liệu được coi là một bước trong quá trình khám phá tri thức (Knowledge Discovery in Databases – KDD) và là giai đoạn quan trọng nhất trong tiến trình khám phá tri thức từ cơ sở dữ liệu, các tri thức này có rất nhiều ý nghĩa, là

cơ sở hỗ trợ trong việc ra quyết định trong khoa học và kinh doanh

Các bước trong quá trình khám phá tri thức:

 Làm sạch dữ liệu (Data cleaning): Loại bỏ dữ liệu nhiễu hoặc dữ liệu không thích hợp

 Tích hợp dữ liệu (Data Intergration): Tích hợp dữ liệu từ các nguồn khác nhau như cơ sở dữ liệu (CSDL), kho dữ liệu, file text,

 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 ban đầu (database, data warehouses,…) theo một số tiêu chí nhất định

 Biến đổi dữ liệu (data transformation): Chuẩn hoá và làm mịn dữ liệu, đưa

dữ liệu về dạng thuận lợi nhất, phù hợp cho việc khai phá bằng cách thực hiện các thao tác nhóm hoặc tập hợp

 Khai phá dữ liệu (data mining): Là giai đoạn thiết yếu, đây là bước quan trọng và tốn nhiều thời gian nhất của toàn bộ quá trình khám phá tri thức, là bước áp dụng những kỹ thuật khai phá để khai thác, trích xuất thông tin có ích, những mẫu điển hình, những mối liên hệ đặc biệt có nhiều giá trị, mang nhiều ý nghĩa từ dữ liệu

Trang 14

 Đánh giá mẫu (Pattern Evaluation): Đánh giá sự hữu ích của các mẫu biểu diễn tri thức dựa vào một số phép đo

 Trình bày tri thức (knowledge presentation): Sử dụng các kỹ thuật trình bày

và trực quan hoá dữ liệu để biểu diễn tri thức khai phá được cho người sử dụng

Databases Data Integration

Selection

Data Cleaning

Hình 1.1: Các bước trong quá trình khám phá trí thức

Các kỹ thuật khai phá dữ liệu:

Khai thác tập mục thường xuyên và luật kết hợp: Là kỹ thuật khám phá

các tập giá trị thuộc tính xuất hiện phổ biến trong các đối tượng dữ liệu Từ tập phổ biến có thể tạo ra các luật kết hợp giữa các giá trị thuộc tính nhằm phản ánh khả năng xuất hiện đồng thời các giá trị thuộc tính trong tập các đối tượng Một luật kết hợp X  Y phản ánh sự xuất hiện của tập X dẫn đến sự xuất hiện đồng thời tập Y Trong CSDL bán hàng, một luật kết hợp tiêu biểu

là như sau: “Có 67% khách hàng mua bia 333, rượu Nàng Hương thì mua bánh tôm Cầu Tre” Luật kết hợp giúp các nhà hoạch địch hiểu rõ xu thế bán hàng, tâm lý khách hàng… từ đó đưa ra các chiến lược bố trí mặt hàng, kinh doanh, tiếp thị, …

Khai thác mẫu tuần tự: Là kỹ thuật khám phá các mẫu tuần tự phổ biến

phản ánh mối quan hệ giữa các biến cố trong các CSDL hướng 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

Trang 15

của biến cố X sẽ dẫn đến việc xuất hiện kế tiếp biến cố Y Một luật thể hiện mẫu tuần tự tiêu biểu: “Có 80% khách hàng mua áo thun Việt Tiến, mua bóng động lực thì sau 3 ngày mua quần Việt Tiến” Nhờ mẫu tuần tự, có thể khám phá các xu thế phát triển hành vi của đối tượng

Phân lớp dữ liệu: Là kỹ thuật khám phá các luật phân loại các đối tượng từ

tập các đối tượng đã được xếp lớp với các đặc trưng (thuộc tính) của chúng Tập dữ liệu đã được xếp lớp này được gọi là tập dữ liệu học hay tập dữ liệu huấn luyện Các luật phân lớp khám phá được sẽ được sử dụng để xây dựng các bộ phân lớp dữ liệu Phân lớp dữ liệu có vai trò quan trọng trong tiến trình dự báo các khuynh hướng, các quy luật phát triển Áp dụng kỹ thuật phân lớp khai phá CSDL khách hàng có thể xây dựng được các luật phân lớp khách hàng Một luật phân lớp tiêu biểu là như sau: “Nếu khách hàng ở khu vực 1 và có doanh số năm trước > 200 triệu và có cửa hàng ở khu thị tứ thì thuộc loại khách hàng có thể giao hàng trước trả tiền sau”

Gom cụm dữ liệu: Là kỹ thuật nhận diện các cụm tiềm ẩn trong tập đối

tượng chưa được xếp lớp Tiến trình khai thác cụm dựa trên mức độ tượng tự giữa các đối tượng Các đối tượng được gom cụm sao cho mức độ tương tự giữa các đối tượng trong cùng một cụm là cực đại và mức độ tượng tự giữa các đối tượng nằm trong các cụm khác nhau là cực tiểu Các cụm được đặc trưng bằng các tính chất chung của tất cả đối tượng trong cụm Do vậy, khảo sát các cụm sẽ giúp khái quát, tổng kết nhanh chóng nội dung của khối dữ liệu lớn

Hiện nay, các kỹ thuật khai phá dữ liệu có thể làm việc với rất nhiều kiểu dữ liệu khác nhau Một số dạng dữ liệu điển hình là: CSDL quan hệ, CSDL giao tác, CSDL quan hệ hướng đối tượng, dữ liệu không gian và thời gian, CSDL đa phương tiện, dữ liệu văn bản và web,

Những ứng dụng điển hình của khai phá dữ liệu:

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

 Text mining & Webmining: phân lớp văn bản và các trang web, tóm tắt văn bản, tìm kiếm thông tin,…

Trang 16

 Tin – sinh học: tìm kiếm, đối sánh các quan hệ gen và thông tin di truyền, mối liên hệ giữa một số hệ gen và một số bệnh di truyền, …

 Điều trị y học (medical treatment): mối liên hệ giữa triệu chứng, chẩn đoán

và phương pháp điều trị (chế độ dinh dưỡng, thuốc men, …)

 Tài chính và thị trường chứng khoán (finance & stock market): phân tích tình hình tài chính và dự báo giá của các loại cổ phiếu trong thị trường chứng khoán, …

Mặc dù nổi lên như là một lĩnh vực khoa học tiềm năng, phát triển rất nhanh chóng, nhưng khai phá dữ liệu cũng phải đối mặt với nhiều thách thức Các thách thức lớn thường được nhắc tới là:

 Số đối tượng cũng như số chiều (thuộc tính) trong cơ sở dữ liệu khai phá thường là rất lớn

 Dữ liệu và tri thức luôn thay đổi có thể làm cho các mẫu đã phát hiện không còn phù hợp

 Dữ liệu bị thiếu hoặc nhiễu

 Quan hệ phức tạp giữa các thuộc tính

 Giao tiếp với người sử dụng và kết hợp với các tri thức đã có

 Tích hợp với các hệ thống khác

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

Khai phá luật kết hợp đóng vai trò quan trọng trong khai phá dữ liệu Khai phá luật kết hợp là phát hiện những mối quan hệ giữa các mục dữ liệu Mô hình bài toán khai phá luật kết hợp đầu tiên được giới thiệu bởi Agrawal và cộng sự vào năm

1993 khi phân tích cơ sở dữ liệu bán hàng của siêu thị [4] Đến nay, bài toán trong

mô hình đầu tiên này được gọi là bài toán khai phá luật kết hợp nhị phân (hay bài

toán khai phá luật kết hợp cơ bản), ở đây ta chỉ quan tâm đến sự xuất hiện hay không xuất hiện của các tập mục trong các giao tác

Trước khi phát biểu bài toán khai phá luật kết hợp, ta định nghĩa CSDL giao tác

và các dạng biểu diễn

Trang 17

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

Định nghĩa 1.1 Cho tập các mục (item) I i i1, , , 2 i M Một giao tác (transaction) T là một tập con của I, TI Cơ sở dữ liệu giao tác là tập các giao

tác DB ={ T 1 , T 2 , , T N } Mỗi giao tác được gán một định danh TID Một tập mục

con XI, gồm k mục phân biệt được gọi là một k-tập mục Ta nói giao tác T chứa tập mục X nếu XT

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ó

định danh TID và một danh sách các mục dữ liệu trong giao tác đó, (Bảng 1.1)

Biểu diễn dọc: Cơ sở dữ liệu là một danh sách các mục dữ liệu, mỗi mục dữ

liệu có một danh sách tất cả các định danh của các giao tác chứa mục dữ liệu này, (Bảng 1.2)

Bảng 1.1: Biểu diễn ngang của cơ sở dữ liệu giao tác

Bảng 1.2: Biểu diễn dọc của cơ sở dữ liệu giao tác

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

A T1, T6, T7, T8, T9, T10

B T1, T2, T3, T7, T9

C T1, T2, T4, T5, T6, T7, T8

D T1, T2, T3, T4, T5

Trang 18

Ma trận giao tác: Cơ sở dữ liệu giao tác DB   T T1, , ,2 TN trên tập các mục I   i i1, , ,2 iM được biểu diễn bởi ma trận nhị phân M (m pq N M)  ở đó:

khi

khi

q p pq

q p

i T m

Ví dụ, cơ sở dữ liệu Bảng 1.1 biểu diễn ở dạng ma trận giao tác là:

Bảng 1.3: Ma trận giao tác của cơ sở dữ liệu Bảng 1.1

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

Dưới đây, để cho tiện, luật kết hợp nhị phân sẽ được gọi vắn tắt là luật kết hợp

Định nghĩa 1.2 Cho CSDL giao tác DT với tập tất cả các mục I Một luật kết hợp

là một biểu thức dạng XY , trong đó X và Y là tập con của I, X    Y ; X gọi

là tiền đề, 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

Định nghĩa 1.3 Cho tập mục XI Ta gọi số đếm hỗ trợ (Support count) của X,

ký hiệu SC(X), là số giao tác trong CSDL DT chứa X; độ hỗ trợ (Support) của X, ký hiệu sup(X), là tỷ số giao tác chứa X trên tổng số các giao tác có trong DT Tức là:

trong đó ký hiệu |S| chỉ số phần tử của tập hợp S

Độ hỗ trợ của X chính là xác suất xuất hiện X trong một giao tác Ta có:

sup( ) X

0 1 với mọi tập mục XI

Trang 19

Định nghĩa 1.4 Cho tập mục XI và ngưỡng hỗ trợ tối thiểu (minimum support) minsup 0,1 X được gọi là tập mục thường xuyên (frequent itemset) với độ hỗ trợ tối thiểu minsup nếu sup( ) Xminsup, ngược lại X gọi là tập mục

không thường xuyên

Ngưỡng hỗ trợ tối thiểu minnup là giá trị cho trước bởi người sử dụng

Định nghĩa 1.5 Độ hỗ trợ của một luật kết hợp XY , ký hiệu là sup(XY ),

là độ hỗ trợ của tập mục XY, sup( XY )  sup( XY )

Như vậy, độ hỗ trợ của luật kết hợp XY chính là xác suất xuất hiện đồng

thời của X và Y trong một giao tác, tức là P X (  Y )

Bài toán khai phá luật kết hợp được chia thành hai bài toán con

Bài toán 1: Tìm tất cả các tập mục mà có độ hỗ trợ lớn hơn độ hỗ trợ tối thiểu

do người dùng xác định Các tập mục thoả mãn độ hỗ trợ tối thiểu được gọi là các tập mục thường xuyên (TMTX)

Trang 20

Bài toán 2: Dùng các tập mục thường xuyên để sinh ra các luật mong muốn Ý

tưởng chung là nếu gọi ABCD và AB là các tập mục thường xuyên, thì chúng ta có thể xác định luật nếu AB => CD giữ lại với tỷ lệ độ tin cậy:

(2.3) Nếu conf ≥ minconf thì luật được giữ lại (luật này sẽ thoả mãn độ hỗ trợ tối thiểu vì ABCD là tập mục thường xuyên)

Bài toán 2 được giải quyết như sau: Giả sử đã tìm được X là tập mục thường

xuyên, ta sinh ra các luật kết hợp bằng cách với   Y X, kiểm tra độ tin cậy của luật X Y \  Y có thoả mãn độ tin cậy tối thiểu không

Việc giải quyết Bài toán 2 như trên là khá đơn giản Mọi khó khăn nằm ở Bài toán 1, hầu hết các nghiên cứu về luật kết hợp đều tập trung giải quyết bài toán phát hiện các tập mục thường xuyên

Với cơ sở dữ liệu có M mục dữ liệu, không gian tìm kiếm các tập mục thường

xuyên có tất cả 2M tập mục, rõ ràng đây là bài toán nhị phân khó (tức là bài toán

không giải được với thời gian đa thức), do vậy cần phải có phương pháp duyệt thích hợp, cắt tỉa hiệu quả các tập ứng viên

Đã có rất nhiều thuật toán phát hiện tập mục thường xuyên được công bố Có thể phân các thuật toán này thành hai nhóm sau [9]:

- Phương pháp sinh ứng viên, thực hiện việc tìm kiếm từng bước theo chiều rộng trong không gian tìm kiếm

- Phương pháp không sinh ứng viên, chuyển đổi cơ sở dữ liệu thành cấu trúc cây, duyệt cây đệ quy theo chiều sâu

Duyệt theo chiều rộng là duyệt cơ sở dữ liệu DT để 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 tập mục ứng viên có

k mục Với cơ sở dữ liệu có M mục dữ liệu, lần lặp thứ k phải kiểm tra độ hỗ trợ của

)sup(

AB ABCD conf

Trang 21

1.2.3 Các tính chất của tập mục thường xuyên và luật kết hợp

1.2.3.1 Các tính chất của tập mục thường xuyên

Tính chất 1: Độ hỗ trợ của tập con

Với A và B là tập các mục, nếu A  B thì sup(A)  sup(B)

Điều này là rõ ràng vì tất cả các giao tác của D hỗ trợ B thì cũng hỗ trợ A

Tính chất 2:

Một tập chứa một tập không thường xuyên thì cũng là tập không thường xuyên Nếu một tập mục con trong B không có độ hỗ trợ tối thiểu trên D nghĩa là A  B

và sup(A)< minsup thì B sẽ không phải là một tập thường xuyên vì support(B) 

support(A) < minsup (theo tính chất 1)

Tính chất 3: Các tập con của tập thường xuyên cũng là tập thường xuyên

Nếu mục B là mục thường xuyên trên D, nghĩa là support(B)  minsup thì mọi tập con A của B là tập thường xuyên trên D vì support(A)  support(B) > minsup

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

Tính chất 1: (Không hợp các luật kết hợp)

Nếu có X  Z và Y  Z trong D thì không nhất thiết XY  Z là đúng

Xét trường hợp X  Z =  và các tác vụ trong D hỗ trợ Z nếu và chỉ nếu chúng

hỗ trợ mỗi X hoặc Y, khi đó luật XYZ có độ hỗ trợ 0%

Tương tự : XY  XZ XYZ

Tính chất 2: (Không tách luật)

Nếu XYZ thì XZ và YZ chưa chắc xảy ra

Ví dụ trường hợp Z có mặt trong một giao tác chỉ khi cả hai X và Y cũng có mặt, tức là sup(XY) = sup(Z); nếu độ hỗ trợ của X và Y đủ lớn hơn sup(XY), tức là sup(X) > sup(XY) = sup(Z) và sup(Y) > sup(XY) = sup (Z) thì hai luật riêng biệt sẽ không đủ độ tin cậy

Tuy nhiên đảo lại: XYZ  XY  XZ

Tính chất 3: (Các luật kết hợp không có tính bắc cầu)

Nếu XY và YZ, chúng ta không thể suy ra XZ

Trang 22

Ví dụ: giả sử T(X)T(Y)T(Z), ở đó T(X), T(Y), T(Z) tương ứng là các tập giao dịch chứa X, Y, Z, và conf(XY) = conf(YZ) = minconf với minconf là độ tin cậy cực tiểu Thế thì: conf(XZ) = minconf 2 < minconf vì minconf < 1, do đó luật XZ không đủ độ tin cậy

Tính chất 4:

Nếu A  (L - A) không thoả mãn độ tin cậy cực tiểu thì luật B (L -B) cũng

không thoả mãn, với các tập mục L, A, B mà B  A  L

Vì B  A nên sup(B)  sup(A) (theo tính chất 1) và từ định nghĩa độ tin cậy chúng ta nhận được:

L D

L

L D

L

D D L D

D L

)sup(

)sup(

)sup(

)sup(

)sup(

))sup((

))

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

Cho đến nay, vấn đề khai thác luật kết hợp đã được nghiên cứu và phát triển theo nhiều hướng khác nhau Có những đề xuất nhằm cải tiến tốc độ thuật toán, có những đề xuất nhằm tìm kiếm luật có ý nghĩa hơn … Sau đây là một số hướng tiếp cận chính

Luật kết hợp nhị phân là hướng nghiên cứu đầu tiên của luật kết hợp Hầu hết các nghiên cứu ở thời kỳ đầu về luật kết hợp đều liên quan đến luật kết hợp nhị phân Trong dạng luật kết hợp này, các mục, thuộc tính, chỉ được quan tâm là có hay không xuất hiện trong giao tác của CSDL chứ không quan tâm về “mức độ” xuất hiện Ví dụ: Trong hệ thống tính cước điện thoại thì việc gọi 10 cuộc điện thoại

và một cuộc được xem là giống nhau Thuật toán tiêu biểu nhất khai phá dạng luật này là thuật toán Apriori và các biến thể của nó

Luật kết hợp có thuộc tính số và thuộc tính hạng mục: Các thuộc tính của các CSDL thực tế có kiểu rất đa dạng, như số nhị phân, giá trị định tính, định lượng

Để phát hiện luật kết hợp với các thuộc tính này, các nhà nghiên cứu đã đề xuất một

số phương pháp rời rạc hoá nhằm chuyển dạng luật này về dạng nhị phân để có thể

áp dụng các thuật toán đã có

)sup(

)sup(

)sup(

)sup(

A

L B

L

Trang 23

Luật kết hợp tiếp cận theo hướng tập thô: Tìm kiếm luật kết hợp dựa trên lý thuyết tập thô

Luật kết hợp nhiều mức: Cách tiếp cận 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 AND mua phần mềm tiện ích văn phòng, …” thay vì chỉ tìm kiếm những luật quá cụ thể như “Mua máy tính IBM PC

 mua hệ điều hành Microsoft Windows AND mua phần mềm tiện ích văn phòng Microsoft Office,…” Như vậy dạng luật đầu là dạng luật tổng quát hoá của dạng luật sau và tổng quát theo nhiều mức khác nhau

Luật kết hợp mờ: Để khắc phục những hạn chế còn gặp phải trong quá trình rời rạc hoá các thuộc tính số (quantitave attributes), các nhà nghiên cứu đã đề xuất luật kết hợp mờ nhằm chuyển luật kết hợp về một dạng tự nhiên hơn, gần gũi hơn với người sử dụng

Luật kết hợp với thuộc tính được đánh trọng số (luật kết hợp có trọng số): Trong thực tế, các thuộc tính trong CSDL không phải lúc nào cũng có vai trò như nhau Có một số thuộc tính được chú trọng hơn và có mức độ quan trọng cao hơn các thuộc tính khác Ví dụ khi khảo sát về doanh thu hàng tháng, thông tin về thời gian đàm thoại, vùng cước là quan trọng hơn nhiều so với thông tin về phương thức gọi Trong quá trình tìm kiếm luật, chúng ta sẽ gán thời gian gọi, vùng cước các trọng số lớn hơn thuộc tính phương thức gọi Đây là hướng nghiên cứu rất thú vị và

đã được một số nhà nghiên cứu đề xuất cách giải quyết bài toán này Với luật kết hợp có thuộc tính được đánh trọng số, chúng ta sẽ khai thác được những luật

“hiếm”, tức là có độ hỗ trợ thấp, nhưng có ý nghĩa đặc biệt hoặc mang rất nhiều ý nghĩa

Luật kết hợp song song: Bên cạnh khai thác luật kết hợp tuần tự, các nhà làm tin học cũng tập trung vào nghiên cứu các thuật giải song song cho quá trình phát hiện luật kết hợp Nhu cầu song song hoá và xử lý phân tán là cần thiết bởi kích thước dữ liệu ngày càng lớn hơn nên đòi hỏi tốc độ xử lý cũng như dung lượng bộ nhớ của hệ thống phải được đảm bảo Có rất nhiều thuật toán song song khác nhau đã đề xuất

để có thể không phụ thuộc vào phần cứng

Bên cạnh những nghiên cứu về các biến thể của luật kết hợp, các nhà nghiên cứu còn chú trọng đề xuất những thuật toán nhằm tăng tốc quá trình tìm kiếm tập phổ biến từ CSDL

Ngoài ra, còn có một số hướng nghiên cứu khác về khai thác luật kết hợp như: khai thác luật kết hợp trực tuyến, khai thác luật kết hợp được kết nối trực tuyến đến các kho dữ liệu đa chiều thông qua công nghệ OLAP, MOLAP, ROLAP, ADO

Trang 24

1.2.5 Một số thuật toán khai phá luật kết hợp

1.2.5.1 Thuật toán Apriori

1.2.5.1.1 Thuật toán Apriori khai phá tập mục thường xuyên

Apriori là thuật toán đầu tiên dành cho việc khai phá tập mục thường xuyên do Agrawal và cộng sự đề xuất Apriori thuộc nhóm thuật toán sinh ứng viên Tuy có một số nhược điểm nhưng cho tới nay nó vẫn là thuật toán cơ bản nhất Ý tưởng của thuật toán Apriori là nền tảng cho việc phát triển nhiều thuật toán khai pháp tập mục thường xuyên sau công trình của Agrawal và cộng sự

Cụ thể, thuật toán Apriori được mô tả như sau [4]:

Ký hiệu :

Lk Tập các k-tập mục thường xuyên (với độ hỗ trợ tối thiểu

minsup) Mỗi phần tử của tập này có 2 trường:

i) Tập mục (itemset) ii) Số đếm hỗ trợ (support count)

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 (itemset) ii) Số đếm hỗ trợ (count)

Cơ sở của thuật toán Apriori là tính chất Apriori của tập mục thường xuyên: 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 Sử

dụng tính chất Apriori này thuật toán phát hiện các tập mục thường xuyên bằng cách thực hiện một quá trình tính toán lặp Tại bước lặp thứ nhất, thuật toán duyệt CSDL phát hiện các mục thường xuyên đơn lẻ

Tại mỗi bước lặp thứ k tiếp theo (k  2), thuật toán thực hiện ba công việc:

- Sinh ra các k-tập mục ứng viên (tập mục có khả năng là k-tập mục

thường xuyên) bằng cách kết nối các tập mục thường xuyên thu được ở bước k– 1,

Trang 25

- Tỉa (loại bỏ) bớt các tập mục ứng viên dựa trên tính chất Apriori: Nếu

một tập ứng viên có chứa một tập mục con không phải là tập mục thường xuyên thì nó cũng sẽ không thể là tập mục thường xuyên

- Duyệt CSDL, kiểm tra sự thỏa mãn độ hỗ trợ tối thiểu của các tập mục ứng viên còn lại nhằm tìm ra các tập mục thường xuyên

Giả sử các mục dữ liệu trong mỗi giao tác được lưu theo thứ tự từ điển Thủ tục kết nối và tỉa ứng viên là như sau:

Kết nối (tìm C k ): 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 “nhỏ hơn” mục dữ liệu thứ (k-1) của l2 (theo thứ tự từ điển):

   

k-tập mục nhận được sau kết nối l1 với l2 là: l1[1] l1[2]… l1[k-2] l1[k-1] l2[k-1]

Tỉa: Tất cả các k-tập mục thường xuyên đều phải thuộc tập Ck (Lk Ck Tập

Ck này có thể rất lớn dẫn đến khối lượng tính toán lớn Thuật toán rút gọn tập Ck bằng cách như sau: Nếu một k-tập mục ứng viên nào đó có một (k-1)-tập mục con không thuộc Lk-1 thì ứng viên đó không thể là k-tập mục thường xuyên và sẽ bị loại

bỏ khỏi Ck

Thuật toán Apriori

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

Method:

(1) Tìm các 1- tập mục thường xuyên, nhận được L1;

(2) For  k  2 ;card( Lk1)  2 ; k    do Begin

(3) Ck = apriori_gen(Lk-1,minsup); // Sinh tập ứng viên mới từ Lk 1 ; (4) For (each TDB) do begin

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

(6) For (each c C  )

(7) c.count++; // tăng số đếm c lên một đơn vị ;

(8) end;

Trang 26

(3) if (l1[1] = l2[1]) and (l1[2] = l2[2]) and … and (l1[k-2] = l2[k-2])

and (l1[k-2] = l2[k-2]) and (l1[k-1] < l2[k-1]) then

(4) Ck ← { l1[1], l1[2], … l1[k-2],l1[k-1] l2[k-1]};

// kết nạp k-tập mục mới vào Ck

// Bước tỉa

(5) For (each ciCk) do

(6) If exist (s  ci) and (sLk-1) then

(7) delete ci from Ck;

(8) Return Ck;

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

Minh hoạ thực hiện thuật toán Apriori trên cơ sở dữ liệu cho trong bảng 1.4 với

minsup = 0.05, tức số đếm hỗ trợ tối thiểu bằng 2

Trang 27

Bảng 1.4: Cơ sở dữ liệu giao tác minh hoạ thực hiện thuật toán Apriori

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:

Kết nối L1 với L1 được C2:

- Duyệt CSDL lần thứ 2 tính độ hỗ trợ cho các 2- tập mục trong C2:

Trang 28

Kết nối L2 với L2 được C3:

Duyệt CSDL lần thứ 3 tính độ hỗ trợ cho các 3- tập mục trong C3:

- Sau lần duyệt thứ 3, L3 chỉ gồm một tập mục, thuật toán dừng

- Các tập mục thường xuyên tìm được theo thuật toán Apriori là:

L  L1 L2 L3   A, B, C, E, AC, BC, BE, CE, BCE 

Nhận xét: Thuật toán Apriori gặp phải hai chi phí lớn:

- Chi phí sinh ra số lượng khổng lồ các tập ứng viên Ví dụ, nếu có 104 mục thường xuyên thì thuật toán Apriori sẽ cần sinh ra hơn 107 các ứng viên 2- tập mục và thực hiện kiểm tra độ hỗ trợ của chúng

- Duyệt cơ sở dữ liệu nhiều lần, số lần duyệt bằng độ dài của tập mục thường xuyên dài nhất có trong CSDL Thuật toán Apriori chỉ thích hợp cho các cơ

sở dữ liệu thưa (sparse), với các cơ sở dữ liệu dày (dense) thì thuật toán thực hiện kém hiệu quả

1.2.5.1.2 Sinh các luật kết hợp từ tập mục thường xuyên

Sau khi các tập mục phổ biến từ các tác vụ trong CSDL đã được tìm thấy, nó có

thể sinh ra các luật kết hợp mạnh, ở đó luật kết hợp mạnh (strong association rule)

là luật thoả mãn cả hai độ hỗ trợ cực tiểu và độ tin cậy cực tiểu Điều đó có thể thực hiện bằng việc sử dụng tính độ tin cậy của luật, ta nhắc lại: độ tin cậy của luật X 

Y là: conf (X  Y) = P(Y/X) = sup(XY)/sup(X) ở đó sup(XY) là độ hỗ trợ của

Trang 29

Với mỗi tập con không rỗng a của l, ta có luật a (l-a) nếu

) sup(

) sup(

a

l  minconf

ở đó minconf là ngưỡng độ tin cậy cực tiểu

Vì các luật được sinh ra từ các tập mục phổ biến nên độ hỗ trợ của luật đã được thoả mãn, tức là độ hỗ trợ của luật chính là sup(l)

Thuật toán đơn giản

Chúng ta cải tiến thủ tục xử lý bằng cách sinh ra các tập con của mục lớn theo kiểu đệ quy ưu tiên độ sâu Ví dụ: với tập mục ABCD, đầu tiên chúng ta xét tập con ABC, sau đó đến AB,

Tiếp đến, nếu tập con a của tập mục lớn l không sinh ra được luật thì không cần

xét đến các tập con của nó nữa Chẳng hạn: nếu luật ABC D không đủ độ tin cậy thì ta không cần xét đến luật AB CD

Điều này có thể chứng minh đơn giản như sau:

Nếu luật a (l - a) không thoả mãn độ tin cậy, tức là: conf(a l - a)) nhỏ hơn minconf, thế thì với bất kỳ tập con b nào của a ta có:

Vì b a nên sup(b) sup(a), do vậy:

Conf(b (l - b)) =

) sup(

) sup(

) sup(

) sup(

a

l b

l

=conf((a (l - a))<minconf Tức là độ tin cậy của luật b (l - b) cũng nhỏ hơn minconf

Thuật toán đơn giản này có thể mô tả như sau:

Thuật toán 1:

For all large itemsets lk , k2 do call genrules(lk ,lk)

Procedure genrules(l k :large k-itemsets, a m : large m-itemsets)

Trang 30

//để sinh ra các luật với tập con của am-1 là phần tiền đề end;

end;

Thuật toán nhanh hơn

Ở trên ta đã chỉ ra rằng nếu một luật không thoả mãn với tập cha a thì cũng không thoả mãn với tập con của nó Ví dụ như trên đã xét: nếu ABCD không đủ

độ tin cậy thì luật ABCD cũng không đủ độ tin cậy Điều đó cũng có thể áp dụng theo hướng ngược lại như sau: nếu xảy ra luật với tập con thì cũng xảy ra luật với tập cha

Ví dụ: nếu luật ABCD có đủ độ tin cậy thì luật ABCD cũng đủ độ tin cậy

Conf = support(lk)/support(lk-hm+1);

If (conf minconf) then

Output the rule(lk-hm+1)hm+1

//với độ tin cậy là conf và độ hỗ trợ là support (lk)

Else

Delete hm+1 from Hm+1

Trang 31

Ví dụ, ta xét tập mục ABCDE: Giả sử rằng ACDEB, ADECB là các luật

có l-mục ở phần kết luận thoả mãn độ hỗ trợ cực tiểu minconf

Trong thuật toán đơn giản trên, gọi đệ quy genrules(ABCDE, ACD) sẽ kiểm tra các luật với 2-mục ở phần kết luận là: ACDBE, ADEBC, CDEAB và ACEBD

Luật thứ nhất không xảy ra vì E  BE và ABCD E không thoả mãn độ tin cậy Các luật thứ hai và thứ ba cũng không thoả mãn độ tin cậy với lý do tương tự Chỉ có một luật với 2 - mục ở phần kết luận nhận được là ACEBD, ở đó B và

D là các kết luận của các luật kết hợp có 1- mục ở phần kết luận Thuật toán nhanh hơn mô tả ở trên chỉ kiểm tra một luật này

1.2.5.2 Thuật toán FP-growth

1.2.5.2.1 Ý tưởng thuật toán

Thuật toán kinh điển Apriori tìm tập mục phổ biến thực hiện tốt bởi rút gọn kích thước các tập ứng cử nhờ kỹ thuật tỉa Tuy nhiên, trong tình huống mà số các mẫu nhiều, mẫu dài hoặc độ hỗ trợ cực tiểu thấp, các thuật toán Apriori gặp phải 2 chi phí lớn:

Chi phí cho số lượng khổng lồ các tập ứng cử Ví dụ: nếu có 104 tập 1-mục phổ biến thì thuật toán Apriori sẽ cần sinh ra hơn 107

các ứng cử 2-mục và thực hiện kiểm tra sư xuất hiện của chúng Hơn nữa, để khám phá được một số mẫu phổ biến kích thước (độ dài) là l, thuật toán phải kiểm tra (2l-2 ) các mẫu phổ biến tiềm năng

Ví dụ l=100, chẳng hạn là {a1,a2, ,a100}, nó phải sinh ra tổng số 2100  1030 các ứng

cử (đây chính là số tập con của tập có 100 phần tử)

Đòi hỏi lặp lại nhiều lần duyệt CSDL để kiểm tra tập rất lớn các ứng cử Số lần duyệt CSDL của thuật toán Apriori bằng độ dài của mẫu phổ biến dài nhất tìm được Trong trường hợp mẫu phổ biến dài hơn và CSDL lớn, có nhiều bản ghi, điều

Trang 32

này là không thể thực hiện được Thuật toán Apriori chỉ thích hợp cho các CSDL thưa (sparse), với các CSDL dày (dense) thì thuật toán thực hiện kém hiệu quả hơn Thuật toán mới xuất hiện gần đây có tên là FP-growth được giới thiệu bởi Jiawei Hai Jian Pei và Yiwen Yin năm 2000, sẽ khắc phục được các nhược điểm nêu trên Thuật toán tìm các tập phổ biến hiệu qủa hơn thuật toán Apriori bằng việc

sử dụng một kỹ thuật khác không cần sinh các ứng cử Sự hiệu quả của khai phá nhận được với 3 kỹ thuật chính:

Thứ nhất nó mở rộng của cấu trúc cây prefix (prefix tree), được gọi là cây mẫu

phổ biến (frequent pattern tree hoặc gọi tắt là FP- tree) dùng để nén dữ liệu thích

hợp Chỉ có các mục độ dài l (l-item) ở trong cây và các nút của cây được sắp đặt để các nút xuất hiện thường xuyên hơn có thể dễ dàng chia sẻ với các nút xuất hiện ít hơn CSDL lớn được nén chặt tới cấu trúc dữ liệu nhỏ hơn (FP-tree), tránh được chi phí lặp lại duyệt qua CSDL

Thứ hai, phương pháp khai phá phát triển (growth) từng đoạn dựa trên Fp-tree

gọi là phương pháp FP – growth đã được thực hiện Bắt đầu từ mẫu phổ biến độ dài

1, FP-growth chỉ xem xét cơ sở mẫu phụ thuộc của nó (condition pattern base) như

là CSDL con (sub-database) bao gồm tập các mục phổ biến cùng xuất hiện với mẫu hậu tố (suffix pattern), xây dựng condition FP-tree tương ứng của nó và thực hiện khai phá đệ quy trên cây này Mẫu phát triển là nhận được qua việc nối mẫu hậu tố (suffix pattern) với một đoạn mẫu được sinh ra từ condition FP-tree Khai phá dựa trên FP-tree được thực hiện theo cách phát triển (growth) các đoạn mẫu để tránh chi phí cho việc sinh ra số lượng lớn các tập ứng cử

Thứ ba, kỹ thuật tìm kiếm được dùng ở đây là dựa vào sự phân chia và chế ngự

(divide-and-conquer method) để phân rã nhiệm vụ khai phá thành tập các nhiệm vụ

nhỏ hơn với giới hạn các mẫu trong các CSDL nhằm thu gọn không gian tìm kiếm

Phương pháp FP-growth đã chứng tỏ được tính hiệu quả của nó và thể hiện khai phá cho cả các mẫu ngắn và dài, nhanh hơn thuật toán Apriori, luôn chỉ cần duyệt CSDL 2 lần

Trang 33

1.2.5.2.2 Thuật toán FP-growth

Đầu tiên, thuật toán duyệt CSDL lần thứ nhất để tính độ hỗ trợ của các tập mục (đếm số lần xuất hiện của từng mục)

Tiếp đến, những mục không đủ độ hỗ trợ bị loại Các mục còn lại được sắp theo thứ tự giảm dần của độ hỗ trợ (cũng tức là giảm dần theo số lần xuất hiện trong CSDL), ta nhận được danh sách L các mục đã sắp

Duyệt CSDL lần thứ 2, với mỗi tác vụ t, loại các mục không đủ độ hỗ trợ, các mục còn lại theo thứ tự giống như xuất hiện trong L (tức là thứ tự giảm dần theo độ

hỗ trợ) được đưa vào cây FP-tree

Phần tiếp theo thuật toán khai phá tìm các mẫu phổ biến trên cây FP-tree đã xây dựng mà không cần duyệt lại CSDL nữa

Cấu trúc cây FP-tree nhƣ sau:

Gốc của cây nhãn null, các đường đi trên cây biểu diễn item prefixs

Các liên kết trên cây: liên kết các mục xuất hiện có tên giống nhau

Mỗi nút, (trừ nút gốc) bao gồm:

Tên mục (item identifier)

Count: số đếm

Node link: liên kết đến nút tiếp theo trên cây có cùng tên

Bảng các đầu mục phổ biến (header table): bắt đầu cho các liên kết

Thủ tục thêm một dãy các mục (đã sắp giảm dần theo độ hỗ trợ) của một tác vụ vào cây thực hiện đệ quy như sau:

Procedure insert_tree(string [p|P], tree có gốc T)

(ở đó p là mục thứ nhất của dãy các mục và P là phần còn lại Trong lần duyệt thứ hai, với mỗi tác vụ t, gọi thủ tục insert_tree(t’,T), ở đó t’ là nội dung của tác vụ

t sau khi đã bỏ các mục không phổ biến và sắp theo thứ tự giảm dần của độ hỗ trợ,

Trang 34

Thuật toán FP-growth như sau:

Bắt đầu từ dưới lên của bảng header và cây, với mỗi mục A: dùng n liên kết duỵêt qua tất cả các nút trên cây mà xuất hiện A, với mỗi nút mà n.itemname=A, xác định các tập phổ biến có xuất hiện A, thực hiện bằng cách chỉ cần tìm các đường đi từ gốc tới n

Thuật toán FP – growth

Khai phá Fp-tree được thực hiện bởi gọi lần đầu FP-growth (Fp-tree, null), thực hiện như sau:

Procedure FP-growth(Tree,)

Nếu cây Tree chứa một đường đơn P thì

Với tất cả các tổ hợp (ký hiệu ) của các nút trong đường đi P

Sinh ra mẫu  với support=độ hỗ trợ nhỏ nhất của các nút trong ; Ngược lại: với mỗi mục ai trong header table của Tree{

Sinh ra := ai  với support=ai.count;

Xây dựng cơ sở mẫu phụ thuộc của  và sau đó FP-tree phụ thuộc của 

là Tree;

Nếu Tree thì gọi FP-growth(Tree,)}

Trang 35

1.2.5.2.3 Đánh giá thuật toán FP-growth

Thuật toán này như đã phân tích ở trên, nó thực hiện hiệu quả hơn thuật toán Apriori, thực hiện tốt cho mẫu phổ biến ngắn cũng như dài Ta có một số nhận xét

về thuật toán như sau:

 Độ cao của cây được giới hạn bởi kích thước của tác vụ lớn nhất

Thuật toán không bao giờ bị ngắn bởi một mẫu dài nào của mọi tác vụ Cây FP-tree duy trì đầy đủ thông tin cho khai phá các mẫu phổ biến Đồng thời thuật toán cũng rút gọn hợp lý các thông tin không cần thiết bởi cách là các mục không phổ biến đã bị loại bỏ ngay từ đầu

Dùng kỹ thuật sắp theo trật tự giảm dần của tần số xuất hiện, điều đó dẫn đến các mục phổ biến hơn được chia sẻ nhiều hơn Cây FP-tree không bao giờ lớn hơn CSDL gốc

1.2.6 Mở rộng bài toán khai phá tập mục thường xuyên

Mô hình khai phá luật kết nhị phân có nhiều ứng dụng trong thực tế nhưng nó cũng có những hạn chế, không đáp ứng nhu cầu của người sử dụng Ràng buộc về

độ hỗ trợ của tập mục thường xuyên chủ yếu mang ngữ nghĩa thống kê, không phản ánh được vai trò khác nhau của các thuộc tính cũng như đặc tính dữ liệu vốn có của chúng trong cơ sở dữ liệu

Để đáp ứng được nhu cầu của thực tiễn, bài toán khai phá luật kết hợp nhị phân cần được mở rộng Cho tới nay một số mở rộng đã được đề xuất Các mở rộng được tiến hành theo các hướng:

- Quan tâm đến mức độ khác nhau của các mục dữ liệu bằng cách gán cho mỗi mục một giá trị gọi là trọng số Độ hỗ trợ của luật kết hợp khi đó trở thành độ

Trang 36

hỗ trợ và độ tin cậy có trọng số Luật kết hợp có độ hỗ trợ trọng số hóa được gọi là luật kết hợp có trọng số

- Quân tâm tới các kiểu thuộc tính khác nhau trong cơ sở dữ liệu như nhị phân, đa phân, định lượng Luật kết hợp lúc đó được gọi là luật kết hợp định lượng

Để tìm các luật kết hợp định lượng người ta đưa bài toán về dạng nhị phân bằng cách rời rác hóa miền giá trị thuộc tính, sau đó có thể sử dụng các thuật toán khai phá dự liệu nhị phân đã biết

- Chú ý đến cấu trúc dữ liệu và hoặc mức độ quan trọng khác nhau của các thuộc tính trong cơ sở dữ liệu Theo hướng này, nhiều nhà nghiên cứu đã đề xuất các mô hình mở rộng: khai phá tập mục cổ phần cao, khai phá tập mục lợi ích cao Các mở rộng này cho phép đánh giá mức độ đóng góp của các tập mục trong cơ sở

Trang 37

CHƯƠNG 2 CÁC MÔ HÌNH VÀ THUẬT TOÁN KHAI THÁC

LUẬT KẾT HỢP CÓ TRỌNG SỐ

2.1 Yêu cầu phải xem xét trọng số

Khai phá luật kết hợp đóng vai trò quan trọng trong khai phá dữ liệu Khai phá luật kết hợp là phát hiện những mối quan hệ giữa các mục dữ liệu Mô hình bài toán khai phá luật kết hợp đầu tiên được giới thiệu bởi Agrawal và cộng sự vào năm

1993 khi phân tích cơ sở dữ liệu bán hàng của siêu thị [4] Đến nay, bài toán trong

mô hình đầu tiên này được gọi là bài toán khai phá luật kết hợp nhị phân (hay bài

toán khai phá luật kết hợp cơ bản)

Với cách khai phá dữ liệu bằng luật kết hợp cơ bản thì chỉ quan tâm đến sự xuất hiện hay không xuất hiện của các tập mục trong các giao tác mà không quan tâm tới tầm quan trọng hay tần xuất xuất hiện của chúng trong giao dịch

Một khách hàng có thể mua những hàng hoá rất có giá trị, mang lại lợi nhuận cao mà thường vắng mặt trong những hoá đơn khác Tập hạng mục đó có thể bị bỏ qua khi ta khai phá luật kết hợp cơ bản nhưng lại là một tập hạng mục đáng quan tâm đối với người quản lý kinh doanh của siêu thị vì nó đóng góp một phần lớn vào tổng lợi nhuận của cửa hàng

Ví dụ: {milk, bread} có thể là tập phổ biến với độ hỗ trợ 40%, mang lại 4% tổng lợi nhuận, trong khi {birthday cake, birthday card} có thể không là tập phổ biến với độ hỗ trợ 8% (giả sử ngưỡng độ hỗ trợ là 10%), đóng góp 8% tổng lợi nhuận

Phương pháp của chúng ta là gán trọng số cho mỗi hạng mục, trọng số này

do người quản lý gán cho từng mặt hàng dựa vào tầm quan trọng của từng hạng mục hoặc tần xuất mà hạng mục xuất hiện trong giao dịch Về ngữ nghĩa, trọng số

là một tiêu chuẩn đo tầm quan trọng của một hạng mục Chúng ta sẽ cân bằng 2 độ đo: trọng số và độ hỗ trợ Nếu một tập là rất quan trọng, ví dụ nó thu lại lợi nhuận cao thì ngay cả khi không có nhiều khách hàng mua, nó vẫn là tập đáng quan tâm

Trang 38

Mặt khác, nếu một tập không được coi là rất quan trọng về mặt trọng số, nhưng nó phổ biến đến nỗi nhiều giao dịch chứa nó, nó cũng là một tập đáng quan tâm

Ba dạng trọng số của hạng mục:

 Trọng số phản ánh tầm quan trọng của hạng mục, do người sử dụng xác định, độc lập với giao dịch Ví dụ: lợi nhuận của một đơn vị hạng mục (profit)

 Trọng số xác định bởi tần xuất xuất hiện hạng mục trong giao dịch Thường

là số lượng hạng mục trong giao dịch

 Cả 2 dạng trọng số trên (thường được coi là utility của hạng mục)

Những năm gần đây, khai thác luật kết hợp có trọng số đã trở thành một đề tài hấp dẫn, một nội dung quan trọng của khai thác dữ liệu, thu hút sự quan tâm của nhiều nhà nghiên cứu và ứng dụng

Sau công trình đầu tiên của Cai C.H và cộng sự [5], với hai thuật toán MINWAL(O) và MINWAL(W), các nhà nghiên cứu đã liên tục phát triển và đề xuất các thuật toán mới: thuật toán WARM bởi Tao F [7] , WAR bởi Wang W và cộng sự [8], WFIM bởi Yun U và Leggett J.J.[9],

2.2 Khai phá luật kết hợp có trọng số không chuẩn hóa, thuật toán MINWAL(O)

2.2.1 Mô hình bài toán

Cho cơ sở dữ liệu (CSDL) giao tác DT Ký hiệu I   i1, , iM là tập tất cả

các mục (thuộc tính) của DT Mỗi giao tác (bản ghi) tq trong DT là một tập con của

I , được gán một định danh TID Một tập con của I, gồm k mục phân biệt được

gọi là một k-tập mục hay tập mục độ dài k Để đơn giản, thay vì i1, , ik, đôi khi

ta viết i1 ik; chẳng hạn tập mục A B C D, , , được viết ngắn gọn là ABCD

Dưới đây, ta giả sử DT bao gồm N giao tác, M mục và mỗi mục ij được gán một trọng số 0  wj  1, j  1, , M Trọng số wj phản ánh mức độ quan trọng của mục ij

Ngày đăng: 16/08/2020, 10:30

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