Tải bản đầy đủ (.pdf) (76 trang)

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ĩ

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.56 MB, 76 trang )

1

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC LẠC HỒNG
***

HỒ XUÂN KIÊN

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Ĩ CÔNG NGHỆ THÔNG TIN

Đồng Nai, năm 2017


2

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC LẠC HỒNG
***

HỒ XUÂN KIÊN

KHAI THÁC LUẬT KẾT HỢP CÓ TRỌNG SỐ
TRONG CƠ SỞ DỮ LIỆU
Chuyên nghành: CÔNG NGHỆ THÔNG TIN
Mã số: 60480201

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


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


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


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


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


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


8

DANH MỤC BẢNG
Ý NGHĨA

STT

TRANG

Bảng 1.1

Biểu diễn ngang của CSDL giao tác

17

Bảng 1.2

Biểu diễn dọc của CSDL giao tác

17

Bảng 1.3

Ma trận giao tác của CSDL

18


Bảng 1.4

Cơ sở dữ liệu giao tác minh hoạ thực hiện thuật toán

27

Apriori
Bảng 2.1

CSDL giao tác

44

Bảng 2.2

Trọng số của các mục

44


9

DANH MỤC HÌNH
STT

Ý NGHĨA

TRANG


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.2

Giao diện 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


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], SPWIPtree 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ố.


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.


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ê…


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.


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.

Knowledge
Pattern Evaluation


Data Mining
Task-relevant Data

Data Warehouse
Selection

Data
Cleaning

Data Integration

Databases

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



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,…


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.


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  i1 , i2 ,..., iM  . Một giao tác
(transaction) T là một tập con của I, T  I . Cơ sở dữ liệu giao tác là tập các giao
tác DB ={ T1 , T2 ,..., TN}. 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. Ta nói giao tác T
chứa tập mục X nếu X  T .
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
TID

Mục dữ liệu

T1

B,C


T2

B,C,D

T3
T4

A, B, D
A, C, D

T5

C, D

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 , T 7 , T9

C


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

D

T1 , T2 , T3 , T 4 , T5


18

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


 1 khi iq  Tp
m pq  

 0 khi iq  Tp
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
TID

A

B

C

D


T1
T2
T3
T4
T5

0
0
1
1
0

1
1
1
0
0

1
1
0
1
1

0
1
1
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 X  Y , 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 X  I . 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à:

SC ( X )  T  DT T  X  , sup( X ) 

T  DT T  X 
DT

.

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ó:

0  sup( X )  1 với mọi tập mục X  I .


19

Định nghĩa 1.4. Cho tập mục X  I 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( X )  minsup , 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 X  Y , ký hiệu là sup( X  Y ),
là độ hỗ trợ của tập mục X  Y , sup( X  Y )  sup( X  Y ) .
Như vậy, độ hỗ trợ của luật kết hợp X  Y chính là xác suất xuất hiện đồng
thời của X và Y trong một giao tác, tức là P( X  Y ) .
Ta có: 0  sup( 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ệ giữa số giao tác chứa X  Y và số giao tác chứa X trong
cơ sở dữ liệu DT.

conf ( X  Y ) 

sup( X Y )
sup( X )

Độ tin cậy của luật kết hợp X  Y chính là xác suất có điều kiện P Y X  .
Ta có: 0  conf ( X  Y )  1 .
Với các khái niệm về độ hỗ trợ và độ tin cậy trên đây, bài toán khai phá luật kết
hợp được phát biểu như sau.
Cho cơ sở dữ liệu giao tác DT, ngưỡng độ hỗ trợ tối thiểu minsup và ngưỡng độ
tin cậy tối thiểu minconf. Hãy tìm tất cả các luật kết hợp X  Y trong DT thỏa
mãn đồng thời hai điều kiện:

sup( X  Y )  minsup ,
conf  X  Y   minconf .
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).



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:
conf 

sup(ABCD )
sup(AB )

(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
tất cả CMk 

M!
tập mục ứng viên có k mục.
k !( M  k )!

Duyệt theo chiều sâu là duyệt qua cơ sở dữ liệu đã được chuyển đổi thành cấu
trúc cây, quá trình duyệt gọi đệ quy theo chiều sâu của cây.


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.


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:
sup(L)

sup(L)

conf(B  (L-B)) = sup(B)  sup(A) < minconf .
Tuy nhiên, nếu có (L - C)  C thì ta cũng có luật (L – D)  D, với D  C và D
 . Thật vậy,
vì D  C nên (L - D)  (L - C), do đó sup(L - D)  sup(L - C)
 conf (( L  D)  D) 

sup((L  D)  D)
sup(L)
sup(L)


 min conf .
sup(L  D)
sup(L  D) sup(L  C )

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ó.


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.


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 :
Ý nghĩa

Ký hiệu

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

Lk

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)

Tập các k-tập mục ứng viên (các tập mục thường xuyên

Ck

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,


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 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” mục dữ liệu thứ (k-1)
của l2 (theo thứ tự từ điển):

l 1  l 1  l 2  l 2  ....  l k  2  l k  2  l k  1  l k  1
1

2

1

2

1

2

1

2

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ừ L k 1 ;

(4)

For (each T  DB ) do begin

(5)

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

(6)

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

(7)
(8)

end;



×