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

Luật kế hợp đa cấp và ứng dụng cho bài toán khai phá luật kết hợp đa cấp tại siêu thị điện máy huy cường quảng ngãi

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 (3.99 MB, 80 trang )

i

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
---------------------------------------

PHAN CHÍ THỦY

PHAN CHÍ THỦY

KHOA HỌC MÁY TÍNH

LUẬT KẾT HỢP ĐA CẤP VÀ ỨNG DỤNG CHO BÀI
TOÁN KHAI PHÁ LUẬT KẾT HỢP ĐA CẤP TẠI SIÊU
THỊ ĐIỆN MÁY HUY CƯỜNG – QUẢNG NGÃI

LUẬN VĂN THẠC SĨ KỸ THUẬT
Chun ngành: KHOA HỌC MÁY TÍNH

KHĨA 2015-2017
Đà Nẵng – Năm 2018


ii

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
---------------------------------------

PHAN CHÍ THỦY


LUẬT KẾT HỢP ĐA CẤP VÀ ỨNG DỤNG CHO BÀI TOÁN
KHAI PHÁ LUẬT KẾT HỢP ĐA CẤP TẠI SIÊU THỊ ĐIỆN MÁY
HUY CƯỜNG – QUẢNG NGÃI

Chuyên ngành : KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01

LUẬN VĂN THẠC SĨ KỸ THUẬT

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. TRƯƠNG NGỌC CHÂU

Đà Nẵng - Năm 2018


iii

LỜI CẢM ƠN
Trước hết em xin gửi lời cảm ơn chân thành đến tồn thể các thầy cơ giáo
trong Khoa Công nghệ Thông tin – Trường Đại học Bách khoa – Đại học Đà
Nẵng đã tận tình dạy dỗ chúng em trong suốt quá trình học tập và nghiên cứu tại
trường.
Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến Thầy giáo TS. Trương
Ngọc Châu – Giảng viên chính, Khoa Cơng nghệ Thơng tin – Trường Đại học
Bách khoa – Đại học Đà Nẵng đã quan tâm hướng dẫn và đưa ra những gợi ý,
góp ý, chỉnh sửa vơ cùng q báu cho em trong q trình làm luận văn tốt
nghiệp.
Cuối cùng xin chân thành cảm ơn những người bạn, đồng nghiệp, gia đình
đã tạo điều kiện giúp đỡ, chia sẽ với em trong suốt quá trình làm luận văn.

Đà Nẵng, ngày 09 tháng 11 năm 2017

HỌC VIÊN

Phan Chí Thủy


iv

LỜI CAM ĐOAN
Tơi cam đoan đây là cơng trình nghiên cứu của riêng tôi dưới sự hướng
dẫn của Thầy TS. Trương Ngọc Châu. Các số liệu, kết quả nêu trong luận văn là
trung thực và chưa từng được ai công bố trong bất kỳ cơng trình nào khác.

Đà Nẵng, ngày 09 tháng 11 năm 2017
Tác giả luận văn

Phan Chí Thủy


v

MỤC LỤC
Trang phụ bìa
Lời cảm ơn ....................................................................................................... i
Lời cam đoan .................................................................................................... ii
Mục lục................................................................................... ........................... iii
Tóm tắt luận văn .............................................................................................. v
Danh mục các ký hiệu, từ viết tắt ................................................................... vi
Danh mục các bảng ........................................................................................ vii
Danh mục các hình vẽ ................................................................................... viii
MỞ ĐẦU ........................................................................................................... 1

CHƯƠNG 1. TỔNG QUAN KHAI PHÁ DỮ LIỆU ...................................... 4
1.1. Các khái niệm cơ bản ............................................................................. 4
1.1.1. Khai phá dữ liệu ....................................................................... 4
1.1.2. Các kĩ thuật khai phá dữ liệu ........................................................ 5
1.2. Khai phá luật kết hợp ............................................................................. 7
1.2.1. Các khái niệm cơ bản ................................................................... 7
1.2.1.1. Mục (Item) .......................................................................... 7
1.2.1.2. Tập mục (Itemset) ............................................................... 7
1.2.1.3. Giao dịch (Transaction)...................................................... 7
1.2.1.4. Độ hỗ trợ của tập mục ........................................................ 8
1.2.1.5. Tập mục phổ biến ............................................................... 8
1.2.1.6. Luật kết hợp ........................................................................ 9
1.2.1.7. Độ hỗ trợ và độ tin cậy của luật kết hợp ............................. 9
1.2.2. Phân loại luật kết hợp ................................................................... 9
1.2.2.1. Luật kết hợp nhị phân ....................................................... 9
1.2.2.2. Luật có thuộc tính số và thuộc tính hạng mục .................. 10
1.2.2.3. Luật kết hợp đơn mức ....................................................... 11
1.2.2.4. Luật kết hợp đa mức ......................................................... 11
1.2.3. Ứng dụng của luật kết hợp.......................................................... 12
1.3. Một số thuật toán khai phá luật kết hợp: ................................................ 12
1.3.1. Phát biểu bài toán ....................................................................... 12
1.3.2 Thuật toán Apriori ....................................................................... 12
1.3.2.1 Thuật toán ......................................................................... 13
1.3.2.2. Cách sinh luật từ tập mục phổ biến................................... 16
1.3.3. Thuật toán FP-Growth ................................................................ 17
1.3.3.1. Giới thiệu.......................................................................... 17
1.3.3.2. Cấu trúc cây FP- Tree ...................................................... 17
1.3.3.3. Xây dựng cây FP-Tree ...................................................... 18



vi

1.3.3.4. Ví dụ minh họa xây dựng cây FP - Tree ............................ 18
1.3.3.5. Khai phá cây FP-Tree để tìm tập mục phổ biến ................ 22
CHƯƠNG 2. KHAI PHÁ LUẬT KẾT HỢP ĐA CẤP DỰA TRÊN .......….25
TẬP MỤC PHỔ BIẾN NGUYÊN THỦY. .................................................... 25
2.1. Luật kết hợp đa cấp ............................................................................... 25
2.2. Một số phương pháp khai phá luật kết hợp đa cấp. ................................ 26
2.2.1. Khai phá luật kết hợp đa cấp dựa trên ma trận logic ................... 26
2.2.1.1. Giới thiệu: ........................................................................ 26
2.2.1.2. Thuật tốn: ....................................................................... 26
2.2.1.3. Ví dụ minh họa ................................................................. 26
2.2.3. Khai phá luật kết hợp đa cấp dựa trên tập mục phổ biến nguyên
thủy
............................................................................................................ 34
2.2.3.1. Giới thiệu: ....................................................................... 34
2.2.3.2. Thuật tốn ........................................................................ 35
2.2.3.3. Ví dụ minh họa: ............................................................... 35
2.3. Kết luận: ................................................................................................ 45
CHƯƠNG 3. CÀI ĐẶT THỰC NGHIỆM, ỨNG DỤNG CHO BÀI TOÁN
KHAI PHÁ LUẬT KẾT HỢP ĐA CẤP TẠI SIÊU THỊ ĐIỆN MÁY HUY
CƯỜNG – QUẢNG NGÃI46
3.1. Dữ liệu đầu vào: .................................................................................. 46
3.1.1. Bảng các giao tác dữ liệu được lưu trữ trong file Context.txt theo
quy ước: .......................................................................................................... 46
3.1.2. Giá trị độ hỗ trợ tối thiểu minsup (s) .......................................... 47
3.1.3. Giá trị độ tin cậy tối thiểu minconf (c) ....................................... 47
3.2. Dữ liệu đầu ra: ...................................................................................... 47
3.3. Cài đặt chương trình: ............................................................................ 47
3.4. Phân tích, nhận xét kết quả thực nghiệm: ............................................. 49

3.5. Kết luận: ............................................................................................... 49
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ..................................................... 50
DANH MỤC TÀI LIỆU THAM KHẢO ....................................................... 51
PHỤ LỤC ....................................................................................................... 52
QUYẾT ĐỊNH GIAO ĐỀ TÀI.
BẢN SAO KẾT LUẬN CỦA HỘI ĐỒNG, BẢN SAO NHẬN XÉT CỦA
CÁC PHẢN BIỆN.


vii

TÓM TẮT LUẬN VĂN
LUẬT KẾT HỢP ĐA CẤP VÀ ỨNG DỤNG CHO BÀI TOÁN KHAI PHÁ
LUẬT KẾT HỢP ĐA CẤP TẠI SIÊU THỊ ĐIỆN MÁY HUY CƯỜNG –
QUẢNG NGÃI
Học viên: PHAN CHÍ THỦY.
Mã số:

Chun ngành: KHOA HỌC MÁY TÍNH.

. Khóa: 2016-2018. Trường Đại học Bách khoa - ĐHĐN

Tóm tắt - Ngày nay, lĩnh vực kinh doanh nói chung và bài tốn kinh doanh các mặt hàng
tại siêu thị nói riêng đang là vấn đề cạnh tranh, đầy biến động. Trãi qua thời gian, các đơn
vị/tổ chức hoạt động trong lĩnh vực này, đã và đang lưu trữ một khối lượng dữ liệu khổng
lồ. Khi lưu trữ khối dữ liệu này, họ hy vọng rằng, ở chúng sẽ chứa đựng những thơng tin
thực sự có giá trị, để trợ giúp cho việc ra quyết định đúng đắn và kịp thời ở hiện tại, cũng
như có những chiến lược phát triển kinh doanh hợp lý và bền vững trong tương lai.
Xuất phát từ nhu cầu thực tế này, Khai phá dữ liệu (KPDL) trong cơ sở dữ liệu
(CSDL) đã và đang là một xu hướng quan trọng của nền công nghệ thông tin (CNTT) thế

giới, một trong những hướng tiếp cận hiệu quả là sử dụng luật kết hợp (Association
rules), nhằm phát hiện ra mối liên hệ có tính phổ biến giữa các thành phần dữ liệu trong
cơ sở dữ liệu, trong đó khai phá luật kết hợp đa cấp đang là hướng đi hứa hẹn đầy triển
vọng.
Từ khóa – Cơng nghệ thông tin; Khai phá dữ liệu; Luật kết hợp; Luật kết hợp đa cấp; Cơ
sở dữ liệu; Thơng tin; Tính phổ biến; Quyết định; Chiến lược; Kinh doanh; Siêu thị.

THE MULTI-LEVEL ASSOCIATION RULES AND APPLICATION FOR
PROBLEM OF MINING MULTI-LEVEL ASSOCIATION RULES AT HUY
CUONG – QUANG NGAI MACHINE ELECTRIC SUPERMARKET
Abstract – Nowdays, the business areas in general and the business problem of Items in
supermarkets in particular, are a matter of competition, full of change. Over time, the
units/organizations active in this field, has been hosting a huge volume of data. When
storing this data blocks, they hope that, in them shall contain such information is really
valuable, In order to help the decision-making right and timely in the present, as well as
strategies developing rational and sustainable business in the future.
Derived from this fact needs, data mining in the DATABASE has been and is a
significant trend of the information technology (IT) world, one of the most efficient
approach is to use the association rules, which aims to uncover the popular relationships
between the data elements in the DATABASE, in which mining multilevel association
rules are directions promises full prospects.
Key words – Information Technology; Data Mining; Asociation Rules; Multil-level
Association Rules; Databases; Information; Prequent; Decision; Strategy; Business;
Supermarkets.


viii

DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT
CÁC KÝ HIỆU:

c
s
F-List
F-List(l)
F-ListP
FP(l)-Tree
FP-TreeP
k-Itemset
Lk
Ck


Độ tin cậy tối thiểu
Độ hỗ trợ tối thiểu
Danh sách các tập mục phổ biến gồm 1 phần tử trên cây FP-Tree
Danh sách các tập mục phổ biến gồm 1 phần tử ở mức l
Danh sách các tập mục phổ biến gồm 1 phần tử trên cây FP-TreeP
Cây FP-Tree ở mức khái niệm l
Cây FP-Tree dựa trên mơ hình điều kiện của nút P
Tập mục gồm có k phần tử
Tập mục phổ biến có k phần tử
Tập ứng viên có k phần tử
Rỗng, khơng có phần tử nào

CÁC TỪ VIẾT TẮT:
CFP
The algorithm for Constructing FP(l)-Tree
CSDL
Cơ sở dữ liệu
KPDL

Khai phá dữ liệu
MHĐK
Mô hình điều kiện
MLBL
Multilevel Association Rule Based on Boolean Matrix
TMPB
Tập mục phổ biến
FP-Tree
Frequent Pattern-Tree


ix

DANH MỤC CÁC BẢNG
Số hiệu
bảng
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
2.1
2.2
2.3
2.4

2.5
2.6
2.7
2.8
2.9
2.10
3.1
3.2
3.3

Tên bảng

Trang

Bảng dữ liệu giao dịch D
Hệ thống dữ liệu bán hàng đơn giản
Bảng dữ liệu giao dịch D
Bảng dữ liệu giao dịch D, với các thuộc tính của con người
Bảng dữ liệu một hệ thống bán hàng
Hệ thống cơ sở dữ liệu đơn giản
Tập mục sắp xếp theo độ hỗ trợ giảm dần
Bảng F-List
Các giao tác được sắp xếp theo bảng F-List
Bảng tổng hợp kết quả xây dựng MHĐK tổng quát và cây FP-Tree
tương ứng
Hệ thống dữ liệu giao dịch của cửa hàng thực phẩm
Bảng mã hóa các mặt hàng thực phẩm
Bảng mã hóa các mặt hàng theo từng mức khái niệm
Hệ thống dữ liệu giao dịch của cửa hàng điện tử
Bảng mã hóa các mặt hàng điện tử theo từng mức khái niệm

Bảng mã hóa các mặt hàng điện tử
Bảng F-List(0) ở mức nguyên thủy
Luật kết hợp ở mức nguyên thủy
Luật kết hợp ở mức 1
Luật kết hợp ở mức 2
Tri thức phát hiện được từ Luật kết hợp ở mức 0 (Mức nguyên
thủy)
Tri thức phát hiện được từ Luật kết hợp ở mức 1
Tri thức phát hiện được từ Luật kết hợp ở mức 2

7
8
10
10
14
19
19
20
20
24
26
28
28
35
36
36
37
42
44
45

52
57
58


x

DANH MỤC CÁC HÌNH VẼ
Số hiệu
hình vẽ
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
1.12
1.13
1.14
1.15
1.16
2.1
2.2
2.3
2.4

2.5
2.6
2.7
2.8
2.9
2.10
2.11
2.12
2.13
2.14
2.15
2.16
2.17
2.18
2.19
2.20
2.21

Tên hình vẽ
Q trình phát hiện tri thức
Dữ liệu trên cây phân cấp khái niệm
Tập mục phổ biến L1
Tập mục ứng cử C2 và tập mục phổ biến L2
Tập mục ứng cử C3 và tập mục phổ biến L3
Tập mục ứng cử C4
Cây FP-Tree mới khởi tạo
Cây FP-Tree sau thực hiện xong giao dịch thứ nhất
Cây FP-Tree sau thực hiện xong giao dịch thứ hai
Cây FP-Tree sau thực hiện xong giao dịch thứ ba
Cây FP-Tree sau thực hiện xong giao dịch thứ tư.

Cây FP-Tree toàn cục
Cây FP-Tree trên MHĐK của “P” (cây FP-TreeP)
Cây FP-TreeM trên MHĐK của “M”
Cây FP-TreeAM trên MHĐK của “AM”
Cây FP-TreeCM trên MHĐK của “CM”
Hệ thống phân cấp khái niệm các mặt hàng thực phẩm
Ma trận 1-Itemset ở mức 2
Ma trận 1-Itemset ở mức 2
Ma trận 2-Itemset phổ biến ở mức 2
Ma trận 3-Itemset phổ biến ở mức 2
Ma trận 1-Itemset ở mức 1
Ma trận 1-Itemset phổ biến ở mức 1
Ma trận 2-Itemset ở mức 1
Ma trận 2-Itemset phổ biến ở mức 1
Ma trận 3-Itemset phổ biến mức 1
Ma trận 1-Itemset phổ biến ở mức 0
Ma trận 2-Itemset ở mức 0
Ma trận 3-Itemset ở mức 0
Hệ thống phân cấp khái niệm các mặt hàng điện tử
Cây FP(0)-Tree sau khi đọc xong giao dịch thứ nhất
Cây FP(0)-Tree hoàn chỉnh
Cây FP(l)-tree ở bước 1
Cây FP(l)-Tree ở bước 2
Cây FP(l)-Tree ở bước 3
Cây FP(1)-Tree hoàn chỉnh
Cây FP(2)-Tree hoàn chỉnh

Trang
4
11

15
15
15
16
20
20
21
21
21
22
23
23
23
24
27
29
29
30
30
31
31
31
32
32
33
33
34
35
37
37

38
38
39
39
39


1

MỞ ĐẦU
1. Tính cấp thiết của đề tài:
Ngày ngay, trong thời kỳ cơng nghiệp hóa và hiện đại hóa với sự phát triển
vượt bậc của khoa học - công nghệ; các lĩnh vực kinh doanh, y học, tin sinh học, giáo
dục, viễn thơng, tài chính và thị trường chứng khốn… cũng phát triển mạnh mẽ
không ngừng. Trãi qua thời gian, các đơn vị/tổ chức hoạt động trong các lĩnh vực nói
trên đã lưu trữ một khối lượng dữ liệu khổng lồ. Khi lưu trữ các dữ liệu này, họ hy
vọng rằng ở chúng sẽ chứa đựng những giá trị nhất định nào đó. Tuy nhiên, theo thống
kê thì chỉ có một lượng nhỏ trong số đó (khoảng từ 5% đến 10%) là ln được xem xét
và phân tích, số cịn lại họ khơng biết sẽ phải làm gì hoặc có thể làm gì với chúng;
nhưng họ vẫn tiếp tục thu thập và lưu trữ rất tốn kém với ý nghĩ lo sợ rằng, sẽ có cái gì
đó quan trọng có thể bị bỏ qua, sau này có lúc cần đến nó. Mặt khác, trong mơi trường
cạnh tranh thì vấn đề về “Thơng tin hữu ích” là cực kỳ quan trọng và cần thiết. Việc
có được những thơng tin này một cách nhanh chóng, chính xác và kịp thời là điều mà
người ta kỳ vọng, để hỗ trợ cho việc ra quyết định ở thời điểm hiện tại cũng như có
chiến lược phát triển bền vững trong tương lai. Ngày càng có nhiều câu hỏi mang tính
chất định tính cần phải được trả lời dựa trên một khối lượng dữ liệu khổng lồ có sẵn.
Xuất phát từ nhu cầu thực tế này, Khai phá dữ liệu (KPDL) trong cơ sở
dữ liệu (CSDL) đã và đang là một xu hướng quan trọng của nền công nghệ thông tin
(CNTT) thế giới, với mục tiêu chính là lấy được những thơng tin hữu ích từ dữ liệu
lịch sử. Một trong những hướng tiếp cận hiệu quả là sử dụng luật kết hợp (Association

rules), nhằm phát hiện ra mối liên hệ có tính phổ biến giữa các thành phần dữ liệu
trong CSDL, đây là dạng luật biểu diễn tri thức ở dạng khá đơn giản; nhưng lại mang
nhiều ý nghĩa thiết thực. Việc tìm ra được các luật kết hợp quý hiếm và mang nhiều
thông tin có giá trị từ CSDL tác nghiệp là một trong những hướng tiếp cận chính của
lĩnh vực KPDL, trong đó khai phá luật kết hợp đa cấp đang là hướng đi hứa hẹn đầy
triển vọng trong các hệ thống khai phá dữ liệu lớn (Big Data).
Khai phá luật kết hợp đa cấp là sự mở rộng của khai phá luật kết hợp truyền
thống, nhằm phát hiện ra một số luật tiềm ẩn có giá trị ở những mức độ khác nhau, với
khả năng khai phá linh hoạt do có thể thay đổi giá trị của độ hỗ trợ và độ tin cậy của
luật theo từng mức. Việc phát hiện ra các luật kết hợp đa cấp sẽ cung cấp bổ sung một
số luật thực sự có ý nghĩa, nhằm mở rộng khả năng tìm kiếm thơng tin trong q trình
phát hiện tri thức từ CSDL.
Đó là lý do tơi chọn tên đề tài: “Luật kết hợp đa cấp và Ứng dụng cho bài toán
Khai phá luật kết hợp đa cấp tại siêu thị điện máy Huy Cường – Quảng Ngãi ” làm
luận văn tốt nghiệp của mình.


2

2. Mục đích nghiên cứu:
Mục tiêu chính của đề tài này là tìm hiểu, nghiên cứu và cài đặt mơ phỏng thử
nghiệm thuật toán khai phá luật kết hợp đa cấp dựa trên tập mục phổ biến nguyên thủy
(Thuật toán CFP) và ứng dụng cho bài toán khai phá luật kết hợp đa cấp tại siêu thị
điện máy Huy Cường - Quảng Ngãi.
3. Đối tượng và phạm vi nghiên cứu:
3.1. Đối tượng nghiên cứu của đề tài:
- Các vấn đề liên quan đến khai phá dữ liệu.
- Khai phá luật kết hợp, khai phá luật kết hợp đa cấp.
- Thuật toán khai phá luật kết hợp đa cấp dựa trên tập mục phổ biến nguyên
thủy.

2.2. Phạm vi nghiên cứu của đề tài:
- Luận văn tập trung vào tìm hiểu các thuật toán khai thác luật kết hợp, luật
kết hợp đa cấp.
- Trọng tâm là nghiên cứu thuật toán khai phá luật kết hợp đa cấp dựa trên tập mục
phổ biến nguyên thủy.
4. Phương pháp nghiên cứu:
- Nghiên cứu tài liệu về thuật toán: khai phá luật kết hợp, khai phá luật kết
hợp đa cấp.
- Cài đặt mơ phỏng thuật tốn khai phá luật kết hợp đa cấp dựa trên tập mục
phổ biến nguyên thủy, ứng dụng trên CSDL cụ thể trong thực tế.
- Phân tích, đánh giá kết quả.
5. Ý nghĩa khoa học và thực tiễn:
- Hiểu được lý thuyết tổng quan về khai phá dữ liệu.
- Hiểu được các thuật toán khai phá luật kết hợp: FP-Growth, Apriori.
- Hiểu được các thuật toán khai thác luật kết hợp đa cấp: MLBL, CFP.
- Cài đặt mơ phỏng thuật tốn khai phá luật kết hợp đa cấp dựa trên tập mục
phổ biến nguyên thủy, ứng dụng cho bài toán “Khai phá luật kết hợp đa cấp tại siêu thị
điện máy Huy Cường - Quảng Ngãi”.
6. Cấu trúc của luận văn:
Nội dung của cuốn luận văn được trình bày trong ba chương.
 MỞ ĐẦU
Chương 1 – TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU: Giới thiệu tổng quan về khai
phá dữ liệu, khai phá luật kết hợp và một số thuật tốn tìm tập mục phổ biến trong
khai phá luật kết hợp.
Chương 2 – KHAI PHÁ LUẬT KẾT HỢP ĐA CẤP DỰA TRÊN TẬP MỤC
PHỔ BIẾN NGUYÊN THỦY: Giới thiệu một số thuật toán khai phá luật kết hợp đa
cấp.


3


Chương 3 – ỨNG DỤNG THỰC NGHIỆM: Cài đặt mô phỏng thuật toán khai phá
luật kết hợp đa cấp dựa trên tập mục phổ biến nguyên thủy, ứng dụng cho bài toán
“Khai phá luật kết hợp đa cấp tại siêu thị điện máy Huy Cường - Quảng Ngãi”.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN


4

Chương 1 - TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1. Các khái niệm cơ bản:
1.1.1. Khai phá dữ liệu:
Trong thực tế, nguồn dữ liệu từ các hoạt động của con người thực sự là một
nguồn tài nguyên có nhiều giá trị bởi thông tin là yếu tố then chốt phục vụ cho mọi
hoạt động quản lý, kinh doanh, phát triển sản xuất và dịch vụ, ... nó giúp cho người
điều hành và quản lý có những hiểu biết về mơi trường và tiến trình hoạt động của tổ
chức mình trước khi ra quyết định để tác động đến quá trình hoạt động nhằm đạt được
các mục tiêu một cách hiệu quả và bền vững.
Khai phá dữ liệu là việc phân tích dữ liệu nhằm tự động khai phá thơng tin, tri
thức mới hữu ích, tiềm ẩn từ những mẫu cơ sở dữ liệu đã có của các đơn vị, tổ chức,
doanh nghiệp..., từ đó làm thúc đẩy khả năng sản xuất, kinh doanh, cạnh tranh cho các
đơn vị, tổ chức này.
Có rất nhiều định nghĩa khác nhau về khai phá dữ liệu. Giáo sư Tom Mitchell
đã từng đưa ra định nghĩa về khai phá dữ liệu như sau: “Khai phá dữ liệu là việc sử
dụng dữ liệu lịch sử để khám phá những quy tắc và cải thiện những quyết định trong
tương lai”. Với một cách tiếp cận ứng dụng hơn, tiến sĩ Fayyad cho rằng: “Khai phá
dữ liệu thường được xem là việc khám phá tri thức trong các cơ sở dữ liệu, là một q
trình trích xuất những thơng tin tiềm ẩn trước đây chưa biết và có khả năng hữu ích
dưới dạng các quy luật, ràng buộc, quy tắc trong cơ sở dữ liệu” [5].
Các kết quả nghiên cứu khoa học cùng với những ứng dụng thành công trong

lĩnh vực phát hiện tri thức từ cơ sở dữ liệu đã cho thấy rằng, khai phá dữ liệu là một
lĩnh vực phát triển bền vững, mang lại nhiều lợi ích và có nhiều triển vọng, đồng thời
có ưu thế hơn hẳn so với các cơng cụ tìm kiếm, phân tích dữ liệu truyền thống. Hiện
nay, khai phá dữ liệu đã được ứng dụng ngày càng rộng rãi trong các lĩnh vực như
thương mại, tài chính, y học, viễn thơng, tin - sinh học...
Khai phá dữ liệu cịn được gọi là KDD (Knowledge discovery in databases)
trong hội thảo năm 1989 để nhấn mạnh rằng tri thức là sản phẩm cuối cùng của quá
trình khai phá dữ liệu.


5

Quá trình phát hiện tri thức gồm các bước sau:
- Hình thành và định nghĩa bài tốn: Xác định mục tiêu cụ thể, hình thành và xây
dựng bài tốn.
- Lựa chọn dữ liệu: Ở giai đoạn này, dữ liệu được lựa chọn và phân chia theo một
số tiêu chí của bài toán đề ra.
- Biển đổi dữ liệu: 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 việc áp dụng các kỹ thuật khai phá ở bước sau.
- Khai phá dữ liệu: Là bước áp dụng những kỹ thuật khai phá dữ liệu đã có nhằm
khai thác dữ liệu, trích lọc thơng tin, những mối quan hệ đặc biệt trong dữ liệu mà gọi
chung là tri thức. Đây được xem là bước quan trọng và tiêu tốn nhiều thời gian nhất
của tồn bộ q trình khai phá dữ liệu.
- Đánh giá và biểu diễn tri thức: Đây là giai đoạn cuối cùng trong quá trình khai
phá dữ liệu, ở giai đoạn này những mẫu thông tin và mối quan hệ trong dữ liệu đã
được phát hiện ở bước khai phá dữ liệu được chuyển sang và biểu diễn ở dạng gần gũi
với người sử dụng như đồ thị, cây, bảng biểu, luật,.... Không phải mẫu dữ liệu nào
cũng hữu ích, đơi khi nó cịn bị sai lệch. Vì vậy, cần phải đưa ra những tiêu chuẩn
đánh giá độ ưu tiên cho các mẫu dữ liệu để rút ra được những tri thức cần thiết.
1.1.2. Các kĩ thuật khai phá dữ liệu:

Khai phá dữ liệu có hai chức năng cơ bản: Chức năng dự đốn và chức năng
mơ tả. Có rất nhiều kĩ thuật khai phá dữ liệu khác nhau nhằm thực hiện hai chức năng
này:
 Kỹ thuật khai phá dữ liệu mơ tả: Có nhiệm vụ mơ tả các tính chất hoặc các
đặc tính chung của dữ liệu trong cơ sở dữ liệu. Các kỹ thuật này gồm có: Phân cụm
(Clustering), tổng hợp (Summarisation), trực quan hóa (Visualizatation), phân tích sự
phát triển và độ lệch (Evolution and deviation analyst),...
 Kỹ thuật khai phá dữ liệu dự đốn: Có nhiệm vụ đưa ra các dự đoán dựa vào
các suy diễn trên dữ liệu hiện thời. Các kỹ thuật này gồm có: Phân lớp (Classification),
hồi quy (Regession), luật kết hợp (Association rules), cây quyết định (Decision tree),
mạng neural (Neural network),...
Hiện nay, một số kĩ thuật phổ biến thường được sử dụng để khai phá dữ liệu là:
1.1.2.1. Phân lớp dữ liệu:
Mục tiêu của phương pháp phân lớp dữ liệu là dự đốn nhãn lớp cho các mẫu
dữ liệu. Q trình phân lớp dữ liệu thường gồm hai bước: Xây dựng mơ hình và sử
dụng mơ hình để phân lớp dữ liệu.
- Bước 1: Một mơ hình sẽ được xây dựng dựa trên việc phân tích các mẫu dữ
liệu sẵn có. Mỗi mẫu tương ứng với một lớp, được quyết định bởi một thuộc tính gọi
là thuộc tính lớp. Các lớp dữ liệu này còn được gọi là lớp dữ liệu huấn luyện. Các
nhãn lớp của tập dữ liệu huấn luyện đều phải được xác định trước khi xây dựng mơ
hình.


6

- Bước 2: Sử dụng mơ hình để phân lớp dữ liệu. Trước hết, chúng ta phải tính
độ chính xác của mơ hình. Nếu độ chính xác là chấp nhận được, mơ hình sẽ được sử
dụng để dự đốn nhãn lớp cho các mẫu dữ liệu khác trong tương lai.
1.1.2.2. Phân cụm dữ liệu:
Mục tiêu chính của phương pháp phân cụm dữ liệu là nhóm các đối tượng

tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một
cụm là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng.
Phân cụm dữ liệu là một ví dụ của phương pháp học khơng có giám sát.
Khơng giống như phân lớp dữ liệu, phân cụm dữ liệu khơng địi hỏi phải định
nghĩa trước các mẫu dữ liệu huấn luyện. Vì thế có thể coi phân cụm dữ liệu là một
cách học bằng quan sát, trong khi phân lớp dữ liệu là học bằng ví dụ. Thuật tốn
thường dùng để phân cụm dữ liệu là k-means. Trong phương pháp này, chúng ta
không thể biết kết quả các cụm thu được sẽ thế nào khi bắt đầu q trình khai phá. Vì
vậy, thơng thường cần có một chuyên gia về lĩnh vực đó để đánh giá các cụm thu
được. Phân cụm dữ liệu được sử dụng nhiều trong các ứng dụng về phân đoạn thị
trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web...
1.1.2.3. Phương pháp hồi quy:
Phương pháp hồi quy tương tự như phân lớp dữ liệu, nhưng khác ở chỗ: Hồi
quy dùng để dự đoán về các giá trị liên tục còn phân lớp dữ liệu chỉ dùng để dự đoán
về các giá trị rời rạc.
Phương pháp hồi quy sử dụng một hàm số học để ánh xạ một mục dữ liệu thành
một biến dự đốn có giá trị thực. Có rất nhiều ứng dụng khai phá dữ liệu với nhiệm vụ
hồi quy, chẳng hạn như khả năng đánh giá mức độ tử vong của bệnh nhân khi biết các
kết quả xét nghiệm; 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.
1.1.2.4. Khai phá luật kết hợp:
Mục tiêu của phương pháp này là phát hiện và đưa ra các mối liên hệ giữa các
thuộc tính hay giá trị giữa các thuộc tính trong cơ sở dữ liệu. Đầu ra của giải thuật khai
phá luật kết hợp là tập các luật kết hợp tìm được. Khai phá luật kết hợp được thực hiện
qua hai bước:
Bước 1: Tìm tất cả các TMPB, một tập mục là phổ biến nếu độ hỗ trợ của nó
thỏa mãn độ hỗ trợ tối thiểu.
Bước 2: Sinh ra các luật kết hợp mạnh từ TMPB, các luật phải thỏa mãn độ hỗ
trợ tối thiểu và độ tin cậy tối thiểu.
Phương pháp này được sử dụng rất hiệu quả trong các lĩnh vực như maketing,

phân tích quyết định, quản lý kinh doanh, phân tích giá thị trường, ….


7

1.1.2.5. Cây quyết định:
Kỹ thuật cây quyết định là một công cụ mạnh và hiệu quả trong việc phân lớp
và dự báo, các đối tượng dữ liệu được phân thành các lớp, các giá trị của đối tượng dữ
liệu chưa biết sẽ được dự đoán, dự báo. Tri thức được rút ra trong kỹ thuật này thường
được mô tả dưới dạng tường minh, đơn giản, trực quan, dễ hiểu đối với người sử dụng.
1.2. Khai phá luật kết hợp:
Việc khai phá luật kết hợp là một trong những phương pháp khai phá mẫu phổ
biến nhất trong việc phát hiện tri thức và khai phá dữ liệu.
Mục đích chính của khai phá dữ liệu là các tri thức được kết xuất ra sẽ được sử
dụng trong việc dự báo thông tin, trợ giúp trong sản xuất kinh doanh và nghiên cứu
khoa học. Trong hoạt động sản xuất kinh doanh, ví dụ kinh doanh các mặt hàng tại
siêu thị, các nhà quản lý rất thích có được các thơng tin mang tính thống kê như: “80%
khách hàng mua sách ngoại ngữ thì sẽ mua đĩa CD hoặc VCD”. Những thông tin như
vậy rất hữu ích trong việc định hướng kinh doanh. Vậy vấn đề đặt ra là liệu có tìm
được các luật như vậy bằng các công cụ khai phá dữ liệu hay khơng? Câu trả lời là
hồn tồn có thể, đó chính là nhiệm vụ của khai phá luật kết hợp.
1.2.1. Các khái niệm cơ bản:
1.2.1.1. Mục (Item):
Mục là các phần tử, mặt hàng, mẫu, đối tượng đang xét.
Ví dụ 1.1. I = {i1, i2, i3...,in}: i1, i2, i3, ..., in là các phần tử trong I.
1.2.1.2. Tập mục (Itemset):
Gọi I là tập tất cả các mặt hàng. Khi đó tập con X của I được gọi là tập mục.
Nếu Card(X) = k thì ta nói X có kích cỡ k và khi đó X cịn gọi là k-Itemset.
Ví dụ 1.2. Xét một hệ thống bán hàng:
Bảng 1.1. Bảng dữ liệu giao dịch D

U
U1
U2
U3

Cà phê Sữa Đường Cam
X
X
X
X
X
X
X

I = {cà phê, sữa, đường, cam).
X = {sữa, cam} là một tập mục.
Vì Card(X) = 2 nên gọi là 2-Itemset.
1.2.1.3. Giao dịch (Transaction):
Một phiếu mua hàng được gọi là một giao dịch. Hay là thơng tin của một đối
tượng u nào đó là một giao dịch.
Như vậy, một giao dịch t là tập các mục sao cho tI.
Ví dụ: t={cà phê, sữa, đường}.
CSDL giao dịch gọi là tập các giao dịch. Ký hiệu là D.


8
1.2.1.4. Độ hỗ trợ của tập mục:

Giao dịch t chứa X nếu X là tập các hạng mục trong I và Xt.
Ví dụ: t={cà phê, sữa, đường}.

X={cà phê, đường}.
Độ hỗ trợ (support) của tập các hạng mục X trong CSDL D là tỷ lệ giữa các
giao dịch chứa X trên tổng số các giao dịch trong D.
Độ hỗ trợ được xác định công thức:
Supp(X) =

count ( X )
|D|

Cho A và B là các tập mục. Nếu AB thì supp(A) supp(B).
Độ hỗ trợ tối thiểu (minsupp) của tập mục được kí hiệu là s.
Ví dụ 1.3. Xét hệ thống bán hàng ở bảng dữ liệu giao dịch 1.1, ta có:
2
3

supp(đường) = ; supp(sữa) =

1
.
3

A={cà phê, đường}; B={cà phê, sữa, đường}.
AB : supp(A)=2/3; supp(B)= 1/3.
1.2.1.5. Tập mục phổ biến:
Tập X  I được gọi là tập mục phổ biến nếu supp(X)  s, với s là giá trị
người dùng chỉ định.
Ví dụ: Xét cơ sở dữ liệu sau:
Bảng 1.2. Hệ thống dữ liệu bán hàng đơn giản
Các giao dịch


Các mặt hàng được mua

T1

1, 2, 3

T2

1, 3

T3

1, 4

T4

2, 5, 6

Với s = 1/2 (50%).
Ta có: Tập X1 = {1} là tập mục phổ biến vì có supp(X1) = 3/4 > s.
Tập X2 = {4} là tập mục khơng phổ biến vì có supp(X2) =1/4 < s.
Cho A, B là hai tập mục với AB, cho trước độ hỗ trợ tối thiểu s. Khi đó:
- Nếu B là tập mục phổ biến thì A cũng là tập mục phổ biến.
- Nếu A không phải là tập mục phổ biến thì B cũng khơng phải tập mục
phổ biến.
Ví dụ: Xét bảng dữ liệu giao dịch 1.2, với s=2, ta có:


9


Tập X={1,3} là tập phổ biến vì có supp(X) = 2 = s.
Tập X1 = {1}, Tập X3 = {3} cũng là tập phổ biến.
Tập X4 = {4} là tập mục không phổ biến.
Tập X’={1,4} cũng là tập mục không phổ biến.
1.2.1.6. Luật kết hợp:
Luật kết hợp là qui tắc kết hợp có điều kiện giữa các tập phần tử:
Cho X, Y là hai tập con của I và X  Y = , khi đó một luật có dạng XY gọi
là luật kết hợp.
Luật kết hợp cho biết khả năng xuất hiện tập các mục Y khi xuất hiện tập các
mục X trong bảng giao dịch D.
Ví dụ 1.4. Luật kết hợp {cà phê}{sữa}.
* Mục đích của khai phá luật kết hợp:
Tìm kiếm mối quan hệ giữa các tập mục bằng cách tìm các tập mục thường
xuyên xuất hiện cùng nhau trong cơ sở dữ liệu giao dịch. Việc tìm ra những luật kết
hợp trong cơ sở dữ liệu sẽ cung cấp cho người dùng những tri thức vô cùng quan trọng
mang tính quyết định.
1.2.1.7. Độ hỗ trợ và độ tin cậy của luật kết hợp:
Độ hỗ trợ (support), và độ tin cậy (confidence) của luật kết hợp được định
nghĩa như sau:
Support(X Y) = supp(XY)
Confidence (XY) =

supp( X  Y )
supp( X )

Độ tin cậy tối thiểu (minconf) của luật kết hợp được kí hiệu là c.
Luật X Y được gọi là luật mạnh nếu có độ hỗ trợ support(XY) s và độ tin
cậy confidence(XY) c.
* Ý nghĩa của độ hỗ trợ và độ tin cậy của luật kết hợp:
Độ hỗ trợ và độ tin cậy là hai đơn vị đo lường của luật kết hợp, chúng phản ánh

tính hữu dụng và độ mạnh của luật tương ứng. Độ hỗ trợ như là tính hữu dụng của một
luật, nó mơ tả tần suất các giao dịch có chứa đồng thời cả hai mục X và Y. Độ tin cậy
như là độ chính xác của luật, nó mơ tả xác suất xuất hiện Y khi có mặt X. Luật có độ
hỗ trợ và độ tin cậy vượt qua độ hỗ trợ tối thiểu s và độ tin cậy tối thiểu c được gọi là
luật kết hợp mạnh.
1.2.2. Phân loại luật kết hợp:
Các luật kết hợp có thể được phân loại theo tính chất tương đối như sau:
1.2.2.1. Luật kết hợp nhị phân (Binary association rule hoặc boolean
association rule):


10

Trong 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 dịch của cơ sở dữ liệu chứ không quan tâm về mức độ xuất
hiện, nghĩa là việc mua 10 hộp sữa hay mua 1 hộp sữa được xem là giống nhau.
Ví dụ 1.5. Bảng dữ liệu giao dịch D, các giá trị: 1 biểu diễn sự có mặt của mặt
hàng X trong giao dịch U, ngược lại mặt hàng X khơng có trong giao dịch U thì được
biểu diễn giá trị 0.
Bảng 1.3. Bảng dữ liệu giao dịch D
Mã giao dịch (U)

Áo

Váy

Túi xách

U1


1

1

0

U2

0

1

0

U3

1

0

1

U4

1

1

1


U5

1

1

0

U6

0

1

1

Luật kết hợp nhị phân: Mua “Áo” => Mua “Váy” với s = 3, c = 0.7.
1.2.2.2.. Luật có thuộc tính số và thuộc tính hạng mục (quantitative and
categorical association rule):
Trong luật kết hợp này, các giá trị định lượng cho các hạng mục hoặc các thuộc
tính được chia thành khoảng giá trị. Để 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 hóa 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 tốn đã có.
Ví dụ 1.6. Cho bảng dữ liệu giao dịch D, với các thuộc tính số: Tuổi, cân nặng,
chiều cao. Thuộc tính nhị phân: Béo phì.
Bảng 1.4. Bảng dữ liệu giao dịch D, với các thuộc tính của con người
Mã giao dịch (U)

Tuổi


Cân nặng (kg)

Chiều cao (m)

Béo phì

U1

45

65

1,50

1

U2

30

55

1.60

0

U3

48


62

1.53

1

U4

50

67

1.52

1

U5

44

53

1.57

0

U6

47


60

1.54

1

Luật kết hợp có thuộc tính số và hạng mục: Tuổi [45...50]  Béo phì=‘1’, với
s=3, c=0.85.


11

1.2.2.3. Luật kết hợp đơn cấp (đơn mức):
Là luật chỉ liên quan đến các phần tử hoặc các thuộc tính ở một mức độ
trừu tượng nhất định.
Ví dụ 1.7. Dựa vào bảng giao dịch 1.4 nêu trên, luật kết hợp đơn mức:
Cân nặng [60...65] Béo phì = “1” với s =3, c =0.85.
1.2.2.4. Luật kết hợp đa cấp (đa mức):
Dữ liệu sử dụng hệ thống phân cấp khái niệm được định nghĩa là một
chuỗi các ánh xạ từ một tập dữ liệu có sẵn vào tập các khái niệm từ mức thấp đến mức
cao.
Dữ liệu thông thường biểu diễn trên cây phân cấp khái niệm là dữ liệu về các
mặt hàng được bán trong một hệ thống kinh doanh: quầy tạp hóa, siêu thị, khu thương
mại...
Các mặt hàng được biểu diễn trên cây phân cấp (ví dụ như trong hình 1.2) với
mỗi nút là một khái niệm về mặt hàng ở một mức độ trừu tượng nhất định. Trong đó,
dữ liệu ở mức càng thấp thì mức độ chi tiết hóa càng cao. Khái niệm ở các mức thấp
được tổng quát hóa trong khái niệm ở mức cao hơn, khái niệm ở mức cao được chi
tiết, cụ thể hóa trong các mức thấp hơn.
Luật kết hợp đa cấp là luật liên quan đến các phần tử hoặc các thuộc tính ở các mức độ

trừu tượng khác nhau.

Hình 1.2. Dữ liệu trên cây phân cấp khái niệm
Ví dụ 1.8. giả sử ta có những quy tắc sau:

Quy tắc A: 70% khách hàng mua bánh mỳ cũng mua sữa.
Quy tắc B : 45% khách hàng mua bánh mỳ ngọt cũng mua sữa có đường.
Quy tắc C: 35% khách hàng mua bánh mỳ ngọt Bảo Thạnh cũng mua sữa có đường
Vinamilk.
Ta thấy các luật kết hợp trên biểu diễn các mức độ khác nhau trên cây phân cấp hình
1.2 cụ thể là: Luật A ở mức 2, luật B ở mức 1, luật C ở mức 0.


12

1.2.3. Ứng dụng của luật kết hợp:
Luật kết hợp có ứng dụng trong nhiều lĩnh vực khác nhau của đời sống như:
khoa học, hoạt động kinh doanh, tiếp thị, thương mại, phân tích thị trường chứng
khốn, tài chính và đầu tư...
Khai phá luật kết hợp là tìm ra các mối quan hệ giữa các mục trong phiên giao
dịch, nó sẽ rất hữu ích khi chúng ta tiến hành khai phá một cách có thứ tự, có mục đích
rõ ràng. Kĩ thuật này góp phần chỉ rõ hơn những thơng tin, tri thức tiềm ẩn có ích
trong các phiên giao dịch để từ đó giúp cho người quản lý, điều hành có kế hoạch hoạt
động, sản xuất kinh doanh trong các năm tiếp theo. Tính ứng dụng của khai phá luật
kết hợp trong cơ sở dữ liệu giao dịch giải quyết tốt cách thức thi hành, ứng dụng thông
tin quan trọng trên các phiên giao dịch. Dựa vào tính ứng dụng này, có thể có giải
pháp tốt đối với nền kinh tế thị trường hiện tại cũng như trong tương lai.
1.3. Một số thuật toán khai phá luật kết hợp:
Thực chất của bài toán khai phá luật kết hợp được chia thành hai bài toán nhỏ.
Bài toán thứ nhất sẽ đi tìm tất cả các tập mục dữ liệu có độ hỗ trợ thoả mãn độ hỗ trợ

tối thiểu cho trước, được gọi là các tập mục phổ biến. Bài toán thứ hai là bài tốn đi
tìm các luật kết hợp từ những tập mục phổ biến có được từ kết quả của bài toán một,
sao cho thỏa mãn một độ tin cậy cho trước nào đó.
1.3.1. Phát biểu bài tốn:
Cho tập các mục I, cơ sở dữ liệu giao dịch D, độ hỗ trợ tối thiểu s và độ tin cậy
tối thiểu c. Tìm tất cả các luật kết hợp có dạng X  Y trên cơ sở dữ liệu D, trong đó X,
Y I , XY =  sao cho: supp(X  Y)  s và conf(XY)c. Bài toán khai phá luật kết
hợp có thể được chia ra làm hai bài toán con được phát biểu trong thuật toán sau:
Đầu vào: I, D, s, c.
Đầu ra: Các luận kết hợp thỏa mãn s và c.
Giải hai bài toán con sau:
(1) Tìm tất cả các tập mục phổ biến từ cơ sở dữ liệu D, tức là tìm tất cả các tập
mục có độ hỗ trợ lớn hơn hoặc bằng s.
(2) Sinh ra các luật từ các tập mục phổ biến, sao cho độ tin cậy của luật lớn hơn
hoặc bằng c.
1.3.2 Thuật toán Apriori:
Phương pháp sinh ra ứng cử viên để tìm tập mục phổ biến được Agrawal đề
xuất từ năm 1993 với thuật toán Apriori. Ý tưởng của thuật tốn Apriori dựa trên tính
chất: “ Nếu một tập mục là phổ biến thì tất cả tập con của nó cũng là tập mục phổ
biến”. Do vậy khơng thể có trường hợp một tập phổ biến mà có tập con là khơng phổ
biến, nói cách khác tập k-Itemset sẽ được tạo ra từ (k-1)-Itemset (với k >1).


13

1.3.2.1. Thuật tốn:
Ý tưởng thuật tốn: Trước tiên, tìm tất cả các TMPB có 1-Itemset, từ
TMPB có 1-Itemset sẽ sinh ra TMPB có 2-Itemset, q trình này lặp lại cho đến khi
khơng cịn tập mục phổ biến nào được tạo ra.
Thuật tốn gồm hai giai đoạn chính là: Giai đoạn kết nối và giai đoạn rút gọn.

Giai đoạn kết nối:
Gọi Lk-1 là tập tất cả TMPB của (k-1)-Itemset. Chúng ta sẽ tìm tất cả tập mục có
k-Itemset là ứng cử viên (dự tuyển) của k-Itemset, kí hiệu Ck.
Giả sử các tập mục được sắp xếp theo thứ tự từ điển.
Lấy l1, 12 là hai tập tập mục phổ biến bất kỳ thuộc Lk-1, gọi li[j] là mục thứ j của
tập mục li.
Khi đó, nếu lấy 11 và 12 có (k-2) mục đầu tiên giống nhau thì kết hợp chúng thành kItemset gồm có các mục (l1[1] = 12[1])  (11[2] = 12[2]) . . . (11[k-2] = l2[k-2]) 
(l1[k-l]Bổ sung vào Ck.
Giai đoạn rút gọn:
Tạo tập Lk từ tập Ck bằng các bước như sau: khởi tạo Lk ban đầu bằng rỗng, sau
đó duyệt tất cả k-Itemset trong Ck và tính độ hỗ trợ của nó. Nếu độ hỗ trợ của nó lớn
hơn hoặc bằng s, thì bổ sung vào Lk.
Tạo tập Lk từ Ck:
1. khởi tạo Lk = ;
2. for l  Ck do
3. if supp(l)  s then
4. Lk=Lk  {l};
Thuật toán:
Đầu vào: Cơ sở dữ liệu giao dịch D và ngưỡng hỗ trợ tối thiểu s.
Đầu ra: L (là tập mục phổ biến trong D).
(1) L1 = 1-Itemset phổ biến (D);// Bắt đầu với L1( tập các tập mục phổ biến có
1 phần tử trong D)
(2) For (k=2; Lk-1 #  ; k++)
(3) {
(4)
Ck=apriori_gen(Lk-1);
(5)
For mỗi giao dịch t  D
(6)

{
(7)
Ct = tập con (Ck,t); //Lấy Ct là tập con của Ck, gồm các phần tử
có trong t làm tập ứng cử viên
(8)

For mỗi ứng cử viên c  Ct


14

(9)
c.count++; // Đếm số lần xuất hiện của c trong tất cả các tập C t
(10) }
(11) Lk = {c  Ck|c.count  s}; // Lk là tập các tập mục phổ biến có k phần tử
(k-Itemset)
(12) return L= i Li; // L là kết quả, tập các tập mục phổ biến cuối cùng, với
i[1,k]
// Thủ tục tạo tập Ck từ tập Lk-1 tương ứng
Procedure apriori_gen(Lk-1: (k-l)-Itemset phổ biến)
(1) For mỗi tập mục 11  Lk-1
(2) For mỗi tập mục 12  Lk-1
(3)
If(11[1]=l2[1](11[2]=12[2])...(11[k-2]=12[k-2] (11[k-1](4)
{
(5)
c = 11 nối 12 // bước kết nối: sinh tập ứng cử viên
(6)
If has_infrequent_subset(c,Lk-1) then // Nếu c không phổ biến

(7)
delete c; //bước rút gọn: loại bỏ ứng cử viên này
(8)
Else thêm c vào Ck;
(9) }
(10) return Ck;
// Thủ tục kiểm tra tính phổ biến của tập mục, sử dụng tri thức biết trước
Procedure has_infrequent_subset(c: k-Itemset ứng cử; Lk-1: (k-l)-Itemset phổ biến)
(1) for mỗi (k-1)-Itemset con m của c
(2) if m  Lk-1 then
(3)
return TRUE;
(4) retum FALSE;
Ví dụ 1.4: Xét hệ thống bán hàng đơn giản, với s = 2.
Bảng 1.5. Bảng dữ liệu một hệ thống bán hàng
Các giao dịch

Các mặt hàng được mua

T001
T002

I1, I2, I5
I2, I4

T003

I2, I3

T004


I1, I2, I4

T005

I1, I3

T006

I2, I3

T007

I1, I3

T008

I1, I2, I3, I5

T009

I1, I2, I3

Ở đây, có 9 giao dịch trong cơ sở dữ liệu này, nghĩa là |D| = 9. Chúng ta sử
dụng thuật tốn Apriori để tìm tập mục phổ biến trong D.


15

Bước 1: Duyệt cơ sở dữ liệu để tìm ra tập 1-Itemset phổ biến trong L1 với độ hỗ

trợ  2.
Các giao dịch

Các mặt hàng được mua

T100

I1, I2, I5

T200

I2, I4

T003

I2, I3

T004

I1, I2, I4

T005

I1, I3

T006

I2, I3

T007


I1, I3

T008

I1, I2, I3, I5

T009

I1,I2,I3

L1
Độ hỗ trợ
6
7
6
2
2

Tập mục
I1
I2
I3
I4
I5

Hình 1.3. Tập mục phổ biến L1
Bước 2: Tạo tập ứng cử viên C2 dựa trên L1 bằng phép hợp. Sau đó duyệt cơ sở
dữ liệu và tính độ hỗ trợ của các ứng cử viên trong C2, loại bỏ những ứng cử viên có
độ hỗ trợ nhỏ hơn s, để tạo ra tập 2-Itemset phổ biến là L2.

C2
Tập mục

Độ hỗ trợ

L2

I1, I2

4

Tập mục

I1, I3

4

I1, I2

4

I1, I4

1

I1, I3

4

I1, I5


2

I1, I5

2

I2, I3

4

I2, I3

4

I2, I4

2

I2, I4

2

I2, I5

2

I2, I5

2


I3, I4

0

I3, I5

1

I4, I5

0

Độ hỗ trợ

Hình 1.4. Tập mục ứng cử viên C2 và tập mục phổ biến L2
Bước 3: Tương tự bước 2, tạo C3 và L3 từ L2.
Tập mục

C3
Đô hỗ trợ

Tập mục

L3
Độ hỗ trợ

I1, I2, I3

2


I1, I2, I3

2

I1, I2, I5

2

I1, I2, I5

2

Hình 1.5. Tập mục ứng cử C3 và tập mục phổ biến L3


×