1. Trang chủ
  2. » Khoa Học Tự Nhiên

Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)

84 278 1

Đ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 84
Dung lượng 1,7 MB

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

Nội dung

Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng (LV thạc sĩ)

Trang 2

ĐẠI HỌC THÁI NGYÊN TRƯỜNG ĐẠI HỌC CNTT&TT

TÌM HIỂU MỘT SỐ THUẬT TOÁN KHAI PHÁ TẬP MỤC LỢI ÍCH CAO

VÀ ỨNG DỤNG

Vũ Anh Đức

Người hướng dẫn: TS Nguyễn Huy Đức

Thái Nguyên- năm 2016

Trang 3

MỤC LỤC

MỤC LỤC ii

DANH MỤC HÌNH ẢNH v

DANH MỤC BẢNG BIỂU vi

LỜI CẢM ƠN vii

LỜI CAM ĐOAN viii

LỜI MỞ ĐẦU 1

Chương I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU VÀ KHAI PHÁ TẬP MỤC PHỔ BIẾN 2

1.1 Khái niệm về khai phá tri thức và khai phá dữ liệu 2

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

1.3 Một số kỹ thuật khai phá dữ liệu 4

1.4 Một số ứng dụng của khai phá dữ liệu 8

1.5 Khai phá tập mục phổ biến 10

1.5.1 CSDL giao tác 10

1.5.2 Tập mục phổ biến và luật kết hợp 12

1.5.2.1 Tập mục phổ biến 12

1.6 Thuật toán khai phá tập mục phổ biến 15

1.6.1 Thuật toán Apriori 16

1.6.2 Thuật toán FP-growth 18

1.7 Một số hướng mở rộng của bài toán khai phá tập mục phổ biến 25

Chương II: MỘT SỐ THUẬT TOÁN HIỆU QUẢ KHAI PHÁ TẬP MỤC LỢI ÍCH CAO 27

2.1 Bài toán tập mục lợi ích cao 27

2.1.1 Các khái niệm liêm quan đến khai phá tập mục lợi ích cao 28

2.1.2 Bài toán khai phá tập mục lợi ích cao: 31

2.2 Thuật toán Hai pha 32

2.2.1 Cơ sở lý thuyết 32

2.2.2 Các bước thực hiện của thuật toán Hai pha 33

2.3 Thuật toán HUI - Miner 39

Trang 4

2.3.1 Giới thiệu thuật toán 39

2.3.2 Cấu trúc của utility-list 39

2.3.3 Khai phá tập mục lợi ích cao 44

Chương III:CHƯƠNG TRÌNH THỰC NGHIỆM ỨNG DỤNG 48

3.1 Bài toán phát hiện nhóm mặt hàng mang lại lợi nhuận cao trên tập dữ liệu bán hàng của siêu thị Yên Bái 49

3.2 Mô tả dữ liệu 50

3.3 Xây dựng chương trình 53

3.4 Thực nghiệm khai phá tìm tập mục lợi ích cao 55

3.5 Ý nghĩa của kết quả thực nghiệm 56

KẾT LUẬN 58

TÀI LIỆU THAM KHẢO 60

PHỤ LỤC 62

Trang 5

DANH MỤC HÌNH ẢNH

Hình 1.1: Quá trình phát hiện tri thức 3

Hình 1.2: Quá trình KPDL 4

Hình 1.3: Cây quyết định 5

Hình 1.4: Mẫu kết quả của nhiệm vụ phân cụm dữ liệu 6

Hình 1.5: Mẫu kết quả của nhiệm vụ hồi quy 7

Hình 1.6: Cây FP-tree được xây dựng dần khi thêm các giao tác T1, T2, T3 21

Hình 1.7: Cây FP-tree của CSDL DB trong bảng 1.4 21

Hình 2.1: không gian tìm kiếm tập mục lợi ích cao 38

Hình 2.2: utility-list ban đầu 42

Hình 2.3: Utility-list của 2 tập mục 42

Hình 2.4 Cây liệt kê các tập mục 45

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

Hình 3.2: Bảng lợi ích 53

Hình 3.3: Hiển thị dạng form: 55

Hình 3.4: Hiển thị dạng file: 56

Trang 6

DANH MỤC BẢNG BIỂU

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

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

Bảng 1.3 Ma trận giao tác của CSDL 11

Bảng 1.4 CSDL giao tác minh hoạ cho thuật toán FP- growth 20

Bảng 2.1: CSDL giao tác 36

Bảng 2.2: bảng lợi ích 36

Bảng 2.3: Bảng giao tác 40

Bảng 2.4: Bảng lợi ích 40

Bảng 2.5 Dữ liệu sau khi duyệtCSDL 41

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

Bảng 3.2: Bảng lợi ích các mặt hàng 51

Bảng 3.3 Mã hóa các mặt hàng 52

Trang 7

LỜI CẢM ƠN

Lời đầu tiên tôi xin gửi lời cảm ơn chân thành và biết ơn sâu sắc tới TS Nguyễn Huy Đức – Trường Cao đẳng Sư phạm Trung ương, người đã chỉ bảo và hướng dẫn tận tình cho tôi trong suốt quá trình nghiên cứu khoa học và thực hiện luận văn này

Tôi xin chân thành cảm ơn sự dạy bảo, giúp đỡ, tạo điều kiện và khuyến khích tôi trong quá trình học tập và nghiên cứu của các thầy cô giáo của Viện Công nghệ Thông tin, Trường Đại học Công nghệ Thông tin và Truyền thông – Đại học Thái Nguyên

Và cuối cùng, tôi xin gửi lời cảm ơn tới gia đình, người thân và bạn bè – những người luôn ở bên tôi những lúc khó khăn nhất, luôn động viên tôi, khuyến khích tôi trong cuộc sống và trong công việc Tôi xin chân thành cảm ơn!

Tác giả

Vũ Anh Đức

Trang 8

LỜI CAM ĐOAN

Tôi xin cam đoan Luận văn "Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng" là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn

của TS Nguyễn Huy Đức Kết quả đạt được trong luận văn là sản phẩm của riêng

cá nhân tôi, không sao chép lại của người khác Trong toàn bộ luận văn, những điều được trình bày là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp

Tôi xin chịu hoàn toàn trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình

Thái Nguyên, ngày 10 tháng 07 năm 2016

Người cam đoan

Vũ Anh Đức

Trang 9

LỜI MỞ ĐẦU

Khai phá tập mục phổ biến có vai trò quan trọng trong nhiều nhiệm vụ khai phá dữ liệu Khai phá tập mục phổ biến xuất hiện như là bài toán con của nhiều lĩnh vực khai phá dữ liệu như khám phá luật kết hợp, khám phá mẫu tuần tự… Bài toán khai phá luật kết hợp do Agrawal, T.Imielinski và A N Swami [3] đề xuất và nghiên cứu lần đầu vào năm 1993 với mục tiêu là phát hiện các tập mục phổ biến, từ đó tạo các luật kết hợp Trong mô hình của bài toán này, giá trị của mỗi mục dữ liệu trong một giao tác là 0 hoặc 1, tức là chỉ quan tâm mục dữ liệu có xuất hiện trong giao tác hay không Bài toán cơ bản này có nhiều ứng dụng, tuy vậy, do tập mục phổ biến chỉ mang ngữ nghĩa thống kê nên nó chỉ đáp ứng được phần nào nhu cầu cu ̉ a thực tiễn

Nhằm khắc phục hạn chế của bài toán cơ bản khai phá luật kết hợp, nhiều nhà nghiên cứu đã mở rộng bài toán theo nhiều hướng khác nhau Năm 1997, Hilderman

và các cộng sự đề xuất bài toán khai phá tập mục cổ phần cao Trong mô hình na ̀y, giá trị của mục dữ liệu trong giao tác là một số Năm 2004, nhóm các nhà nghiên cứu

H Yao, Hamilton và Butz [9], mở rộng tiếp bài toán, đề xuất mô hình khai phá tập mục lợi ích cao

Trong mô hình khai phá tập mục lợi ích cao, giá trị của mục dữ liệu trong giao tác là một số (như số lượng đã bán của mặt hàng, gọi là giá trị khách quan), ngoài ra còn có bảng lợi ích cho biết lợi ích mang lại khi bán một đơn vị hàng đó (gọi là giá trị chủ quan) Lợi ích của tập mục là số đo lợi nhuận mà tập mục đó mang lại Khai phá tập mục lợi ích cao là khám phá tất cả các tập mục có lợi ích không nhỏ hơn ngưỡng lợi ích tối thiểu của người sử dụng

Trong những năm gần đây, bài toán này đã và đang thu hút sự quan tâm của nhiều nhà nghiên cứu trong và ngoài nước Với mục đích tìm hiểu bài toán tìm tập mục lợi ích

cao và các thuật toán khai phá hiệu quả gần đây, em đã quyết định lựa chọn đề tài “Tìm hiểu một số thuật toán khai phá tập mục lợi ích cao và ứng dụng”

Nội dung luận văn gồm 3 chương:

Chương 1: Tổng quan về khai phá dữ liệu và khai phá tập mục phổ biến

Chương 2: Một số thuật toán hiệu quả khai phá tập mục lợi ích cao

Chương 3: Chương trình thực nghiệm

Trang 10

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

TẬP MỤC PHỔ BIẾN 1.1 Khái niệm về khai phá tri thức và khai phá dữ liệu

KPDL là việc rút trích tri thức một cách tự động và hiệu quả từ một khối

dữ liệu lớn Tri thức đó thường ở dạng các mẫu có tính chất không tầm thường, không tường minh (ẩn), chưa được biết đến và có tiềm năng mang lại lợi ích

Có một số nhà nghiên cứu còn gọi KPDL là phát hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery in Database – KDD) Ở đây chúng ta có thể coi KPDL là cốt lõi của quá trình phát hiện tri thức Quá trình phát hiện tri thức gồm các bước [4]:

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

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

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

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

Bước 3: Biến đổi 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 thác ở bước sau

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

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

Bước 5: Đánh giá và biểu diễn tri thức (knowledge representation & evaluation): Dùng các kỹ thuật hiển thị dữ liệu để trình bày các mẫu thông tin

Trang 11

(tri thức) và mối liên hệ đặc biệt trong dữ liệu đã được khai thác ở bước trên biểu diễn theo dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu, luật,…v.v Đồng thời bước này cũng đánh giá những tri thức khám phá được theo những tiêu chí nhất định Trong giai đoạn khai phá dữ liệu, có thể cần sự tương tác của người dùng để điều chỉnh và rút ra các tri thức cần thiết nhất Các tri thức nhận được cũng có thể được lưu và sử dụng lại

Hình 1.1: Quá trình phát hiện tri thức

Việc KPDL có thể được tiến hành trên một lượng lớn dữ liệu có trong CSDL, các kho dữ liệu hoặc trong các loại lưu trữ thông tin khác

Các mẫu đáng quan tâm có thể được đưa đến người dùng hoặc được lưu trữ trong một cơ sở tri thức

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

Các giải thuật khai phá dữ liệu thường được miêu tả như những chương trình hoạt động trực tiếp trên tệp dữ liệu Với các phương pháp học máy và thống kê trước đây, thường thì bước đầu tiên là các giải thuật nạp toàn bộ tệp

dữ liệu vào trong bộ nhớ Khi chuyển sang các ứng dụng công nghiệp liên quan đến việc khai phá các kho dữ liệu lớn, mô hình này không thể đáp ứng được Không chỉ bởi vì nó không thể nạp hết dữ liệu vào trong bộ nhớ mà còn vì khó

Trang 12

có thể chiết xuất dữ liệu ra các tệp đơn giản để phân tích được Quá trình khai phá dữ liệu được thể hiện bởi mô hình sau:

Hình 1.2: Quá trình KPDL

+ Xác định nhiệm vụ: Xác định chính xác vấn đề cần giải quyết

+ Xác định các dữ liệu liên quan dùng để xây dựng giải pháp

+ Thu thập các dữ liệu có liên quan và xử lý chúng thành dạng sao cho giải thuật khai phá dữ liệu có thể hiểu được Ở đây có thể gặp một số vấn đề:

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

dữ liệu thay đổi v.v…)

+ Chọn thuật toán khai phá dữ liệu thích hợp và thực hiện việc khai phá

dữ liệu: nhằm tìm được các mẫu (pattern) có ý nghĩa dưới dạng biểu diễn tương ứng với các ý nghĩa đó

1.3 Một số kỹ thuật khai phá dữ liệu

Mục đích của khai phá dữ liệu là chiết xuất ra các tri thức có lợi cho kinh doanh hay cho nghiên cứu khoa học… Do đó, ta có thể xem mục đích của khai phá dữ liệu sẽ là mô tả các sự kiện và dự đoán Các mẫu khai phá dữ liệu phát hiện được nhằm vào mục đích này Dự đoán liên quan đến việc sử dụng các biến hoặc các đối tượng (bản ghi) trong CSDL để chiết xuất ra các mẫu, dự đoán được những giá trị chưa biết hoặc những giá trị tương lai của các biến

Trang 13

đáng quan tâm Mô tả tập trung vào việc tìm kiếm các mẫu mô tả dữ liệu mà con người có thể hiểu được

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

bao gồm như sau:

Phân lớp dữ liệu

Khái niệm phân lớp dữ liệu được Han và Kamber đưa ra năm 2000 Phân lớp dữ liệu là xây dựng một mô hình mà có thể phân các đối tượng thành những lớp để dự đoán giá trị bị mất tại một số thuộc tính của dữ liệu hay tiên đoán giá trị của dữ liệu sẽ xuất hiện trong tương lai

Quá trình phân lớp dữ liệu được thực hiện qua hai bước:

Bước thứ nhất: Dựa vào tập hợp dữ liệu huấn luyện, xây dựng một mô

hình mô tả những đặc trưng của những lớp dữ liệu hoặc những khái niệm, đây

là quá trình học có giám sát, học theo mẫu được cung cấp trước

Bước thứ hai: Từ những lớp dữ liệu hoặc những khái niệm đã được

xác định trước, dự đoán giá trị của những đối tượng quan tâm

Một kỹ thuật phân lớp dữ liệu được Han và Kamber đưa ra là cây quyết định Mỗi nút của cây đại diện một quyết định dựa vào giá trị thuộc tính tương ứng Kỹ thuật này đã được nhiều tác giả nghiên cứu và đưa ra nhiều thuật toán Một ví dụ tiêu biểu về cây quyết định:

Hình 1.3: Cây quyết định

Trang 14

Trong hình 1.3 là một cây quyết định cho lớp mua laptop, chỉ ra một khách hàng sẽ mua hay không mua một laptop Mỗi nút lá đại diện một lớp mà đánh giá mua laptop là Yes hay No Sau khi mô hình này được xây dựng, chúng

ta có thể dự đoán việc có thể mua một laptop hay không dựa vào những thuộc tính khách hàng mới là tuổi và nghề nghiệp Cây quyết định có thể ứng dụng

rộng rãi trong nhiều hoạt động của đời sống thực

Phân nhóm dữ liệu

Phân nhóm là kỹ thuật khai phá dữ liệu tương tự như phân lớp dữ liệu Tuy nhiên, sự phân nhóm dữ liệu là quá trình lọc không được giám sát, là quá trình nhóm những đối tượng vào trong những lớp tương đương, đến những đối tượng trong một nhóm là tương đương nhau, chúng phải khác với những đối tượng trong những nhóm khác Trong phân lớp dữ liệu, một bản ghi thuộc

về lớp nào là phải xác định trước, trong khi phân nhóm không xác định trước Trong phân nhóm, những đối tượng được nhóm lại cùng nhau dựa vào sự giống nhau của chúng Sự giống nhau giữa những đối tượng được xác định bởi những chức năng giống nhau Thông thường những sự giống về định lượng như khoảng cách hoặc độ đo khác được xác định bởi những chuyên gia trong lĩnh vực của mình

Hình 1.4: Mẫu kết quả của nhiệm vụ phân cụm dữ liệu

Đa số các ứng dụng phân nhóm được sử dụng trong sự phân chia thị trường Với sự phân nhóm khách hàng vào trong từng nhóm, những doanh nghiệp có thể cung cấp những dịch vụ khác nhau tới nhóm khách hàng một

Trang 15

cách thuận lợi Ví dụ, dựa vào chi tiêu, số tiền trong tài khoản và việc rút tiền của khách hàng, một ngân hàng có thể xếp những khách hàng vào những nhóm khác nhau Với mỗi nhóm, ngân hàng có thể cho vay những khoản tiền tương ứng cho việc mua nhà, mua xe,… Trong trường hợp này ngân hàng có thể cung cấp những dịch vụ tốt hơn và cũng chắc chắn rằng tất cả các khoản tiền cho vay đều có thể thu hồi được Ta có thể tham khảo một khảo sát toàn diện về kỹ thuật và thuật toán phân nhóm trong

Hồi qui (Regression):

Là việc học một hàm ánh xạ từ một tập dữ liệu thành một biến dự đoán có giá trị thực Nhiệm vụ hồi qui tương tự như phân lớp, điểm khác nhau chính là ở chỗ thuộc tính để dự báo là liên tục chứ không rời rạc Việc dự báo các giá trị số thường được làm bởi các phương pháp thống kê cổ điển chẳng hạn như hồi qui tuyến tính Tuy nhiên, phương pháp mô hình hóa cũng được sử dụng

Hình 1.5: Mẫu kết quả của nhiệm vụ hồi quy

Ứng dụng của hồi quy là rất nhiều, ví dụ: dự đoán số lượng sinh vật phát quang hiện thời trong khu rừng bằng cách dò tìm vi sóng bằng thiết bị cảm biến từ xa; dự đoán khả năng tử vong của bệnh nhân khi biết các kết quả xét nghiệm chẩn đoán; dự đoán nhu cầu tiêu thụ một sản phẩm mới bằng một hàm chi tiêu quảng cáo… hình 1.6 chỉ ra mẫu kết quả hồi quy tuyến tính đơn giản,

Trang 16

ở đây tổng số nợ được điều chỉnh cho phù hợp giống như một hàm thu nhập tuyến tính Việc điều chỉnh này là không đáng kể bởi vì chỉ tồn tại một tương quan yếu giữa hai biến

Tổng hợp (summarization):

Là công việc liên quan đến các phương pháp tìm kiếm một mô tả cô đọng cho tập con dữ liệu Các kỹ thuật tổng hợp thường được áp dụng trong việc phân tích dữ liệu có tính thăm dò và báo cáo tự động

Mô hình hóa phụ thuộc (dependency modeling):

Là việc tìm kiếm mô tả các phụ thuộc quan trọng giữa các biến Mô hình phụ thuộc tồn tại hai mức:

+ Mức cấu trúc của mô hình (thường dưới dạng đồ thị) xác định các biến phụ thuộc cục bộ vào các biến khác;

+ Mức định lượng của mô hình xác định mức độ phụ thuộc của biến Những phụ thuộc này thường được biểu thị dưới dạng luật

Quan hệ phụ thuộc cũng có thể biểu diễn dưới dạng mạng tin cậy Đó là

đồ thị có hướng không có dạng chu trình, các nút biểu diễn thuộc tính và trọng số chỉ liên kết phụ thuộc giữa các nút đó

Phát hiện sự thay đổi và độ lệch (change and deviation dectection):

Nhiệm vụ này tập trung vào khám phá những thay đổi có ý nghĩa trong

dữ liệu dựa vào các giá trị chuẩn hay độ đo đã biết trước, phát hiện độ lệch đáng kể giữa nội dung của tập con dữ liệu và nội dung mong đợi Hai mô hình

độ lệch thường dùng là lệch theo thời gian và lệch theo nhóm Độ lệch theo thời gian là sự thay đổi có nghĩa của dữ liệu theo thời gian Độ lệch theo nhóm

là sự khác nhau giữa dữ liệu trong hai tập con dữ liệu, tính cả trường hợp tập con của đối tượng này thuộc tập con kia, nghĩa là xác định dữ liệu trong một nhóm con của đối tượng có khác nhau đáng kể so với toàn bộ đối tượng

1.4 Một số ứng dụng của khai phá dữ liệu

Trang 17

KPDL được vận dụng trong nhiều lĩnh vực khác nhau nhằm khai thác nguồn dữ liệu phong phú được lưu trữ trong các hệ thống thông tin Tuỳ theo bản chất của từng lĩnh vực, việc vận dụng KPDL có những cách tiếp cận khác nhau

KPDL được vận dụng có hiệu quả để giải quyết các bài toán phức tạp trong những ngành đòi hỏi kỹ thuật cao như: tìm kiếm mỏ dầu từ ảnh viễn thám, xác định vùng gãy trong ảnh địa chất để dự đoán thiên tai, cảnh báo hỏng hóc trong các hệ thống sản xuất

Phân nhóm và dự đoán là những kỹ thuật rất cần thiết cho việc quy hoạch

và phát triển hệ thống quản lý và sản xuất trong thực tế như: dự đoán tái sử dụng điện năng cho các công ty cung cấp điện, lưu lượng viễn thông cho các công ty điện thoại, mức độ tiêu thụ sản phẩm cho các nhà sản xuất, giá trị của sản phẩm trên thị trường cho các công ty tài chính hay phân nhóm khách hàng tiềm năng

Ngoài ra KPDL còn được áp dụng trong việc giải quyết các vấn đề xã hội như: phát hiện tội phạm hay tăng cường an ninh xã hội và mang lại những hiệu quả thiết thực cho các hoạt động trong đời sống hàng ngày

Một số ứng dụng cụ thể như sau:

- KPDL được sử dụng để phân tích dữ liệu, hỗ trợ ra quyết định

- Trong sinh học: nó dùng để tìm kiếm, so sánh các hệ gen và thông tin

di truyền, tìm mối liên hệ giữa các hệ gen và chẩn đoán một số bệnh di truyền

- Trong y học: KPDL giúp tìm ra mối liên hệ giữa các triệu chứng, chẩn đoán bệnh

- Tài chính và thị trường chứng khoán: KPDL dùng để phân tích tình hình tài chính, phân tích đầu tư, phân tích cổ phiếu

- Khai thác dữ liệu web

- Trong thông tin kỹ thuật: KPDL dùng để phân tích các sai hỏng, điều khiển và lập lịch trình

Trang 18

- Trong thông tin thương mại: dùng để phân tích dữ liệu người dùng, phân tích dữ liệu marketing, phân tích đầu tư, phát hiện các gian lận

- Trong công nghiệp viễn thông: Phân tích nhu cầu và phân tích các mẫu gian lận và xác định các mẫu khác thường

1.5 Khai phá tập mục phổ biến

1.5.1 CSDL giao tác

Định nghĩa 1.1

Cho tập các mục (Item) I = {i1, i2, i3, , in} Một giao tác (transaction) T

là một tập con của I, T ⊆ I CSDL giao tác là một tập các giao tác DB ={T 1 , T 2 ,

T 3 , ,T m } Mỗi giao tác được gắn với một định danh TID Một tập con X ⊆ I, gồm k mục phân biệt được gọi là một k-tập mục Giao tác T gọi là chứa tập mục X nếu X ⊆ T

Biểu diễn CSDL giao tác:

CSDL 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: Mỗi CSDL là một danh sách các giao tác Mỗi giao

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

giao tác đó

Trang 19

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

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

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

sách những mục dữ liệu, với 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 Biểu diễn dọc của CSDL giao tác

Trang 20

1.5.2 Tập mục phổ biến và luật kết hợp

1.5.2.1 Tập mục phổ biến

Định nghĩa 1.2 (Độ hỗ trợ )

Cho tập mục X⊆ I Ta gọi độ hỗ trợ (Support) của X trong cơ sở dữ liệu

giao tác DB, ký hiệu supp(X), là tỷ lệ phần trăm các giao tác chứa X trên tổng

Cho tập mục X ⊆ I và ngưỡng hỗ trợ tối thiểu (minimum support) minsup

∈[0, 1] (được xác định trước bởi người sử dụng) X được gọi là tập mục phổ

biến (frequent itemset hoặc large itemset) với độ hỗ trợ tối thiểu minsup nếu

supp(X) ≥ minsup, ngược lại X gọi là tập mục không phổ biến

Với CSDL giao tác cho ở bảng 1.1 ta có:

- A, B, D, CA, CB, CD, EA, EB, ED: là các tập mục phổ biến theo ngưỡng minsup = 60%

- C, E, CE: là các tập mục phổ biến theo ngưỡng minsup = 80%

Tính chất của tập mục phổ biến:

Tính chất 1: Với hai tập mục X, Y với X⊆Y thì supp(X) ≥ supp(Y) Tính chất 2: Mọi tập con của một tập mục phổ biến đều là tập mục phổ

biến Nghĩa là, X là tập mục phổ biến và Y⊆X thì supp(Y)≥ supp(X)≥minSup

Tính chất 3: Mọi tập cha của một tập mục không phổ biến là tập mục

không phổ biến Nghĩa là: X là tập không phổ biến và Y ⊇ X thì

supp(Y) ≤ supp(X) < minSup

Trang 21

1.5.2.2 Luật kết hợp

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

Y là các 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.5: Độ hỗ trợ (Support) của một luật kết hợp X→Y, ký hiệu là

supp(X→Y ), là độ hỗ trợ của tập mục X∪Y , supp(X→Y)= supp(X∪Y)

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

Ta có: 0 ≤ supp(X→Y) ≤1

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

conf(X→Y), là tỷ lệ phần trăm giữa số giao tác chứa X∪Y và số giao tác chứa

1.5.2.3 Bài toán khai phá luật kết hợp

Cho CSDL giao tác DB, ngưỡng độ hỗ trợ tối thiểu minsup và ngưỡng

độ tin cậy tối thiểu minconf

Trang 22

hiện hay không xuất hiện) 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 thứ nhất là tìm tất cả các tập mục thỏa mãn độ hỗ trợ tối thiểu cho trước, tức là tìm tất cả các tập mục phổ biến Bài toán thứ hai là sinh

ra các luật kết hợp từ các tập mục phổ biến đã tìm được thỏa mãn độ tin cậy tối thiểu cho trước

Bài toán thứ hai được giải quyết như sau: giả sử đã tìm được X là tập mục phổ biến, ta sinh ra các luật kết hợp bằng cách tìm ∀ Y⊂X , kiểm tra độ tin cậy của luật X\Y→Y có thỏa mãn độ tin cậy tối thiểu không Bài toán thứ hai này đơn giản, mọi khó khăn nằm ở bài toán thứ nhất, 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 thứ nhất là tìm các tập mục phổ biến

1.6 Các cách tiếp cận khai phá tập mục phổ biến

Các nghiên cứu về khai phá tập mục phổ biến tập trung vào tìm các thuật toán mới hoặc đề xuất giải pháp nâng cao hiệu quả các thuật toán đã có Phần này sẽ trình bày khái quát các kỹ thuật chính để khai phá tập mục phổ biến

Bài toán khai phá tập mục phổ biến có thể chia thành hai bài toán nhỏ: tìm các tập mục ứng viên và tìm các tập mục phổ biến Tập mục ứng viên là tập mục mà ta hy vọng nó là tập mục phổ biến, phải tính độ hỗ trợ của nó để kiểm tra Tập mục phổ biến là tập mục có độ hỗ trợ lớn hơn hoặc bằng ngưỡng hỗ trợ tối thiểu cho trước Đã có rất nhiều thuật toán tìm tập mục phổ biến được công bố, ta có thể phân chúng theo hai tiêu chí sau :

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

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

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

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

Trang 23

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

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

k n

n C

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

Các thuật toán khai phá có thể phân loại như sau:

Hình 1.6: Phân loại các thuật toán khai phá tập mục phổ biến

1.7 Thuật toán khai phá tập mục phổ biến

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

Trang 24

mục ứng viên, CSDL được nén lên cấu trúc cây, sau đó khai phá bằng cách phát triển dần các mẫu trên cây này

1.7.1 Thuật toán Apriori

Apriori là thuật toán khai phá tập mục phổ biến do R Agrawal và R Srikant đề xuất vào năm 1993 [3] Ý tưởng của thuật toán Apriori còn là nền tảng cho việc phát triển nhiều thuật toán khai phá tập mục phổ biến khác về sau Ý tưởng chính của thuật toán như sau: sinh ra các tập mục ứng viên từ các tập mục phổ biến ở bước trước, sử dụng kỹ thuật “tỉa” để bỏ đi những tập mục ứng viên không thoả mãn ngưỡng hỗ trợ cho trước Cơ sở của kỹ thuật này là tính chất Apriori: “Bất kỳ tập con nào của tập mục phổ biến cũng phải là tập mục phổ biến” Vì vậy các tập mục ứng viên gồm k mục có thể được sinh ra bằng cách nối các tập mục phổ biến có (k-1) mục và loại bỏ tập mục ứng viên nếu nó có chứa bất kỳ một tập con nào không phải là phổ biến

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

Lk

Tập các k - tập mục phổ biến (với độ hỗ trợ tối thiểu minsup)

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

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

hai bước: bước nối và bước tỉa Trong lần lặp thứ k, thuật toán nối hai (k-1)-

Trang 25

tập mục để sinh ra k-tập mục, sử dụng tính chất Apriori để tỉa các tập ứng viên Bước nối và bước tỉa như sau:

Bước kết nối (tìm Ck): Tập các k-tập mục ứng viên Ck được sinh ra bởi việc kết nối Lk-1 với chính nó Hai tập mục l1 và l2 của Lk-1 được nối nếu chúng

có (k-2) mục dữ liệu đầu bằng nhau, mục dữ liệu thứ (k-1) của l1 nhỏ hơn của l2:

(l1[1] = l2[1]) ∧ (l1[2] = l2[2]) ∧…∧ (l1[k-2] = l2[k-2]) ∧ (l1[k-1] < l2 [k-1]) Dạng của tập mục nhận được bởi nối l1 và l2 là:

l1[1]l1[2] … l1[k-2]l1[k-1]l2[k-1]

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

đó không thể là phổ biến, có thể loại bỏ khỏi Ck Việc kiểm tra các (k-1)-tập mục con có thể thực hiện nhanh bởi duy trì một cây băm của tất cả các tập mục phổ biến đã tìm thấy

Thuật toán Apriori ( tìm các tập mục phổ biến)

Input: CSDL DB, ngưỡng độ hỗ trợ minsup

Output: Tập các tập mục phổ biến L trong DB

Trang 26

(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;

1.7.2 Thuật toán FP-growth

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ó 104mục phổ biế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

Trang 27

- Lặp nhiều lần duyệt CSDL, số lần duyệt CSDL của thuật toán Apriori bằng độ dài của tập mục phổ biến dài nhất tìm đượ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ả

Để khắc phục nhược điểm trên của thuật toán Apriori, J Han, J Pei, Y Yin và R Mao đề xuất thuật toán FP-growth [5] Thuật toán FP-growth được xây dựng với 3 kỹ thuật chính:

(1) Nén dữ liệu thích hợp vào một cấu trúc cây gọi là cây FP-tree Chỉ có các 1-tập mục (1-item) ở trong cây và các nút của cây được sắp xếp để các nút xuất hiện phổ biến hơn có thể dễ dàng chia sẻ với các nút xuất hiện ít hơn

(2) Thực hiện phương pháp khai phá phát triển (growth) từng đoạn dựa trên cây FP-tree gọi là phương pháp FP-growth

(3) Kỹ thuật tìm kiếm được dùng ở đây là dựa vào sự phân chia, “chia để trị”, phân rã nhiệm vụ khai phá thành các nhiệm vụ nhỏ hơn Thuật toán FP-growth do nén toàn bộ CSDL lên một cấu trúc dữ liệu nhỏ hơn là cây FP-tree nên tránh được việc duyệt nhiều lần CSDL (thuật toán chỉ duyệt CSDL 2 lần) Tiếp theo thuật toán khai phá cây bằng cách phát triển dần các mẫu mà không sinh các tập mục ứng viên, do đó tránh được khối lượng tính toán lớn Phương pháp FP- growth đã chứng tỏ được tính hiệu quả của nó và có thể thực hiện khai phá cho cả các mẫu ngắn và dài, nhanh hơn thuật toán Apriori

Thuật toán FP- growth thực hiện như sau:

Đầu tiên, thuật toán duyệt CSDL lần thứ nhất để tính độ hỗ trợ của từng 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

Trang 28

Duyệt CSDL lần thứ hai, với mỗi giao tác 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 cất 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

Để hiểu phương pháp này làm việc thế nào, ta xét khai phá CSDL giao

tác DB sau với độ hỗ trợ tối thiểu minsup = 3/5

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

TID Các mục dữ liệu Các mục phổ biến đã sắp

Bước 2: Sắp các mục đủ độ hỗ trợ theo thứ tự giảm dần của độ hỗ trợ, ta

nhận được danh sách L sau:

Trang 29

Cây FP-tree được xây dựng như sau:

- Khởi tạo cây T, gốc của cây có nhãn null

- Duyệt CSDL lần thứ hai, với mỗi giao tác, loại các mục không phổ biến, các mục còn lại sắp theo thứ tự giảm dần của số lần xuất hiện, dãy các mục phổ biến đó được thêm vào cây cùng với thay đổi số đếm của các mục trên cây cho phù hợp Quá trình xây dựng cây như hình sau:

Hình 1.6: Cây FP-tree được xây dựng dần khi thêm các giao tác T 1 , T 2 , T 3

Hình 1.7: Cây FP-tree của CSDL DB trong bảng 1.4

Trang 30

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 giao tác vào cây thực hiện đệ qui 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 giao tác t, gọi thủ tục insert_tree( t' , t), ở đó t' là nội dung của giao tác 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ợ, T là gốc của cây.)

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

1 Nếu T có nút con N mà N.itemname = P thì N.count++

2 Ngược lại

3 Tạo một nút mới N;

4 N.itemname := P; N.count := 1;

5 Thay đổi nút liên kết cho p bao gồm N;

6 Nếu P khác rỗng gọi thủ tục insert_tree( P, N );

Trang 31

Bắt đầu từ dưới lên của bảng đầu mục và cây, với mỗi mục A: dùng nút liên kết duyệ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 N mà N.itemname = A, xác định các tập mục 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 Ví dụ : đầu tiên xét mục P, sau đó đến M, như sau:

* Mục P:

- Có 2 đường:

+) F : 4, C : 3, A : 3, M : 2, P : 2 +) C : 1, B : 1, P : 1

(Tức là: FCAM xuất hiện hai lần với P và CB chỉ một lần Số lần xuất hiện của P là 2+1=3.)

- Từ đó suy ra cơ sở mẫu phụ thuộc (conditional pattern base) của P là:

- F: 2, C: 2, A: 3, M: 2

- C: 1, B: 1 Trong đó chỉ có C là phổ biến (xuất hiện 3 lần) do đó tập mục phổ biến tìm được là CP, tần xuất 3/5

* Mục M:

- Có 2 đường:

+) F: 4, C: 3, A: 3, M: 2 +) F: 4, C: 3, A: 3, B: 1, M: 1 (bây giờ ta bỏ qua P vì các tập mục phổ biến chứa nó đã tìm rồi)

- Cơ sở mẫu phụ thuộc của M là:

+) F: 2, C: 2, A: 2 +) F: 1, C: 1, C: 1, C: 1

- FP-tree phụ thuộc của M là chỉ có một đường:

+) F: 3, C: 3, A: 3

Trang 32

- Tìm theo cách đệ qui các tập mục phổ biến trên FP-tree phụ thuộc, đầu tiên cho A, sau đó cho C và F Cây FP-tree phụ thuộc của M như hình 1.5 sau:

• Cơ sở điều kiện của nút “M”:

(F: 2, C: 2, A: 2) (F: 1, C: 1, A: 1, B: 1)

• Cây điều kiện FP của “M”

Thuật toán FP- growth:

Input: Cây FP-Tree, CSDL DB, ngưỡng độ hỗ trợ minsupp

Output: Tập các mục thuờng xuyên

Method: Khai phá FP-tree được thực hiện bởi gọi lần đầu FP- growth

(FPtree, null), thực hiện như sau:

Procedure FP-growth (Tree , α )

{

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

(2) với tất cả các tổ hợp (kí hiệu là β ) của các nút trong đường đi P (3) sinh ra mẫu β ∪ α với support = độ hỗ trợ nhỏ nhất của các nút trong β ;

Trang 33

(4) Ngược lại: với mỗi mục ai trong hàng đầu mục của Tree {

(5) sinh ra : β := αi ∪ α với support= ai support;

(6) Xây dựng cơ sở mẫu phụ thuộc của β và sau đó FP-tree phụ thuộc của β là Tree β ;

(7) Nếu Tree β ≠ Ø thì gọi FP- growth (Tree β , β) }

}

Đánh giá thuật toán FP- Growth:

Ta có một số nhận xét về thuật toán như sau:

+ Độ phức tạp về thời gian: Chỉ duyệt CSDL 2 lần

+ Độ phức tạp về không gian: Độ cao của cây được giới hạn bởi kích thước của giao tác lớn nhất

+ Thuật toán không bao giờ bị ngắt bởi một mẫu dài nào của mọi giao tác Cây FP-tree duy trì đầy đủ thông tin cho khai phá các tập thuờng xuyê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 thuờng xuyên đã bị loại bỏ ngay từ đầu

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

1.8 Một số hướng mở rộng của bài toán khai phá tập mục phổ biến

Mô hình khai phá tập mục phổ biến cơ bản có nhiều ứng dụng trong thực

tế nhưng nó có những hạn chế, không đáp ứng đầy đủ yêu cầu của người sử dụng Ràng buộc về độ hỗ trợ của tập mục phổ biế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 của dữ liệu trong CSDL Để đáp ứng yêu cầu của thực tiễn, bài toán khai phá tập mục phổ biến đã có nhiều cách thức mở rộng và ứng dụng

Một hướng mở rộng bài toán có nhiều ứng dụng là quan tâm đến cấu trúc

dữ liệu và mức độ quan trọng khác nhau của các mục dữ liệu, các thuộc tính trong CSDL Một số mô hình mở rộng bài toán đã được nghiên cứu là:

Trang 34

- Quan tâm đến mức độ quan trọng 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ị được gọi là trọng số Độ hỗ trợ và độ tin cậy của luật kết hợp khi đó lần lượt trở thành độ hỗ trợ và độ tin cậy có trọng số Luật kết hợp có độ hỗ trợ và độ tin cậy trọng số hóa được gọi là luật kết hợp có trọng số

- Quan tâm đến các kiểu thuộc tính khác nhau trong CSDL như nhị phân,

đa phân, định lượng Luật kết hợp khi đó đượ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 phân khoảng các giá trị thuộc tính, sau đó có thể sử dụng các thuật toán khai phá luật kết hợp nhị phân đã biết

- Chú ý đến cả cấu trúc dữ liệu lẫn mức độ quan trọng khác nhau của các thuộc tính trong CSDL Theo hướng này, nhiều nhà nghiên cứu đề xuất các mô hình mở rộng: đánh giá sự đóng góp của tập mục trong tổng số các mục dữ liệu của CSDL; khai phá tập mục lợi ích cao, đánh giá lợi ích mà tập mục mang lại trong CSDL Chương sau sẽ trình bày về bài toán khai phá tập mục lợi ích cao này

Trang 35

Chương II: MỘT SỐ THUẬT TOÁN HIỆU QUẢ KHAI PHÁ TẬP

MỤC LỢI ÍCH CAO

Chương này trình bày bài toán tìm tập mục lợi ích cao và hai thuật toán : thuật toán Hai pha (Two Phase) và thuật toán HUI-Miner Thuật toán Hai pha đại diện cho phương pháp sinh ra các tập mục ứng viên, rồi duyệt cơ sở dữ liệu

để tính lợi ích của tập mục ứng viên đó Phương pháp này có ưu điểm là dễ hiểu, dễ lập trình nhưng có nhược điểm là sinh ra quá nhiều tập ứng viên và duyệt nhiều lần CSDL, chi phí tính toán lớn Thuật toán HUI-Miner khắc phục những hạn chế của thuật toán Hai pha trên Thuật toán chỉ duyệt CSDL hai lần

để xây dựng một cấu trúc dữ liệu mới gọi là utilyti list, sau đó tìm tập mục lợi

ích cao trên cấu trúc dữ liệu này

2.1 Bài toán tập mục lợi ích cao

Bài toán truyền thống khai phá luật kết hợp do R Agrawal, T Imielinski

và A N Swami đề xuất lần đầu tiên vào năm 1993 [3] đã được nhiều nhà nghiên cứu quan tâm Mục đích của nó là phát hiện các tập mục phổ biến, từ

đó tạo các luật kết hợp Bài toán truyền thống này có nhiều ứng dụng, tuy vậy

do tập mục phổ biến chỉ mang ngữ nghĩa thống kê nên mô hình bài toán này chỉ đáp ứng được phần nào nhu cầu ứng dụng thực tiễn Người kinh doanh quản

lý quan tâm nhiều hơn đến việc phát hiện những khách hàng đem lại lợi nhuận cao

Trong thực tế, có những nhóm mặt hàng có thể bán được rất ít nhưng mang lại lợi ích lớn, ngược lại có những nhóm mặt hàng phổ biến bán được nhưng lợi ích mang lại không cao Gần đây, nhằm khắc phục hạn chế của bài toán cơ bản khai phá luật kết hợp, người ta đã mở rộng nó theo nhiều hướng khác nhau H Yao, H J Hamilton và cộng sự đã đề xuất bài toán khai phá tập mục lợi ích cao [9][10] Lợi ích của một tập mục là số đo lợi nhuận mà nó có thể mang lại trong kinh doanh, được tính toán dựa trên giá trị khách quan và giá trị chủ quan của các mục thành viên Giá trị khách quan của một mục là số

Trang 36

đơn vị mục bán được, dữ liệu này có sẵn trong cơ sở dữ liệu Giá trị chủ quan của một mục là giá trị lợi nhuận mà mỗi đơn vị mục có thể đem lại, theo đánh giá của nhà kinh doanh Khai phá tập mục lợi ích cao là khám phá tất cả tập mục X đem lại lợi ích u(X) ≥ δ, trong đó δ là ngưỡng quy định bởi người sử dụng

Có thể coi bài toán cơ bản khai phá tập mục phổ biến là trường hợp đặc biệt của bài toán khai phá tập mục lợi ích cao, trong đó tất cả các mục đều có giá trị khách quan bằng 0 hoặc 1 và giá trị chủ quan bằng 1

Các thuật toán khám phá tập mục phổ biến được xây dựng theo phương pháp tìm kiếm từng bước Cơ sở của các thuật toán này là tính chất Apriori hay còn gọi là tính chất phản đơn điệu (anti monotone) của tập mục phổ biến Tính chất đó là “tập con khác rỗng của một tập mục phổ biến phải là tập phổ biến” Điều này có nghĩa các (k+1)-tập mục phổ biến chỉ có thể sinh ra từ các k-tập mục phổ biến Tính chất Apriori cho phép loại bỏ được các tổ hợp mục không phổ biến ra khỏi không gian tìm kiếm tại mỗi bước Đáng tiếc là các tập mục lợi ích cao không thỏa mãn tính chất Apriori Do đó, việc rút gọn không gian tìm kiếm, phát hiện tập mục lợi ích cao không thể thực hiện được như trong

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

2.1.1 Các khái niệm liên quan đến khai phá tập mục lợi ích cao

Phần này nêu một số định nghĩa và thuật ngữ mô tả bài toán khai phá tập mục lợi ích cao [9] [10]

Cho tập các mục (item) I = {i 1 ,i 2 ,…,i n } Một giao tác (transaction) T là một tập con của I, T I Cơ sở dữ liệu là một tập các giao tác DB={T1,T2,…,Tm} Mỗi giao tác được gán một định danh tid Một tập mục con

X I, gồm k mục phân biệt được gọi là một k-tập mục Giao tác T gọi là chứa

tập mục X nếu X ⊆ T

Trang 37

Định nghĩa 2.1:

Ta gọi giá trị của mục ip trong giao tác Tq ( giá trị tại cột ip hàng Tq của

cơ sở dữ liệu) là giá trị khách quan (objective value) của mục ip tại giao tác Tq,

ký hiệu là o(ip,Tq)

Thông thường giá trị khách quan của mục dữ liệu là số tự nhiên (như số

lượng đã bán của một mặt hàng trong giao tác)

Định nghĩa 2.2:

Ta gọi giá trị do nhà kinh doanh gán cho mục ip trong cơ sở dữ liệu, dựa trên đánh giá lợi nhuận mà mỗi đơn vị mục dữ liệu có thể đem lại, là giá trị chủ

quan (subjective value) của mục ip và ký hiệu là s(ip)

Giá trị chủ quan của các mục thường được cho trong một bảng kèm theo

cơ sở dữ liệu và gọi là bảng lợi ích (utility table) Chẳng hạn, cơ sở dữ liệu các

giao tác và bảng lợi ích ở bảng 2.1 và bảng 2.2, giá trị khách quan của mục B tại giao tác T2 là o(B,T2)=8, giá trị chủ quan của B là s(B)=4

Bảng 2.1: Cơ sở dữ liệu giao tác

Trang 38

Định nghĩa 2.3: Ký hiệu x là giá trị khách quan, y là giá trị chủ quan của mục

dữ liệu Một hàm 2 biến f(x,y):RxR→R, đơn điệu tăng theo x và theo y, được

gọi là hàm lợi ích

Thông thường hàm lợi ích được xác định như sau: f(x,y)= x x y

Định nghĩa 2.4:

Cho hàm lợi ích f(x,y) Lợi ích của mục ip tại giao tác Tq, ký hiệu u(i p, T q )

là giá trị của hàm f(x,y) tại o(i p, T q ) và s(i p ), tức là:

u(i p, T q )=f(o(i p, T q ), s(i p ))

Định nghĩa 2.5:

Cho tập mục X chứa trong giao tác Tq Lợi ích của tập mục X tại giao

tác, T q ký hiệu u(X, T q )là tổng lợi ích của tất cả các mục i p thuộc X tại giao tác

Trang 39

Ví dụ: trong cơ sở dữ liệu bảng 2.1 và bảng 2.2, u(B,T 2 )=8x4=32, xét X={B,D}, u(X,T 2 ) = u(B,T 2 )+ u(D,T 2 )=8x4+2x2=36, có 2 giao tác T 2 và T 7

chứa tập mục X, do đó db x ={ T 2, T 7 }, u(X)= u(X,T 2 )+ u(X,T 7 )= 36+74=110

Định nghĩa 2.7: (transaction utility) Lợi ích của giao tác T q , ký hiệu tu(T q ) , là

tổng lợi ích của tất cả các mục dữ liệu trong giao tác, tức là:

tu(T q )=u(T q , T q )= ∑𝑖𝑝∈𝑇𝑞𝑢(𝑖𝑝, 𝑇𝑞)

Ví dụ, trong cơ sở dữ liệu bảng 2.1 và bảng 2.2, tu(T 2 )=8x4+2x2+1x4=40

Định nghĩa 2.8: Ngưỡng lợi ích tối thiểu, ký hiệu δ, là phần trăm của tổng lợi

ích của toàn bộ cơ sở dữ liệu

Từ ngưỡng lợi ích tối thiểu δ, có thể tính giá trị lợi ích tối thiểu minutil

Định nghĩa 2.9: Cho ngưỡng lợi ích minutil(>0) và xét tập mục X, X được gọi

là tập mục lợi ích cao nếu u(X) ≥ minutil Trường hợp ngược lại, X được gọi là tập mục lợi ích thấp

2.1.2 Bài toán khai phá tập mục lợi ích cao:

Cho cơ sở dữ liệu giao tác DB và ràng buộc lợi ích minutil, khai phá tập mục lợi ích cao là tìm tập HU(High Utility), chứa tất cả các tập mục lợi ích cao, tức là tập HU= {X|XI, u(X) ≥ minutil }

Nhận xét :

- Ràng buộc lợi ích không có tính chất phản đơn điệu, ví dụ trong cơ sở

dữ liệu bảng 2.1, ta có u(BC)=43<51=u(BCE), trong khi đó

u(BC)=43>0=u(BCD)

Trang 40

- Về mặt ngữ nghĩa, tập mục lợi ích cao khác với tập mục phổ biến, dù

có khai phá trên tập dữ liệu nhị phân với ngưỡng lợi ích minutil bằng ngưỡng

độ hỗ trợ minsup thì kết quả khai phá cũng khác nhau, các tập mục tìm được có

ý nghĩa khác nhau Như vậy, phát triển mở rộng bài toán khai phá tập mục phổ biến thành bài toán khai phá tập mục lợi ích cao không đơn thuần là mở rộng kiểu dữ liệu mà là thay đổi nhiệm vụ khai phá, khai phá với nhiệm vụ mới và

kết quả các tập mục tìm được có các ứng dụng mới

Định lý 2.1: (cận trên của lợi ích) Cho k-tập mục X k , u(X k ) là lợi ích của X k

tính trên hàm lợi ích không âm Khi đó:

u(X k ) ≤ ∑ 𝑢(𝑋

𝑘−1 ) 𝑋𝑘−1∈ 𝐿𝑘−1

Trong [7], Y.Liu đưa ra khái niệm lợi ích của một tập mục tính theo lợi

ích của các giao tác chứa nó, gọi là lợi ích TWU (Transaction Weighted Utility)

Định nghĩa 2.10: (Transaction Weighted Utility-TWU) Lợi ích TWU của tập

mục X, ký hiệu twu(X), là tổng lợi ích của tất cả các giao tác chứa X trong

CSDL, tức là:

twu(X) = ∑𝑇𝑞 ∈ 𝐷𝐵 ∧ 𝑇𝑞 ⊇𝑋 𝑡𝑢(𝑇𝑞)

Nhận xét: vì u(X,T q ) ≤ tu(T q ) nên u(X) ≤ twu(X)

Có thể coi twu(X) như là cận trên của u(X) Với ngưỡng lợi ích minutil, nếu X là tập mục lợi ích cao thì X cũng là tập mục lợi ích TWU cao vì twu(X) ≥

Ngày đăng: 26/07/2017, 15:56

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] Vũ Đức Thi, Nguyễn Huy Đức (2008), “Thuật toán hiệu quả khai phá tập mục lợi ích cao trên cấu trúc dữ liệu cây”, Tạp chí Tin học và Điều khiển học, 24(3), tr. 204-216 Sách, tạp chí
Tiêu đề: Thuật toán hiệu quả khai phá tập mục lợi ích cao trên cấu trúc dữ liệu cây”, "Tạp chí Tin học và Điều khiển học
Tác giả: Vũ Đức Thi, Nguyễn Huy Đức
Năm: 2008
[2] Nguyễn Huy Đức (2009), “Khai phá tập mục cổ phần cao và lợi ích cao trong cơ sở dữ liệu”. Luận án tiến sĩ toán học, Viện Công nghệ Thông tin, Hà Nội 2009.Tiếng Anh Sách, tạp chí
Tiêu đề: Khai phá tập mục cổ phần cao và lợi ích cao trong cơ sở dữ liệu”. "Luận án tiến sĩ toán học
Tác giả: Nguyễn Huy Đức
Năm: 2009
[3] Agrawal R, Imielinski T, and Swami A.N (1993), “Mining association rules between sets of items in large databases”. In Proceedings of the 1993 ACM SIGMOD International Conference on Management of Data, Washington, D.C Sách, tạp chí
Tiêu đề: Mining association rules between sets of items in large databases”. "In Proceedings of the 1993 ACM SIGMOD International Conference on Management of Data
Tác giả: Agrawal R, Imielinski T, and Swami A.N
Năm: 1993
[4] Han J, M. Kamber, J. Pei, (2012). “Data Mining: Concepts and Techniques”. Third Edition, Morgan Kaufmann Publishers is an imprint of Elsevier, USA Sách, tạp chí
Tiêu đề: Data Mining: Concepts and Techniques”. "Third Edition, Morgan Kaufmann Publishers is an imprint of Elsevier
Tác giả: Han J, M. Kamber, J. Pei
Năm: 2012
[5] Han J. (2004), “Mining Frequent Patterns without Candidate Generation: A Frequent-Pattern Tree Approach”, Data Mining and Knowledge Discovery, Vol.8, pp. 53–87 Sách, tạp chí
Tiêu đề: Mining Frequent Patterns without Candidate Generation: A Frequent-Pattern Tree Approach”, "Data Mining and Knowledge Discovery
Tác giả: Han J
Năm: 2004
[6] Philippe Fournier-Viger, Cheng-Wei Wu, Souleymane Zida, Vincent S.Tseng (2014) “FHM: Faster High-Utility Itemset Mining using Estimated Utility Co-occurrence Pruning”. Proc. 21st International Symposium on Methodologies for Intelligent Systems (ISMIS 2014), Springer, LNAI, pp. 83- 92 Sách, tạp chí
Tiêu đề: FHM: Faster High-Utility Itemset Mining using Estimated Utility Co-occurrence Pruning”. "Proc. 21st International Symposium on Methodologies for Intelligent Systems (ISMIS 2014)
[7] Ying Liu, Wei-keng Liao, and Alok Choudhary: “A two-phase algorithm for fast discovery of high utility itemsets”. In: Proc. PAKDD 2005, pp. 689-695 Sách, tạp chí
Tiêu đề: A two-phase algorithm for fast discovery of high utility itemsets”. "In: Proc. PAKDD 2005
[8] Mengchi Liu, Junfeng Qu (2012). “Mining High Utility Itemsets without Candidate Generation”. In Proceedings of CIKM12, pp. 55-64 Sách, tạp chí
Tiêu đề: Mining High Utility Itemsets without Candidate Generation”. "In Proceedings of CIKM12
Tác giả: Mengchi Liu, Junfeng Qu
Năm: 2012

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