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

Khai phá luật kết hợp hiếm trên cơ sở dữ liệu và ứng dụng

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 (1008.42 KB, 61 trang )

1
ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG

NGUYỄN THỊ HẢI LÝ

KHAI PHÁ
LUẬT KẾT HỢP HIẾM
TRÊN CƠ SỞ DỮ LIỆU VÀ ỨNG DỤNG

LUẬN VĂN THẠC SĨ
CHUYÊN NGÀNH KHOA HỌC MÁY TÍNH

Thái Nguyên - 2015
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

2

MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CẢM ƠN .............................................................................................................ii
MỤC LỤC ............................................................................................................... iii
DANH MỤC CÁC KÝ HIỆU, VIẾT TẮT ............................................................... iv
DANH MỤC CÁC BẢNG BIỂU .............................................................................. v
DANH MỤC CÁC HÌNH VẼ ................................................................................... vi
MỞ ĐẦU ..................................................................................................................... 1
CHƢƠNG 1 ................................................................................................................ 3
KHAI PHÁ DỮ LIỆU VÀ BÀI TOÁN KHAI PHÁ LUẬT KẾT HỢP .................... 3
1.1. Khai phá dữ liệu ...............................................................................................3


1.1.1. Quá trình phát hiện tri thức từ cơ sở dữ liệu..............................................3
1.1.2. Kiến trúc của hệ thống khai phá dữ liệu .. Error! Bookmark not defined.
1.1.3. Quá trình khai phá dữ liệu .........................................................................5
1.1.4. Nhiệm vụ của khai phá dữ liệu. ............... Error! Bookmark not defined.
1.1.5. Các ứng dụng của khai phá dữ liệu ...........................................................6
1.2. Khai phá luật kết hợp trong cơ sở dữ liệu ........................................................7
1.2.1. Bài toán mở đầu ....................................... Error! Bookmark not defined.
1.2.2. Các khái niệm cơ sở ...................................................................................7
1.2.2.1. Cơ sở dữ liệu giao tác ........................................................................ 7
1.2.2.2. Tập mục phổ biến .............................................................................. 8
1.2.2.3. Luật kết hợp ...................................................................................... 8
1.2.3. Khai phá luật kết hợp .................................................................................9
1.2.4. Các cách tiếp cận khai phá tập mục phổ biến ........ Error! Bookmark not
defined.
1.2.5. Các thuật toán điển hình khai phá tập mục phổ biến ...............................10
1.2.5.1 Thuật toán Apriori ............................................................................ 10
1.2.5.2.Thuật toán FP_growth ...................................................................... 13
1.2.6. Thuật toán sinh luật kết hợp: ...................................................................14
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

3

1.2.7. Một số mở rộng khai phá luật kết hợp .....................................................17
Kết luận chƣơng 1 .................................................................................................18
Chƣơng 2: LUẬT KẾT HỢP HIẾM ......................................................................... 19
2.1. Giới thiệu chung về luật kết hợp hiếm. ..........................................................19
2.2. Một số hƣớng nghiên cứu chính phát hiện luật kết hợp hiếm ........................20
2.2.1. Sử dụng ràng buộc phần hệ quả của luật .................................................20

2.2.2. Thiết lập đƣờng biên phân chia các tập phổ biến và không phổ biến .....21
2.2.3. Phát hiện luật kết hợp hiếm từ các CSDL định lƣợng .............................22
2.3. Khuynh hƣớng nghiên cứu về luật hiếm ........................................................23
2.4. Phát hiện luật kết hợp hiếm Sporadic trên CSDL giao tác .............................24
2.4.1. Khái niệm về luật hiếm Sporadic.............................................................24
2.4.2.Thuật toán Apriori-Inverse .......................................................................27
2.4.3. Thuật toán tìm tập Sporadic tuyệt đối hai ngƣỡng đóng .........................32
2.4.3.1. Tập Sporadic tuyệt đối hai ngƣỡng ................................................. 33
2.4.3.2. Thuật toán MCPSI tìm tập Sporadic tuyệt đối hai ngƣỡng đóng .... 35
Kết luận chƣơng 2 .................................................................................................38
Chƣơng 3 ................................................................................................................... 38
THỰC NGHIỆM TÌM LUẬT HIẾM SPORADIC TUYỆT ĐỐI ............................ 38
3.1. Giới thiệu bài toán ..........................................................................................39
3.2. Dữ liệu thực nghiệm .......................................................................................40
3.3. Xây dựng chƣơng trình ...................................................................................42
3.4. Thực nghiệm khai phá ....................................................................................43
3.5. Kết quả thực nghiệm ......................................................................................47
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN ................................................................ 49
TÀI LIỆU THAM KHẢO ......................................................................................... 50

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

4

LỜI CAM ĐOAN
Tôi xin cam đoan Luận văn “KHAI PHÁ LUẬT KẾT HỢP HIẾM
TRÊN CƠ SỞ DỮ LIỆU 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 trong luận
văn 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ính 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

tháng

năm 2015

Người cam đoan

Nguyễn Thị Hải Lý

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

1

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, Thầy đã 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ết 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!

Thái Nguyên, ngày

tháng

năm 2015

Tác giả

Nguyễn Thị Hải Lý

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

2

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

Diễn giải

KPDL


Khai phá dữ liệu

CSDL

Cơ sở dữ liệu

DB

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

TID

Định danh của giao tác

I

Tập các mục dữ liệu

T

Giao tác (transaction)

Ck

Tập các ứng viên là tập mục có k mục dữ liệu

Lk

Tập các tập mục phổ biến có k mục dữ liệu


k-itemset

Tập mục gồm k mục

BFS

Breadth First Search (Duyệt theo chiều rộng)

DFS

Depth First Search (Duyệt theo chiều sâu)

FP-growth

Frequent-Pattern Growth

FP-tree

Frequent pattern tree

Sup

Độ hỗ trợ (support)

Conf

Độ tin cậy (Confiden)

Minsup


Ngƣỡng hỗ trợ tối thiểu

Minconf

Ngƣỡng tin cậy tối thiểu

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

3

DANH MỤC CÁC BẢNG BIỂU

Bảng 1.1: Danh mục các tập mục trong CSDLError! Bookmark not defined.
Bảng 1.2: Biểu diễn ngang của CSDL giao tác.Error! Bookmark not defined.
Bảng 1.3: Biểu diễn dọc của CSDL giao tác. . Error! Bookmark not defined.
Bảng 1.4: Ma trận giao tác của CSDL bảng 1.2Error! Bookmark not defined.
Bảng 1.5: Cơ sở dữ liệu DB ........................... Error! Bookmark not defined.
Bảng 1.6 : Độ hỗ trợ của các mục .................. Error! Bookmark not defined.
Bảng 1.7: Độ hỗ trợ của các tập mục ............. Error! Bookmark not defined.
Bảng 1.8: Độ tin cậy của các luật ................... Error! Bookmark not defined.
Bảng 1.10: Cơ sở dữ liệu minh họa thực hiện thuật toán COFI-tree.Error! Bookmark no
Bảng 1.11 : Các mục dữ liệu và độ hỗ trợ. ..... Error! Bookmark not defined.
Bảng 1.12 : Các mục dữ liệu phổ biế
.Error! Bookmark not defined.
Bảng 1.13 : Các mục dữ liệ
.Error! Bookmark n
Bảng 2.1 : Ví dụ CSDL giao tác D cho thuật toán Apriori-Inverse ............... 29
Bảng 2.2 : Biểu diễn dọc của CSDL D trong bảng 2.1 .................................. 29

Bảng 2.3 : Độ hỗ trợ của từng mục dữ liệu của CSDL D .............................. 30
Bảng 2.4 : Các mục sporadic và độ hỗ trợ ..................................................... 30
Bảng 2.5 : Các 2- tập mục ứng viên ............................................................... 31
Bảng 2.6 : Các tập mục sporadic tuyệt đối ..................................................... 31
Bảng 2.7 : Các luật sporadic tuyệt đối ............................................................ 32
Bảng 2.8: CSDL giao tác minh họa thuật toán MCPSI.................................. 37
Bảng 3.1: Dữ liệu đã trích chọn để khai phá .................................................. 40
Bảng 3.2: Mã hóa các mặt hàng ..................................................................... 40

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

4

DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ

Hình 1.1. Quá trình khám phá tri thức .............................................................. 4
Hình 1.2. Kiến trúc của hệ thống khai phá dữ liệuError! Bookmark not defined.
Hình 1.3: Quá trình khai phá dữ liệu................................................................. 6
Hình 1.4 : Phân loạ
ật toán khai phá tập mục phổ biến.Error! Bookmark not de
Hình 1.5: Cây FP-tree của CSDL bảng 1.10. .. Error! Bookmark not defined.
Hình 1.6: Cây COFI-tree của mục D. ............. Error! Bookmark not defined.
Hình 1.7: Các bƣớc khai phá cây D-COFI-tree.Error! Bookmark not defined.
Hình 2.1: Minh họa tìm các tập Sporadic tuyệt đối hai ngƣỡng đóng. ........... 38
Hình 3.1: Dữ liệu đã mã hóa chuẩn bị cho khai phá ....................................... 42
Hình 3.2: Giao diện chƣơng trình ................................................................... 43
Hình 3.3: Giao diện chƣơng trình tìm tập Sporadic tuyệt đối ........................ 44
Hình 3.4: Kết quả tìm tập Sporadic tuyệt đối ................................................. 45

Hình 3.5: Giao diện chƣơng trình tìm luật Sporadic tuyệt đối ....................... 46
Hình 3.6: Kết quả tìm luật Sporadic tuyệt đối ................................................ 47

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

5

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

1
MỞ ĐẦU
1. Đặt vấn đề
Trong lĩnh vực khai phá dữ liệu (data mining), luật kết hợp
(association rule) đƣợc dùng để chỉ mối quan hệ kiểu “điều kiện

hệ quả”

giữa các phần tử dữ liệu (chẳng hạn, sự xuất hiện của tập mặt hàng này
“kéo theo” sự xuất hiện của tập mặt hàng khác) trong một tập bao gồm
nhiều đối tƣợng dữ liệu (chẳng hạn, các giao dịch mua hàng)…. Phát hiện
luật kết hợp là phát hiện các mối quan hệ đó trong phạm vi của một tập dữ
liệu đã cho. Bài toán phát hiện luật kết hợp đƣợc Rakesh Agrawal và cộng sự
giới thiệu lần đầu tiên vào năm 1993[4] và nhanh chóng trở thành một trong
những hƣớng nghiên cứu quan trọng của khai phá dữ liệu, đặc biệt trong
những năm gần đây.
Phát hiện luật kết hợp [5, 10] đã đƣợc ứng dụng thành công trong

nhiều lĩnh vực kinh tế-xã hội khác nhau nhƣ: thƣơng mại, y tế, sinh học, tài
chính - ngân hàng,…Hiện tại, nhiều khuynh hƣớng nghiên cứu và ứng dụng
liên quan đến phát hiện luật kết hợp đã và đang tiếp tục đƣợc hình thành.
Một trong những vấn đề về phát hiện luật kết hợphiện đang nhận
đƣợc nhiều quan tâm của các nhà nghiên cứu là phát hiện luật kết hợp hiếm.
Luật kết hợp hiếm là những luật kết hợp ít xảy ra. Mặc dù tần suất xảy ra
thấp, nhƣng trong nhiều trƣờng hợp, các luật này lại rất có giá trị.
Từ những yêu cầu, thực tế trên, em đã chọn đề tài “Khai phá luật kết
hợp hiếm trên cơ sở dữ liệu và ứng dụng”.
2. Đối tƣợng và phạm vi nghiên cứu
Nghiên cứu các phƣơng pháp, thuật toán khai phá luật kết hợp, đi sâu
vào bài toán phát hiện luật kết hợp hiếm thuộc lĩnh vực phát hiện tri thức từ
dữ liệu và ứng dụng.
Luận văn tìm hiểu luật kết hợp hiếm Sporadic, trong hai loại của luật
hiếm Sporadic là luật hiếm Sporadic tuyệt đốivà luật hiếm Sporadic không
tuyệt đối, luận văn đi sâu tìm hiểu luật hiếm Sporadic tuyệt đối trên cơ sở dữ
liệu giao tác.
3. Hƣớng nghiên cứu của đề tài
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

2
- Nghiên cứu các kỹ thuật, phƣơng pháp khai phá luật kết hợp.
- Tìm hiểu sâu về khai phá luật hiếm Sporadic tuyệt đối trên cơ sở dữ
liệu giao tác.
- Cài đặt, thực nghiệm phát hiện luật kết hợp hiếm trên CSDL.
4. Những nội dung nghiên cứu chính
Từ những mục tiêu và yêu cầu của đề tài nghiên cứu, đề tài đƣợc xây
dựng gồm phần mở đầu, 3 chƣơng nội dung và phần kết luận, cụ thể nhƣ sau:

Chƣơng 1: Khai phá dữ liệu và bài toán khai phá luật kết hợp
Chƣơng 2: Luật kết hợp hiếm.
Chƣơng 3: Thực nghiệm tìm luật hiếm Sporadic tuyệt đối
5. Phƣơng pháp nghiên cứu
Phƣơng pháp nghiên cứu chính là nghiên cứu lý thuyết kết hợp với
đánh giá thực nghiệm. Cụ thể là: tổng hợp các kết quả nghiên cứu về khai phá
luật kết hợp và luật kết hợp hiếm đã công bố trên các bài báo khoa học, hội
thảo chuyên ngành trong và ngoài nƣớc, từ đó trình bày làm rõ vấn đề phát
triển khai phá luật kết hợp hiếm và xây dựng chƣơng trình thực nghiệm đánh
giá ứng dụng.
6. Ý nghĩa khoa học của đề tài
Phần lớn các thuật toán phát hiện luật kết hợphiện nay thƣờng thực hiện
tìm các luật có độ hỗ trợ và độ tin cậy cao. Việc ứng dụng các thuật toán
này để tìm các luật kết hợp hiếm (có độ hỗ trợ thấp, độ tin cậy cao) là không
hiệu quả do phải đặt ngƣỡng độ hỗ trợ cực tiểu rất nhỏ, nên số lƣợng các tập
phổ biến tìm đƣợc sẽ khá lớn (trong khi chỉ có một phần trong các tập tìm
đƣợc có độ hỗ trợ nhỏ hơn ngƣỡng độ hỗ trợ cực tiểu minSup) và nhƣ vậy
chi phí cho việc tìm kiếm sẽ tăng lên. Nhằm khắc phục những khó khăn
này, cần có những nghiên cứu các phƣơng pháp, thuật toán riêng cho phát
hiện luật kết hợp hiếm.

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

3

CHƢƠNG 1
KHAI PHÁ DỮ LIỆU VÀ BÀI TOÁN KHAI PHÁ LUẬT KẾT HỢP
1.1. Khai phá dữ liệu

1.1.1. Quá trình phát hiện tri thức từ cơ sở dữ liệu
Trong thời đại hiện đại của thế kỷ 21, với sự phát triển vƣợt bậc của
công nghệ thông tin, các hệ thống thông tin có thể lƣu trữ một khối lƣợng lớn
dữ liệu về hoạt động hàng ngày của chúng. Lƣợng dữ liệu đƣợc lƣu trữ dẫn
đến một đòi hỏi cấp bách phải có những kỹ thuật mới, những công cụ tự động
mới trợ giúp con ngƣời một cách thông minh trong việc chuyển đổi một lƣợng
lớn dữ liệu thành thông tin hữu ích.
Một số nhà khoa học xem khai phá dữ liệu nhƣ là một cách gọi khác
của một thuật ngữ cũng rất thông dụng là khám phá tri thức trong cơ sở dữ
liệu (Knowledge Discovery in Databases – KDD)[5], vì cho rằng mục đích
của quá trình khám phá tri thức là thông tin và tri thức có ích, nhƣng đối
tƣợng mà chúng ta phải xử lý rất nhiều trong suốt quá trình khám phá tri thức
lại chính là dữ liệu. Một số nhà khoa học khác thì xem khai phá dữ liệu nhƣ là
một bƣớc chính trong quá trình khám phá tri thức.
Hiểu quá trình khám phá, phát hiện tri thức ở đây là gì? Thông thƣờng
chúng ta coi dữ liệu nhƣ là một dãy các bit, các số và các ký hiệu, hoặc các
“đối tƣợng” đƣợc gửi cho một chƣơng trình dƣới một định dạng nhất định nào
đó. Chúng ta sử dụng các bit để đo lƣờng thông tin, khi sử dụng xem nó nhƣ
là dữ liệu đã đƣợc lọc bỏ dƣ thừa, đƣợc rút gọn tới mức tối thiểu. Bít đƣợc
dùng làm đơn vị đặc trƣng cho dữ liệu. Chúng ta có thể xem tri thức nhƣ là
các thông tin tích hợp, bao gồm các sự kiện và các mối quan hệ giữa chúng.
Các mối quan hệ này có thể đƣợc học, đƣợc hiểu, đƣợc phát hiện ra. Nói cách
khác, tri thức có thể coi là dữ liệu có độ trừu tƣợng và tổ chức cao.
Thuật ngữ KPDLra đời vào những năm cuối của thập kỷ 1980. Khai
phá dữ liệu bao gồm nhiều hƣớng tiếp cận, là sự kết hợp của nhiều ngành
nhƣ: Cơ sở dữ liệu; Học máy; Trí tuệ nhân tạo; Lý thuyết thông tin; Xác suất
thống kê; Tính toán hiệu năng cao và các phƣơng pháp tính toán mềm v. v….
Có rất nhiều định nghĩa khác nhau về "KPDL" đã đƣợc đƣa ra, ta có thể hiểu
Số hóa bởi Trung tâm Học liệu - ĐHTN
/>


4
khai phá dữ liệu là quá trình tìm kiếm những thông tin (tri thức) có ích, tiềm
ẩn và mang tính dự đoán trong các khối cơ sở dữ liệu lớn.
KPDL là cốt lõi của quá trình khám phá tri thức. Nó gồm có các giải
thuật KPDL chuyên dùng, dƣới một số quy định về hiệu quả tính toán chấp
nhận đƣợc. KPDL là nhằm tìm ra những mẫu mới, mẫu có tính chất không
tầm thƣờng, những thông tin tiềm ẩn mang tính dự đoán chƣa đƣợc biết đến
và có khả năng mang lại lợi ích cho ngƣời sử dụng.
Nói tóm lại, mục đích chung của việc phát hiện tri thức từ dữ liệu và
KPDL là tìm ra các mẫu đƣợc quan tâm nhất tồn tại trong cơ sở dữ liệu,
nhƣng chúng lại bị che dấu bởi một số lƣợng lớn dữ liệu.
Quá trình khám phá tri thức đƣợc tiến hành qua các bƣớc sau [5]:
Các Tri thức
Các mẫu

Dữ liệu đã
chọn

Dữ liệu đã
sạch

5.Đánh giá và biểu diễn tri thức
knowledgerepresentation
&evaluation

4.Khai phá dữ liệu

Kho
dữ

liệu

3.Biến đổi dữ liệu

datamining

datatransformation
2. Tiền xử lý dữ liệu
datapreprocessing

1. Trích chọn dữ liệu
dataselection

Hình 1.1. Quá trình khám phá tri thức
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
warehouses).
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

5
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 hoá 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 hoá.
Bƣớc 3: Biến đổi dữ liệu (data transformation): là bƣớc chuẩn hoá và
làm mịn dữ liệu để đƣa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các

kỹ thuật khai phá ở bƣớc sau.
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
(tri thức) và mối liên hệ đặc biệt trong dữ liệu đã đƣợc khai phá ở 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 khai 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.
1.1.2. Quá trình khai phá dữ liệu
Với những dữ liệu đã thu thập, ta tiến hành tích hợp và chỉnh sửa dữ
liệu, lọc dữ liệu, đây là quá trình tiền xử lý. Dữ liệu đƣợc thu thập từ nhiều
nguồn khác nhau, qua những dữ liệu trực tiếp ta thống kê tóm tắt, trong khi đó
có thể có những sự sai sót, dƣ thừa và trùng lặp. Lọc dữ liệu là cắt bỏ những
dƣ thừa để dữ liệu đƣợc định dạng thống nhất.
Quá trình khai phá dữ liệu đƣợc thể hiện bởi hình 1.3 sau:

Thống kê
tóm tắt

Xác định
nhiệm vụ

Xác định dữ
liệu liên quan


Thu thập và
tiền xử lý DL

Số hóa bởi Trung tâm Học liệu - ĐHTN

Giải thuật
khai phá DL

Mẫu

/>Dữ liệu
trực tiếp


6

Hình 1.3: Quá trình khai phá dữ liệu
Công việc tiếp theo sử dụng các thuật toán khác nhau để khai phá các
tri thức tiềm ẩn trong kho dữ liệu sau khi đã xử lý và đƣợc thống kê tóm
tắt,…. Kết quả của quá trình khai phá dữ liệu là đạt đƣợc nhiệm vụ đặt ra.
Nhiều kỹ thuật khai phá dữ liệu đƣợc ứng dụng cho một nguồn dữ liệu, các kỹ
thuật cho các kết quả có thể khác nhau. Các kết quả đƣợc ƣớc lƣợng bởi
những quy tắc nào đó, nếu cuối cùng kết quả không thỏa mãn yêu cầu, chúng
ta phải làm lại với kỹ thuật khác cho đến khi có kết quả mong muốn.
1.1.3. Các ứng dụng của khai phá dữ liệu
Vào những năm của thế kỷ XX, khi công nghệ thông tin bùng nổ cả về
bề rộng và chiều sâu, ảnh hƣởng đến hầu hết các lĩnh vực khoa học, kinh tế và
đời sống xã hội. Dữ liệu ngày càng tăng theo thời gian, ngƣời ta coi khai phá
dữ liệu là quá trình phân tích cơ sở dữ liệu nhằm phát hiện ra các thông tin

mới và giá trị, thƣờng thể hiện dƣới dạng các mối quan hệ chƣa biết đến giữa
các mục dữ liệu. Nhờ phân tích các dữ liệu mà các doanh nghiệp có khả năng
dự báo trƣớc một số hành vi ứng xử của khách hàng. Công nghệ thông tin
phát triển đồng nghĩa với việc phát triển các phần mềm ứng dụng. Phần mềm
khai phá dữ liệu là một công cụ phân tích dùng để phân tích dữ liệu. Nó cho
phép ngƣời sử dụng phân tích dữ liệu theo nhiều góc nhìn khác nhau, phân
loại dữ liệu theo những quan điểm riêng biệt và tổng kết các mối quan hệ đã
đƣợc bóc tách.
Hiện nay, kỹ thuật khai phá dữ liệu đang đƣợc áp dụng một cách rộng
rãi trong rất nhiều lĩnh vực kinh doanh và đời sống khác nhau nhƣ:
Thƣơng mại: Phân tích dữ liệu bán hàng và thi trƣờng, phân tích đầu tƣ,
quyết định cho vay, phát hiện gian lận, …
Thông tin sản xuất: Điều khiển và lập kế hoạch, hệ thống quản lý, phân
tích kết quả thử nghiệm, …
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

7
Thông tin khoa học: dự báo thời tiết, CSDL sinh học: Ngân hàng gen,
…khoa học địa lý: dự báo động đất, …
Trong y tế, marketing, ngân hàng, viễn thông, du lịch, internet…
Những gì thu đƣợc từ khai phá dữ liệu thật đáng giá. Điều đó đƣợc
chứng minh bằng thực tế: Chẩn đoán bệnh trong y tế dựa trên kết quả xét
nghiệm đã giúp cho bảo hiểm y tế phát hiện ra nhiều trƣờng hợp xét nghiệm
không hợp lý, tiết kiệm đƣợc nhiều kinh phí mỗi năm; Trong dịch vụ viễn
thông đã phát hiện ra những nhóm ngƣời phổ biến gọi cho nhau bằng mobile
và thu lợi hàng triệu USD; IBM Suft-Aid đã áp dụng khai phá dữ liệu vào
phân tích các lần đăng nhập Web vào các trang liên quan đến thị trƣờng để
phát hiện sở thích khách hàng, từ đó đánh giá hiệu quả của việc tiếp thị qua

Web và cải thiện hoạt động của các Website; trang Web mua bán qua mạng
cũng tăng doanh thu nhờ áp dụng khai phá dữ liệu trong việc phân tích sở
thích mua bán của khách hàng.
1.2. Khai phá luật kết hợp trong cơ sở dữ liệu
1.2.1. Các khái niệm cơ sở
Mô hình đầu tiên của bài toán khai phá luật kết hợp là mô hình nhị
phân (hay còn gọi là mô hình cơ bản) đƣợc R. Agrawal, T. Imielinski và A.
Swami đề xuất vào năm 1993[4], xuất phát từ nhu cầu phân tích dữ liệu của
cơ sở dữ liệu giao tác, phát hiện các mối quan hệ giữa các tập mục hàng hóa
(Itemsets) đã bán đƣợc tại các siêu thị. Việc xác định các quan hệ này không
phân biệt vai trò khác nhau cũng nhƣ không dựa vào các đặc tính dữ liệu vốn
có của các mục dữ liệu mà chỉ dựa vào sự xuất hiện cùng lúc của chúng.
Phần tiếp sau đây nêu một số khái niệm cơ bản dẫn đến bài toán khai
phá tập mục phổ biến và luật kết hợp.
1.2.2.1.Cơ sở dữ liệu giao tác

Định nghĩa 2.1:
Cho tập các mục (item) I

i1, i2 ,..., in . 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à 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 .
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

8

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ó một định danh TID và một danh sách các mục dữ liệu trong giao
tác đó.
1.2.2.2. Tập mục phổ biến
Định nghĩa 2.2: 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 sup(X), là tỷ lệ phần trăm các giao tác chứa
X trên tổng số các giao tác trong DB, tức là:
sup( X )

{T

DB | T
DB

Ta có: 0 ≤ sup(X) ≤ 1 với mọi tập mục X

X}

I.

Định nghĩa 2.3: 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
minsup , ngƣợc lại X gọi là tập mục không phổ
thiểu minsup nếu sup( X )
biến.
Một số tính chất của tập mục phổ biến :

Cho cơ sở dữ liệu giao tác DB và ngƣỡng độ hỗ trợ tối thiểu minsup.
Các tập mục phổ biến có các tính chất sau :
Tính chất 1: Giả sử X,Y

I là hai tập mục với X

Tính chất 2: Giả sử X, Y là hai tập mục, X,Y
và X Y thì X cũng là tập mục phổ biến.
Tính chất 3: Giả sử X, Y là hai tập mục, X
biến thì Y cũng là tập mục không phổ biến.

Y thì sup(X)

sup(Y)

I, nếu Y là tập mục phổ biến
Y và X là tập mục không phổ

1.2.2.3. Luật kết hợp
Định nghĩa 2.4: Một luật kết hợp là một biểu thức dạng X Y, trong đó X,
Y I, thỏa mãn điều kiện X Y= . Tập X gọi là tiền đề, tập 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.
Độ hỗ trợ và độ tin cậy của luật kết hợp:
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

9
Định nghĩa 2.5: Độ hỗ trợ (Support) 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 P(X Y)
của sự xuất hiện đồng thời củ
ột giao tác.
Ta có: 0 Sup(X Y) 1
Khi đó, một luật kết hợp trong tập giao tác DB với độ hỗ trợ s, thì s là
số phần trăm của các giao tác trong DB có chứa X Y( chứa cả X và Y).
Khi chúng ta nói rằng độ hỗ trợ của một luật là 50%, có nghĩa là có
50% tổng số bản ghi chứa X Y. Nhƣ vậy, độ hỗ trợ mang ý nghĩa thống kê.
Trong một số trƣờng hợp, chúng ta chỉ quan tâm đến những luật có độ
hỗ trợ cao. Nhƣng cũng có trƣờng hợp, mặc dù độ hỗ trợ của luật thấp, ta vẫn
cần quan tâm (ví dụ luật kết hợp liên quan đến nguyên nhân gây ra sự ngừng
đập của tim khi phẫu thuật của ngành y học).
Định nghĩa 2.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 DB.

conf(X

Y) =

Độ tin cậy của luật kết hợp X
P(Y/X).
P(Y / X )

{T

và ta có 0


DB | X T
{T DB | X

conf(X

Y T}
T}

Y)

sup(X Y )
sup(X )
Y chính là xác suất có điều kiện

{T DB | X Y T }
{T DB | X T }

sup(X
Y)
sup(X )

1.

Nói rằng độ tin cậy của một luật là 80%, có nghĩa là có tới 80% số bản
ghi chứa X cũng chứa luôn cả Y.
cậ

Các luật thoả mãn cả hai ngƣỡng độ hỗ trợ
(minsup) và độ tin
minsup và

(minconf), tức thỏa mãn: sup(X Y )

conf(X

Y)

minconf đƣợc gọi là luật kết hợp mạnh.

Các giá trị của độ hỗ trợ và độ tin cậy của luật đƣợc viết giữa 0% và
100% thay cho các giá trị 0 tới 1. Điều đó cho ta thấy rằng, độ tin cậy của luật
thể hiện sự tƣơng quan (correlation) giữa X và Y.
1.2.3. Khai phá luật kết hợp
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

10
Bài toán khai phá luật kết hợp có thể phát biểu nhƣ sau:
Cho cơ sở dữ liệu giao tác DB, ngƣỡng độ hỗ trợ tối thiểu minsup và
ngƣỡng độ tin cậy tối thiểu minconf.
Yêu cầu: Tìm tất cả các luật kết hợp X→Y trên cơ sở dữ liệu DB sao
cho sup(X→Y) ≥ minsup và conf(X→Y) ≥ minconf.
Khai phá luật kết hợp này đƣợc gọi là bài toán cơ bản hay bài toán nhị
phân, vì ở đây, giá trị của mục dữ liệu trong cơ sở dữ liệu là 0 hoặc 1 (xuất
hiện hay không xuất hiện).
Bài toán khai phá luật kết hợp trong CSDL chia thành hai bài toán con:
(1) Tìm tất cả các tập mục phổ biến thoả mãn độ hỗ trợ cực tiểu.
(2) 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.
Khi khai phá luật kết hợp trong CSDL DB thì mọi khó khăn nằm ở bài

toán thứ nhất là tìm tập mục phổ biến.
1.2.4. Các thuật toán điển hình 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: 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 mục ứng viên, cơ sở dữ liệu đƣợ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.2.4.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 [4].
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:
Chức năng

Tập k mục

Tập các k-tập mục phổ biến (với độ hỗ trợ
Mỗi phần tử của tập này có 2 trƣờng:
Lk

).

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

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

11

Tập các k-tập mục ứng viên (các tập mục phổ biến tiềm
năng). Mỗi phần tử của tập này có 2 trƣờng:
Ck

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

Ý 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 kết 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
Thuật toán duyệt cơ sở dữ liệu nhiều lần. Mỗi lần duyệt, thuật toán thực
hiện hai bƣớc: bƣớc kết nối và bƣớc tỉa. Trong lần lặp thứ k, thuật toán nối
hai (k-1)-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ế
-

(l1[1] = l2[1])

(l1[2] = l2[2])

… (l1[k-2] = l2[k-2])

1


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)
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

12
Input: Cơ sở dữ liệu DB, ngƣỡng độ hỗ trợ minsup
Output: Tập các tập mục phổ biến L trong DB
Method:
(1) Tìm các 1-tập mục phổ biến, nhận đƣợc L1 ;
(2) For (k=2; Lk-1≠ ; k++) do begin
(3)

Ck = apriori_gen(Lk-1, minsup); // Sinh tập ứng viên mới từ Lk-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 ;

(9)

Lk = { c Ck / c.count ≥minsup} ;

(10) End;
(11) L=  Lk ;
Sinh các tập mục ứng viên của thuật toán Apriori: hàm Apriori_gen()
Function Apriori_gen()
Input:Tập các (k-1)- tập mục phổ biến Lk-1
Output: Tập các k- tập mục ứng viên Ck
Method:
// Bước kết nối
(1) For (each (k-1)-tập mục l1
(2)

(3)

Lk-1) do

For (each (k-1)-tập mục l2

Lk-1) do

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

(4)

Ck { l1[1], l1[2], … l1[k-2],l1[k-1] l2[k-1]};
// kết nạp k-tập mục mới vào Ck

// Bước tỉa
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

13
(5) For (each ci Ck) do
(6)
(7)

If exist (s

ci) and (s Lk-1) then


delete ci from Ck;

(8) Return Ck;
1.2.4.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ó 104
mụ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.
- Lặp nhiều lần duyệt cơ sở dữ liệu, số lần duyệt cơ sở dữ liệu 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 cơ sở dữ liệu thƣa (sparse), với các cơ sở dữ
liệu dày (dense) thì thuật toán thực hiện kém hiệu quả.
Để 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 nén toàn bộ cơ sở dữ liệu 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 cơ sở dữ liệu
(thuật toán chỉ duyệt cơ sở dữ liệu 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. Tuy vậy, thuật toán FP-growth khai phá
Số hóa bởi Trung tâm Học liệu - ĐHTN


/>

14
cây FP-tree sử dụng phƣơng pháp đệ quy, đòi hỏi khối lƣợng tính toán lớn và
cần nhiều bộ nhớ. Năm 2003, nhóm tác giả Mohammad El-Hajj và Osmar R.
Zaiane ở đại học Alberta Edmonton, Canada đề xuất thuật toán không đệ quy
khai phá cây FP-tree dựa trên cấu trúc cây COFI-tree (Co-Occurrence
Frequent Items tree). Thuật toán COFI-treecó nhiều ƣu điểm hơn thuật toán
FP-growth).
Thuật toán COFI-tree[11] gồm 2 giai đoạn chính. Giai đoạn thứ nhất,
xây dựng cây FP-tree. Giai đoạn thứ hai, khai phá cây FP-tree chia thành
nhiều bƣớc tƣơng ứng với các mục dữ liệu trong bảng đầu mục của cây FPtree, mỗi bƣớc sử dụng một cấu trúc dữ liệu phụ trợ là cây COFI-tree của mục
dữ liệu đó.
Mỗi nút của cây FP-tree gồm 3 trƣờng: tên mục dữ liệu, độ hỗ trợ và
một con trỏ (con trỏ này trỏ đến nút tiếp theo cùng tên trên cây hoặc là null
nếu không có). Cây FP-tree có một bảng đầu mục (header table). Mỗi mục của
bảng có 3 trƣờng: tên mục dữ liệu, độ hỗ trợ và con trỏ, con trỏ này trỏ đến
nút đầu tiên biểu diễn mục dữ liệu này trong cây.
Cây COFI-tree có bảng đầu mục giống nhƣ cây FP-tree nhƣng các mục
dữ liệ

ứ tự ngƣợc lại. Mỗi mục trong bảng đầu mục chứa 3 trƣờng: tên

mục dữ liệu, độ hỗ trợ địa phƣơng (số lần xuất hiện của mục dữ liệu trong cây
COFI-tree) và con trỏ (trỏ đến nút đầu tiên biểu diễn mục dữ liệu này trong
cây). Một danh sách liên kết đƣợc duy trì giữa các nút cùng tên để thuận lợi
cho quá trình khai phá. Mỗi nút của cây COFI-tree có 4 trƣờng: tên mục dữ
liệu, hai biến s và p (biến s biểu diễn độ hỗ trợ của nút, biến p cho biết số lần
nút đó đã tham gia tạo mẫu), con trỏ (trỏ đến nút tiếp theo cùng tên trên cây).
1.2.6. Thuật toán sinh luật kết hợp:

Phần này trình bày thuật toán tìm các luật kết hợp từ các tập mục phổ
biến(theo [4]).
Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

15
Thuật toán đơn giản:
Sinh ra các tập con của tập mục phổ biến theo kiểu đệ qui ƣu tiên độ
sâu. Ví dụ: với tập mục ABCD, đầu tiên chúng ta xét tập con ABC, sau đó
đến AB,...
Tiếp đến, nếu tập con X của tập mục L không sinh ra đƣợc luật thì ta
không cần xét đến các tập con cuả nó nữa. Chẳng hạn: nếu luật ABC
không đủ độ tin cậy thì ta không cần xét luật AB

D

CD.

Điều này có thể chứng minh đơn giản nhƣ sau:
Nếu luật X

(L\X) không thoả mãn độ tin cậy, tức là: conf(X

(L\X))

nhỏ hơn minconf, thế thì với bất kỳ tập con Y nào của X ta có:
Vì Y X nên supp(Y) supp(X), do vậy:
supp(L) supp(L)
conf(Y (L\Y))

conf(X
supp(Y) supp(X)
Tức là độ tin cậy của luật Y

(L\X )) minconf

(L\Y) cũng nhỏ hơn minconf.

Thuật toán đơn giản có thể mô tả nhƣ sau:
Thuật toán 1:
for all large itemsets lk, k

2 do

call genrules(lk, lk)
Procedure genrules(lk: large k-itemsets, am: large m-itemsets)A = {(m –
1)-itemsets am – 1 | am – 1 am};
1) for all am – 1 A do begin
2) conf = support(lk)/support(am – 1);
3) if (conf minconf) then
i. begin
4) output the rule am – 1 (lk - am – 1),
i. with confidence = conf and support=Support(lk)
5) if (m – 1 > 1) then
a. call genrules(lk, am – 1);
b. // để sinh ra các luật với tập con củaam – 1 là phần tiền đề.
6) end
7) End.
Số hóa bởi Trung tâm Học liệu - ĐHTN


/>

16
Thuật toán nhanh hơn:
Ở trên ta đã chỉ ra rằng nếu một luật không thoả mãn với tập cha X thì
cũng không thoả mãn với tập con của nó. Ví dụ nhƣ trên đã xét: nếu ABC
D không đủ độ tin cậy thì luật AB

CD cũng không đủ độ tin cậy. Điều đó

có thể áp dụng theo hƣớng ngƣợc lại nhƣ sau: nếu xảy ra luật với tập con thì
cũng xảy ra luật với tập cha . Ví dụ: nếu luật AB CD có đủ độ tin cậy thì luật
ABC

D cũng đủ độ tin cậy.

Thuật toán 2 :
For all large itemsets lk, k

2 do begin

H1 ={ Các phần kết luận của các luật nhận đƣợc từ lk với 1- mục ở kết luận};
call ap-genrules(lk, H1)
end
Procedure ap-genrules(lk: large k-itemset, Hm: set of m-item consequents)
1) if (k > m + 1) then begin
2) Hm + 1 = apriori_gen(Hm);
3) For all hm + 1 Hm + 1do begin
4)


conf = support(lk)/support(lk - h m + 1);

5) if (conf
6)

minconf) then

output the rule (lk - hm + 1)

hm + 1

//với độ tin cậy là conf và độ hỗ trợ là support(lk);
7) Else
8) delete hm + 1from Hm + 1
9) End
10)

call ap-genrules(lk, Hm + 1);

11)

end

Số hóa bởi Trung tâm Học liệu - ĐHTN

/>

×