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

Khai phá mẫu phổ biến, luật kết hợp và thước đo tương quan

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 (2.59 MB, 88 trang )




















































ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ



VŨ MỸ HẠNH




KHAI PHÁ MẪU PHỔ BIẾN, LUẬT KẾT HỢP

VÀ THƯỚC ĐO TƯƠNG QUAN






LUẬN VĂN THẠC SỸ





HÀ NỘI - 2011





ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ


VŨ MỸ HẠNH


KHAI PHÁ MẪU PHỔ BIẾN, LUẬT KẾT HỢP
VÀ THƯỚC ĐO TƯƠNG QUAN

Ngành : Công nghệ thông tin.

Chuyên ngành : Hệ thống thông tin
Mã số : 06 48 05


LUẬN VĂN THẠC SỸ

NGƯỜI HƯỚNG DẪN KHOA HỌC: TS. Nguyễn Công Điều.





HÀ NỘI - 2011

4
MỤC LỤC
NHẬN XÉT – ĐÁNH GIÁ 1
LỜI CAM ĐOAN 2
LỜI CẢM ƠN 3
MỤC LỤC 4
DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT 6
MỞ ĐẦU 7
CHƢƠNG 1: TỔNG QUAN VỀ KHAI PHÁ MẪU PHỔ BIẾN, LUẬT KẾT HỢP
VÀ CÁC THƢỚC ĐO TƢƠNG QUAN 9
1.1. Tổng quan về khai phá dữ liệu 9
1.1.1. Khai phá dữ liệu 9
1.1.2. Tiến trình khai phá tri thức 9
1.1.3. Các hướng tiếp cận trong khai phá dữ liệu 10
1.1.4. Một số ứng dụng trong khai phá dữ liệu 11
1.1.5. Một số thách thức trong khai phá dữ liệu 12

1.2. Các khái niệm cơ bản về khai phá mẫu phổ biến tìm luật kết hợp và phân tích
mối tương quan 13
1.2.1. Khái niệm về khai phá mẫu phổ biến 13
1.2.2. Phát biểu bài toán tìm luật kết hợp 14
1.2.3. Mối tương quan giữa các mục 17
CHƢƠNG 2: MỘT SỐ PHƢƠNG PHÁP KHAI PHÁ LUẬT KẾT HỢP 18
2.1. Phương pháp khai phá tập mục phổ biến sử dụng kỹ thuật sinh ứng viên 18
2.1.1. Tư tưởng của thuật toán 18
2.1.2. Tính chất Apriori 18
2.1.3. Các bước thực hiện thuật toán Apriori 19
2.2. Phương pháp sinh luật kết hợp mạnh 28
2.3. Phương pháp khai phá tập mục phổ biến không cần sinh ứng viên 29
2.3.1. Một số bất cập trong phương pháp khai phá tập phổ biến sử dụng kỹ thuật
sinh ứng viên 29
2.3.2. Thuật toán FP-growth 31
2.4. Giới thiệu một số thuật toán khai phá tập mục phổ biến khác 36
5
2.4.1. Thuật toán Apriori-TID 36
2.4.2. Thuật toán Apriori-Hybrid 37
2.4.3. Thuật toán AIS ( Agrawal Imielinski Swami) 37
2.4.4. Thuật toán DIC ( Dynamic Itemset Counting) 37
2.4.5. Thuật toán phân hoạch 37
2.5. Khai phá luật kết hợp định lượng 38
2.5.1. Một số hướng tiếp cận trong khai phá luật kết hợp 38
2.5.2. Khai phá luật kết hợp định lượng 39
2.6. Các thước đo tương quan 56
2.6.1. Các luật mạnh không nhất thiết đã thú vị 56
2.6.2.Từ phân tích luật kết hợp đến phân tích tương quan 57
CHƢƠNG 3: GIỚI THIỆU CÔNG CỤ KHAI PHÁ DỮ LIỆU WEKA VÀ MÔ
PHỎNG 66

3.1. Tổng quan về phần mềm Weka 66
3.2. Cửa sổ ứng dụng Explorer trong Weka 68
3.2.1. Giao diện người dùng 68
3.2.2. Tiền xử lý – Preprocessing 72
3.2.3. Luật kết hợp 79
3.2.4. Một số định dạng tập tin trong Weka 80
3.3. Sử dụng công cụ Weka mô phỏng thuật toán sinh luật kết hợp 82
KẾT LUẬN 87
TÀI LIỆU THAM KHẢO 89
6

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

Thuật ngữ, chữ viết tắt
Thuật ngữ tiếng anh
Giải thích
CSDL
Database
Cơ sở dữ liệu
KPDL
Data Mining
Khai phá dữ liệu
Min_sup
Minimum support
Độ hỗ trợ tối thiểu
Min_conf
Minimum confidence
Độ tin cậy tối thiểu
Item


Mục
Item set

Tập mục
C
k


Tập mục ứng viên có độ dài k
L
k


Tập mục phổ biến có độ dài k

7
MỞ ĐẦU
Trong những năm gần đây, cùng với sự phát triển vượt bậc của khoa học và công
nghệ, khả năng thu thập và lưu trữ dữ liệu được nâng cao đáng kể, điều này đồng
nghĩa với việc một lượng lớn dữ liệu được lưu trữ trên các thiết bị nhớ tăng lên không
ngừng. Cũng chính vì thế mà từ đây con người gặp phải một bất cập lớn trong việc
phân tích một kho dữ liệu khổng lồ để rút ra được các quyết định hữu ích, ứng dụng
trong hầu hết các lĩnh vực khoa học, kinh tế, xã hội.
Khai phá dữ liệu – Data mining là một lĩnh vực khoa học liên ngành, nhằm tự
động hóa quá trình khai phá thông tin, tri thức hữu ích tiềm ẩn trong cơ sở dữ liệu của
các tổ chức, doanh nghiệp, Đây là lĩnh vực khoa học tiềm năng, mang lại nhiều lợi
ích thiết thực, đồng thời thể hiện ưu thế vượt trội hơn hẳn so với các công cụ phân tích
dữ liệu truyền thống.
Khai phá Mẫu phổ biến – Frequent pattern mining (hay còn gọi là “Mẫu
thường xuyên ”) đóng vai trò thiết yếu trong khai phá luật kết hợp, mối tương quan, và

mối quan hệ thú vị khác nhau trong dữ liệu. Hơn nữa, nó giúp phân lớp, phân cụm dữ
liệu, và hỗ trợ khá tốt các nhiệm vụ khai phá dữ liệu. Do vậy, khai phá mẫu phổ biến
đã trở thành nhiệm vụ khai phá dữ liệu quan trọng và là một chủ đề cần khai phá và
tìm kiếm dữ liệu [1].
Khai phá luật kết hợp - Accessociation rule mining là một kỹ thuật quan trọng
của khai phá dữ liệu lần đầu tiên được Rakesh Agrawal, Tomas Imielinski, Arun
Swami đề xuất năm 1993. Những nghiên cứu về luật kết hợp gần đây tập trung vào
việc xây dựng các thuật toán khai phá luật kết hợp theo hai hướng là cải tiến đưa thuật
toán mới và cải tiến hiệu quả của thuật toán cũ.
Trong luận văn này tập trung trình bầy những khái niệm tổng quan về khai phá
dữ liệu, mẫu phổ biến, luật kết hợp. Từ đó tìm hiểu các phương pháp khai phá tập
mục phổ biến sinh ứng viên đối với khai phá khai phá luật kết hợp nhị phân. Đồng
thời, dựa trên phân tích về những bất cập của phương pháp này, luận văn xem xét một
số phương phương pháp cải tiến, khai phá tập mục không cần sinh ứng viên, cùng với
những phân tích đánh giá chi tiết về ưu điểm và nhược điểm của phương pháp này.
Bên cạnh đó, luận văn cũng đề cập đến một hướng tiếp cận khác trong việc khai phá
luật kết hợp đó là khai phá luật kết hợp định lượng. Đây là một trong những hướng
8
phát triển để hoàn thiện những khía cạnh còn thiếu sót của khai phá luật kết hợp nhị
phân. Hơn nữa, các thước đo tương quan cũng được trình bầy để giúp đánh giá một
luật được đưa ra có thực sự mạnh và đáng quan tâm hay không. Cuối cùng, tìm hiểu về
công cụ Weka và sử dụng công cụ này để mô phỏng các phương pháp khai phá đã đề
cập.
Luận văn bao gồm ba chương: Chương 1: Tổng quan về khai phá mẫu phổ biến,
luật kết hợp và các thước đo tương quan. Chương 2: Một số phương pháp cơ bản và
mở rộng trong khai phá luật kết hợp. Chương 3: Giới thiệu công cụ khai phá dữ liệu
Weka và mô phỏng.

Hà Nội, ngày 10 tháng 10 năm 2011
Học viên

Vũ Mỹ Hạnh
9
CHƢƠNG 1: TỔNG QUAN VỀ KHAI PHÁ MẪU PHỔ BIẾN, LUẬT KẾT
HỢP VÀ CÁC THƢỚC ĐO TƢƠNG QUAN
1.1. Tổng quan về khai phá dữ liệu
1.1.1. Khai phá dữ liệu
Phát hiện tri thức trong cơ sở dữ liệu (còn được gọi là khai phá dữ liệu) là một
quá trình không tầm thường, nhận ra những mẫu có giá trị, mới, hữu ích, tiềm năng và
hiểu được trong dữ liệu.[1]
1.1.2.Tiến trình khai phá tri thức
Nhiều người cho rằng khai phá dữ liệu (data mining) đồng nghĩa với khám phá
tri thức từ dữ liệu – Knowledge Discovery form Data hoặc KDD. Một cách nhìn khác
cho rằng khai phá dữ liệu đơn giản chỉ là một bước cốt yếu trong tiến trình khám phá
tri thức[2]. Khai phá tri thức là một tiến trình bao gồm một dãy các bước:

Hình 1.1: Khai phá dữ liệu là một bƣớc trong tiến trình khai phá tri thức
1.Chọn lựa dữ liệu (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 như CSDL - databases, kho dữ liệu -
data warehouses, theo một số tiêu chí nhất định.
10
2.Tiền xử lý dữ liệu – Data preprocessing: là bước làm sạch dữ liệu (xử lý với dữ
liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không đồng nhất, v.v ), rút gọn dữ liệu
(sử dụng hàm nhóm và tính tổng, các phương pháp nén dữ liệu, sử dụng
histograms, lấy mẫu,v.v ), rời rạc hóa dữ liệu (rời rạc hóa dựa vào histograms,
dựa vào entropy, dựa vào phân khoảng,v.v ). Kết thúc bước này, dữ liệu sẽ nhất
quán, đầy đủ, được rút gọn và được rời rạc hóa.
3.Đổi dạng dữ liệu – data transformation: là bước chuẩn hóa và làm mịn dữ liệu để
đưa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các kỹ thuật khai phá ở
bước sau.
4.Khai phá dữ liệu – data mining: là bước áp dụng những kỹ thuật khai phá ( phần

nhiều là các kỹ thuật của học máy – machine learning) để khai phá, trích chọn
được những mẫu – patterns thông tin, những mối liên hệ - relationships đặc biệt
trong dữ liệu. Đây được xem là bước quan trọng và tốn nhiều thời gian nhất của
toàn quá trình khai phá tri thức – KDD.
5.Trình diễn (Biểu diễn và đánh giá tri thức) – knowledge representation &
evaluation: những mẫu thông tin và mối quan hệ trong dữ liệu đã được khai phá
ở bước trên được chuyển dạng và biểu diễn ở một dạng gần gũi với người sử
dụng, như đồ thị, cây, bảng biểu, luật,v.v Đồng thời bước này cũng đánh giá
những tri thức khám phá được theo những tiêu chí nhất định.
1.1.3. Các hướng tiếp cận trong khai phá dữ liệu
Các hướng tiếp cận của KPDL có thể được phân chia theo chức năng hay lớp các
bài toán khác nhau. Sau đây là một số hướng tiếp cận khá phổ biến:
Phân lớp và dự đoán (classification and prediction): là phương pháp xếp một
đối tượng vào một trong những lớp đã biết trước. Hướng tiếp cận này thường sử
dụng một số kỹ thuật học máy như: cây quyết định – decision, mạng nơ-ron –
neural network, Phân lớp còn được gọi là học có giám sát – supervised
learning.
Phân cụm (clustering/segmentation): Xếp các đối tượng theo từng cụm, số
lượng cũng như tên các cụm chưa được biết trước. Phân cụm còn được gọi là
học không giám sát – unsupervised learning.
11
Khai phá luật kết hợp (association rules): là cách biểu diễn tri thức dưới dạng
các luật khá đơn giản nhưng mang rất nhiều ý nghĩa. Thông tin luật đem lại là
rất đáng kể và hỗ trợ không nhỏ trong quá trình ra quyết định. Tìm kiếm được
những luật thực sự “mạnh” chứa đựng nhiều thông tin 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, là một động lực
không nhỏ thúc đẩy việc tập trung nghiên cứu của nhiều nhà khoa học.
Khai phá chuỗi theo thời gian (sequential/temporal patterns): giống như khai
phá luật kết hợp, nhưng có thêm tính thứ tự và tính thời gian. Hướng tiếp cận
này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì

nó có tính dự báo cao.
Mô tả khái niệm (concept description & summarization): thiên về mô tả, tổng
hợp và tóm tắt khái niệm. Ví dụ như: tóm tắt văn bản,
1.1.4. Một số ứng dụng trong khai phá dữ liệu
Khai phá dữ liệu là một lĩnh vực mới nhưng thu hút được rất nhiều sự quan tâm của
các nhà nghiên cứu nhờ vào tính ứng dụng thực tiễn của nó. Một số ứng dụng điển
hình được kể đến bao gồm:
Phân tích dữ liệu và hỗ trợ quyết định (data analysis and dicision support):
oPhân tích và quản lý thị trường: Tiếp thị định hướng, quản lý quan hệ
khách hàng, phân tích thói quen mua sắm, tiếp thị chéo, phân đoạn thị
trường.
oPhân tích và quản lý rủi ro: dự báo, duy trì khách hàng, cải thiện bảo lãnh,
kiểm soát chất lượng, phân tích cạnh tranh.
oPhát hiện gian lận, phát hiện mẫu bất thường (ngoại lai).
Ứng dụng khác:
oKhai phá văn bản (text mining), khai phá web (web mining).
oKhai phá dữ liệu dòng.
oTin sinh (bio-informatics): tìm kiếm, đối sánh giữa các hệ gen và thông tin
di truyền, mối liên hệ giữa một số hệ gen và bệnh di truyền, phân tích
AND và dữ liệu sinh học.
12
oĐiều trị y học ( medical treament), như tìm hiểu mối quan hệ giữa triệu
chứng, chuẩn đoán và phương pháp điều trị, giữa chế độ dinh dưỡng với
bệnh lý và thuốc,
oTài chính và thị trường chứng khoán ( finance and stock market): phân tích
và dự báo tình tình tài chính cũng như quy luật hoạt động của cổ phiếu
trên trị thường chứng khoán,
oBảo hiểm ( insurance).
1.1.5. Một số thách thức trong khai phá dữ liệu
Hiện nay, khai phá dữ liệu được ứng dụng trong nhiều lĩnh vực khá điển hình như:

trong Phân tích dữ liệu hỗ trợ ra quyết đinh, trong y học, bảo hiểm, giáo dục, trong
lĩnh vực tài chính và phân tích thị trường, và một số lính vực khác như Tin sinh học,
và khai phá dữ liệu web, Có khá nhiều những giải pháp cũng như các phương pháp
được sử dụng trong khai phá dữ liệu, tuy nhiên vẫn tồn tại không ít khó khăn và thách
thức:
Cơ sở dữ liệu lớn (về số lượng các bản ghi cũng như về số chiều thuộc tính)
trong cơ sở dữ liệu ( CSDL). Dung lượng của các bản ghi trong CSDL đôi khi
lên tới hàng GigaByte(GB), TeraByte(TB). Số chiều thuộc tính trong CSDL
có thể rất lớn và đa dạng. Để giải quyết vấn đề này, người ta đưa ra một
ngưỡng nào đó cho CSDL bằng các cách như: chiết xuất mẫu, xấp xỉ hoặc xử
lý song song. Trong CSDL khi số chiều thuộc tính là rất lớn, cùng với số
lượng lớn các bản ghi sẽ dẫn đến kích thước và độ phức tạp của bài toán tăng
lên.Vì vậy, không gian tìm kiếm và không gian trạng thái gia tăng, nhiều mẫu
dư thừa và trùng lặp, phát sinh nhiều luật thừa. Đây được coi là vấn đề nan
giải trong quá trình khai phá dữ liệu. Nhằm giải quyết những vấn đề trên, phải
sử dụng một số tri thức đã biết để loại bỏ và trích lọc ra những dữ liệu thích
hợp với yêu cầu bài toán.
Dữ liệu bị thay đổi phụ thuộc theo thời gian: có nghĩa là dữ liệu bị ảnh hưởng
và phụ thuộc vào thời điểm quan sát, thời điểm lấy mẫu, thời điểm khai phá.
Kết quả đạt được sau khai phá cũng gây không ít khó khăn cho khai phá dữ
liệu, ví dụ như các mẫu khai phá ở giai đoạn trước có thẻ không còn giá trị
hay vô nghĩa tại thời điểm sử dụng, hoặc có thể bị làm nhiễu hay phát sinh
13
hiệu ứng phụ làm sai lệch kết quả. Để khắc phục được vấn đề này cần thiết
phải chuẩn hóa, cải tiến và nâng cấp mẫu, nâng cấp các mô hình và có thể
xem các thay đổi này là mục đích của khai phá và tìm kiếm mẫu bị thay đổi.
Thuộc tính không phù hợp, các bộ giá trị không đầy đủ, bị thiếu các giá trị
trong các miền thuộc tính đã làm ảnh hưởng không nhỏ đến quá trình khai
phá dữ liệu. Trong khai phá dữ liệu, khi các hệ thống tương tác với nhau phụ
thuộc nhau mà thiếu vắng mội vài giá trị nào đó, sẽ dẫn đến các mẫu không

còn chính xác, bị thiếu và không đầy đủ. Để giải quyết vấn đề này, người ta
coi sự thiếu vắng của các dữ liệu này như là các giá trị ẩn, chưa biết và có thể
được tiên đoán bằng một số phương pháp nào đó. Quan hệ phức tạp giữa các
thuộc tính trong CSDL cũng là vấn đề cần được quan tâm. Những bộ thuộc
tính có cấu trúc, phân lớp phức tạp, có mối liên hệ phức tạp với nhau trong
CSDL đòi hỏi tiến trình khai phá dữ liệu phải có các giải pháp, các kỹ thuật
để có thể áp dụng được, nhận ra được các mối quan hệ này.
Lựa chọn giải pháp khai phá dữ liệu tự động: Hiện này người ta chưa đưa ra
được một tiêu chuẩn để đánh giá cho việc lựa chọn phương pháp nào là phù
hợp và hiệu quả cho từng trường hợp cụ thể. Các kỹ thuật đều khá mới mẻ
trong các lĩnh vực ứng dụng, hơn nữa lại có rất nhiều kỹ thuật được sử dụng
cho nhiều bài toán khác nhau.
Vì vậy, ngay sau câu hỏi khai phá dữ liệu là gì? Câu hỏi kế tiếp ngay sau đó sẽ
là: Nên sử dụng kỹ thuật nào là phù hợp và hiệu quả? Câu trả lời thật sự không đơn
giản!
1.2. Các khái niệm cơ bản về khai phá mẫu phổ biến tìm luật kết hợp và
phân tích mối tương quan
1.2.1. Khái niệm về khai phá mẫu phổ biến
1.2.1.1. Mẫu phổ biến
Frequent patterns – mẫu phổ biến được biết đến như: các tập mục – itemsets,
dãy con – subsequence, hoặc cấu trúc con – substructures, là những mẫu xuất hiện
phổ biến trong một tập dữ liệu.
14
1.2.1.2. Ý nghĩa của khai phá mẫu phổ biến
Tìm kiếm các mẫu phổ biến đóng vai trò thiết yếu trong khai phá luật kết hợp,
tìm kiếm mối tương quan, và các mối quan hệ thú vị trong dữ liệu. Hơn nữa, nó giúp
phân lớp, phân cụm dữ liệu, và hỗ trợ các nhiệm vụ khai phá dữ liệu khá tốt. Do vậy,
khai phá mẫu phổ biến đã trở thành nhiệm vụ khai phá dữ liệu quan trọng và là một
chủ đề cần khai phá và tìm kiếm dữ liệu [2].
Chủ đề về khai phá mẫu phổ biến thực sự rất phong phú và rộng lớn. Lĩnh vực

nghiên cứu này chú trọng nghiên cứu sâu một số vấn đề như:
Làm thế nào có thể tìm thấy các tập mục phổ biến trong trong một lượng
lớn dữ liệu, trong đó, dữ liệu có thể là các dữ liệu giao dịch hoặc dữ liệu
quan hệ?
Làm thế nào có thể khai phá được các luật kết hợp trong không gian đa mức
và đa chiều?
Những luật kết hợp nào là lý thú nhất?
Làm thế nào có thể chỉ ra được các thuật toán, phương pháp khai phá hiệu
quả để khám phá những luật kết hợp thú vị hoặc các mối tương quan giữa
các mục?
Đây cũng chính là cơ sở để tạo điều kiện thuận lợi cho việc mở rộng các hình
thức khai phá mẫu phổ biến sau này.
1.2.2. Phát biểu bài toán tìm luật kết hợp
Cho I={I
1
,I
2
, ,I
m
} là một tập mục. Cho D là một tập cơ sở dữ liệu giao dịch,
trong đó mỗi giao dịch T là một tập mục có dạng (T  I). Mỗi giao dịch có một định
danh TID. Cho A là một tập các mục, một giao dịch T được gọi là chứa A, nếu và chỉ
nếu A  T.
Một luật kết hợp, ký hiệu là AB, trong đó A  I, B  I, và A  B = . Luật
AB trong tập giao dịch D có độ hỗ trợ s, và độ tin cậy c.
Trong đó:
Cơ sở dữ liệu giao dịch là toàn bộ các mặt hàng khách mua, mỗi mặt hàng (mục:
item) ứng với mỗi mục trong tập I. Giao dịch T là danh sách các mặt hàng trong
một giỏ hàng mà khách đã mua, T  I, mỗi giao dịch T được gán định danh TID.
s là phần trăm (%) các giao dịch trong D chứa AB. Chính là xác suất P(AB).

15
Support (AB) = P(AB) (1.2)
c là phần trăm (%) của những giao dịch trong D có chứa A thì cũng chứa B. Chính là
xác suất điều kiện P (BA). Đó là:
Confidence (A

B) = P (B

A) (1.3)
Luật thỏa mãn cả hai ngưỡng hỗ trợ tối thiểu (min-sup) và ngưỡng tin cậy tối
thiểu (min-conf) được gọi là luật mạnh ( Nghĩa là: s min-sup và c min-conf). Độ
hỗ trợ và độ tin cậy nhận giá trị trong khoảng từ 0% đến 100% hoặc từ 0.0 đến 1.0.
Giá trị min-sup và min-conf được xác định bởi người dùng hoặc bởi hệ chuyên gia
(domain experts). [2]
Một tập các mục được gọi là tập mục (itemset). Ký hiệu k-itemset được hiểu là
tập mục có chứa k mục.
Ví dụ: Tập {máy giặt, xà phòng giặt} là tập 2-itemset.
Sự phổ biến của một tập mục là số giao dịch có chứa tập mục đó. Nếu độ hỗ trợ
của một tập mục I thỏa mãn ngưỡng hỗ trợ tối thiểu (min-sup) thì I được gọi là tập
mục phổ biến. Tập mục phổ biến k-itemset thường được biểu diễn bởi L
k
.
Công thức (1.3) có thể được viết lại như sau:

(1.4)
Công thức (1.4) cho biết độ tin cậy của luật AB có thể dễ dạng nhận được từ
độ hỗ trợ của A và AB. Do vậy, vấn đề bắt buộc của khai phá luật kết hợp là phải
khai phá các tập mục phổ biến.
Tóm lại, tìm luật kết hợp có thể thực hiện qua hai bước:
1.Tìm tất cả các tập mục phổ biến: theo định nghĩa, việc xác định tập mục phổ

biến được thực hiện thông qua việc xét độ hỗ trợ của mỗi tập mục có thỏa mãn
độ hỗ trợ tối thiểu (min-sup) định trước.
2.Tạo luật liên kết mạnh từ tập mục phổ biến: định nghĩa, một luật kết hợp được
coi là mạnh nếu luật này thỏa mãn độ hỗ trợ tối thiểu và độ tin cậy tối thiểu.
Ví dụ 1.1 Minh họa bài toán khai phá mẫu phổ biến tìm luật kết hợp
Một cách tổng quát, cho tập mục I = {A,B,C,D,E,F}gồm 6 mục. Xét cơ sở dữ liệu giao
dịch D với các giao dịch ứng với các định danh TID thể hiện ở bảng dưới đây (Giả
thiết, giá trị min-sup=50%, min-conf=50%).
16
TID
Các mục hàng trong giỏ
T01
A,B,C
T02
A,C
T03
A,D
T04
B,E,F
Bảng 1.1. Cơ sở dữ liệu giao dịch D
Duyệt cơ sở dữ liệu, dựa vào tần suất xuất xuất hiện của các tập mục trong các giao
dịch từ T01 đến T04, ta tìm được các tập mục phổ biến có độ hỗ trợ thỏa mãn min-sup
(các tập mục có độ hỗ trợ min-sup được loại bỏ) như sau:
Các tập mục
Tần suất xuất hiện
Độ hỗ trợ (support)
{A}
3
3/4=75%
{B}

2
2/4=50%
{C}
2
2/4=50%
{A,C}
2
2/4=50%
Bảng 1.2. Tần suất xuất hiện và độ hỗ trợ của các tập mục phổ biến
Từ đó, ta tìm được hai luật: A C và C  A. Tính độ tin cậy, và độ hỗ trợ của từng
luật ta có:
+) Đối với luật A C:
Support (A C) = P(AC) = (thỏa mãn min-sup)
Confidence (A C) = P(CA) = = (thỏa mãn min-conf)
Vậy A C là luật mạnh.
+) Đối với luật C A:
Support (C A) = P(CA) = (thỏa mãn min-sup)
Confidence (C A) = P(AC) = = (thỏa mãn min-conf)
Vậy C A là luật mạnh.
Kết luận: Từ CSDL D có thể sinh được hai luật mạnh đó là A C và C  A.
17
1.2.3. Mối tương quan giữa các mục
Hầu hết các thuật toán khai phá luật kết hợp sử dụng một cấu trúc độ hỗ trợ - độ tin
cậy. Thông thường, nhiều luật lý thú có thể tìm thấy khi sử dụng một ngưỡng hỗ trợ
thấp. Mặc dầu, ngưỡng hỗ trợ tối thiểu và ngưỡng tin cậy tối thiểu giúp loại bỏ hoặc
ngăn chặn một số lượng tốt các luật không đáng quan tâm, tuy nhiên, nhiều luật được
sinh ra vẫn không hữu ích đối với người dùng. Thật không may, điều này lại đặc biệt
đúng khi khai phá với ngưỡng hỗ trợ thấp và khai phá các mẫu dài. Điều này đã từng
là một trong những trở ngại lớn trong việc ứng dụng thành công khai phá luật kết hợp.
Trong Chương 2 của luận văn, sẽ đề cập đến việc xem xét: Tại sao một số luật kết hợp

mạnh lại không đáng quan tâm và gây hiểu nhầm? Sau đó chúng ta sẽ thảo luận về
việc bổ sung thêm những thước đo tương quan vào cấu trúc độ hỗ trợ - độ tin cậy.

18

CHƢƠNG 2: MỘT SỐ PHƢƠNG PHÁP KHAI PHÁ LUẬT KẾT HỢP
2.1. Phương pháp khai phá tập mục phổ biến sử dụng kỹ thuật sinh ứng
viên
Apriori là thuật toán khai phá tập mục phổ biến cho các luật kết hợp Boolean.
Thuật toán chịu ảnh hưởng bởi thuyết của R.Agrawal và R.Srikant năm 1994.
2.1.1. Tư tưởng của thuật toán
Apriori sử dụng một phương pháp đệ quy được biết đến như một cấp tìm kiếm
thông minh, trong đó k-itemsets được sử dụng để tìm kiếm (k+1)-itemsets.
Đầu tiên, 1-itemsets phổ biến được tìm thấy bằng cách duyệt CSDL để đếm các
mục, và lựa chọn các tập mục thỏa mãn độ hỗ trợ tối thiểu (min-sup). Kết quả thể hiện
bởi tập L
1
.
Tiếp đến L
1
được sử dụng để tìm L
2
(tập có hai mục phổ biến), rồi lại sử dụng L
2

để tìm L
3
. Cứ tiếp tục như thế, cho đến khi không thể tìm thấy nhiều hơn k-itemsets
phổ biến.
Mỗi lần tìm một tập mục phổ biến L

k
thuật toán đòi hỏi phải quét toàn bộ CSDL
một lần.
2.1.2. Tính chất Apriori
Tính chất Apriori: Mọi tập con khác rỗng của tập mục phổ biến cũng phải phổ
biến.
Như chúng ta đã biết, quá trình tìm kiếm mẫu phổ biến có thể phát sinh nhiều
kiểu luật khác nhau và các mối quan hệ thú vị khác. Luật kết hợp hầu hết là những luật
được sinh ra từ các mẫu phổ biến. Tuy nhiên, một lượng lớn các luật kết hợp được sinh
ra là dư thừa hoặc không chỉ ra được mối quan hệ tương quan giữa các tập mục. Vì
thế, tính chất Apriori giúp giảm thiểu không gian tìm kiếm, giảm thiểu chi phí cho việc
sinh và kiểm tra các tập mục không phổ biến.
Thuộc tính Apriori dựa trên cơ sở những quan sát sau đây. Theo định nghĩa, nếu
một tập mục I không thỏa mãn ngưỡng hỗ trợ tối thiểu min-sup (nghĩa là P(I) <
min_sup), thì I không phổ biến. Nếu một mục A được thêm vào tập mục I, thì tập mục
19
kết quả (I A) không thể phổ biến hơn tập mục I. Do vậy, tập mục I A thậm chí
không phổ biến, vì P(I A) < min_sup.
Thuộc tính này được gọi là không đơn điệu (antimonotone) trong trường hợp một
tập mục không thể qua được đợt kiểm tra về tính phổ biến thì tất cả các tập cha
(supersets) của nó cũng sẽ thất bại trong bài kiểm tra tương tự.
2.1.3. Các bước thực hiện thuật toán Apriori
Thuật toán được thực hiện qua 2 bước cơ bản, bao gồm bước kết nối ( join) và bước
cắt tỉa ( prune).
Bước kết nối (join): Tìm tập mục phổ biến L
k
từ tập ứng viên C
k
.
Tập ứng viên C

k
được sinh ra bằng cách kết nối L
k-1
với chính nó. Cho l
1

và l
2
là các tập mục thuộc L
k-1
. Ký hiệu li[j] để chỉ mục thứ j trong tập
mục l
i
( ví dụ l
1
[k-2] để chỉ mục cuối cùng thứ hai trong l
1
). Theo quy
ước, Apriori giả định các mục bên trong một giao dịch hoặc tập mục
được sắp xếp theo thứ tự từ điển. Đối với (k-1)-tập mục, l
i
, có nghĩa là
các mục được sắp xếp theo thứ tự l
i
[1] < l
i
[2]< < l
i
[k-1]. Kết nối L
k-

1
L
k-1
được thực hiện như sau: các thành phần của L
k-1
được kết hợp
nếu (k-2) mục đầu tiên giống nhau. Ở đó, thành phần l
1
và l
2
của L
k-1
được kết hợp nếu (l
1
[1]=l
2
[1] ˄ (l
1
[2]=l
2
[2] )˄ ˄ (l
1
[k-2]=l
2
[k-2]) ˄
(l
1
[k-1] < l
2
[k-1]). Điều kiện l

1
[k-1] < l
2
[k-1] chỉ đơn giản là đảm bảo
rằng không có bản sao nào được tạo ra. Tập mục kết hợp được hình
thành bằng cách kết hợp l1 và l2 là l
1
[1], l
1
[2], ,l
1
[k-2], l
1
[k-1], l
2
[k-1].
Bước tỉa ( prune):Tập ứng viên C
k
là tập cha L
k
, các thành viên của nó có
thể phổ biến hoặc không phổ biến, nhưng L
k
phải bao gồm tất cả các tập
mục phổ biến có k mục. Duyệt CSDL để xác định số lượng các ứng viên
sẽ xuất hiện trong C
k
, nhưng số ứng viên này có thể rất lớn, vì vậy điều
này có thể dẫn đến việc tính toán khó khăn. Để giảm kích thước của C
k

,
tính chất Apriori được sử dụng như sau: Nếu bất kỳ (k-1)_tập con không
phổ biến thì không thể là tập con của k-tập mục phổ biến, do đó có thể
xóa khỏi C
k
. Kiểm tra tập con này có thể thực hiện nhanh chóng bằng
cách duy trì một cây băm của tất cả các tập mục phổ biến.
20
Ví dụ 2.1
Xét một CSDL giao dịch D được thể hiện bởi bảng sau:
TID
Danh sách các mục ứng với mỗi giao dịch
T01
I1, I2, I5
T02
I2, I4
T03
I2, I3
T04
I1, I2, I4
T05
I1, I3
T06
I2, I3
T07
I1, I3
T08
I1, I2, I3, I5
T09
I1, I2, I3

Bảng 2.1: Cơ sở dữ liệu giao dịch D
Từ (Bảng 2.1) ta thấy CSDL D gồm 9 giao dịch, . Chúng ta sử dụng Hình 2.1
dưới đây để minh họa cho thuật toán Apriori tìm tập mục phổ biến trong CSDL D.
1.Trong bước đầu tiên của thuật toán, mỗi mục là một thành viên của tập ứng viên
C
1
(có 1-tập mục). Thuật toán đơn giản là quét tất cả các giao dịch theo thứ tự để
đếm số lần xuất hiện của mỗi mục.
2.Giả thiết rằng số đếm hỗ trợ tối thiểu (min_sup count) theo yêu cầu là 2, nghĩa là
min_sup = 2~ 2/9 = 22.2%. Từ đó, tập mục phổ biến L
1
(có 1-tập mục) được
xác định bằng cách lựa chọn những mục ứng viên thuộc C
1
thỏa mãn min-sup.
Trong ví dụ này, tất cả các ứng viên trong C1 đều thỏa mãn độ hỗ trợ tối thiểu
(vì độ hỗ trợ của các ứng viên đều lớn hơn 2).
3.Để xác định tập gồm 2_tập mục phổ biến, L
2
, thuật toán sử dụng phép kết nối
L
1
⋈L
1
để tạo ra một tập ứng viên C
2
có 2_tập mục. C
2
bao gồm ) 2_tập
mục. Ta thấy rằng không có ứng viên nào bị xóa khỏi C

2
trong bước cắt tỉa bởi
vì mỗi tập con của các ứng viên đều phổ biến.
4.Tiếp theo, các giao dịch trong D được quét và số hỗ trợ của mỗi tập mục ứng
viên trong C
2
được tích lại, như ta nhìn thấy trong bảng ở giữa của dòng thứ hai
trong Hình 2.1.
5.Sau đó tập 2_tập mục ứng viên L
2
được xác định, bao gồm những ứng viên 2_tập
mục trong C
2
có độ hỗ trợ thỏa mãn độ hỗ trợ tối thiểu (min-sup).
6.Để minh họa cho việc sinh tập mục ứng viên C
3
ta sử dụng Hình 2.2 dưới đây. Từ
bước kết nối (join) đầu tiên chúng ta tìm được C
3
= L
2
⋈L
2
= {{I1,I2,I3},
{I1,I2,I5}, {I1,I3,I5}, {I2,I3,I4}, {I2,I3,I5}, {I2,I4,I5}}. Dựa trên tính chất
21
C
1

C

2

Quét CSDL D
sinh ứng viên
So sánh độ hỗ trợ của ứng
viên với độ hỗ trợ tối thiểu
min-sup
L
1

Sinh tập
ứng viên
C
2
từ L
1

Quét CSDL
D sinh ứng
viên
So sánh độ hỗ
trợ của ứng
viên với độ hỗ
trợ tối thiểu
min-sup
C
2

L
2


C
3

Sinh tập
ứng viên
C
3
từ L
2

Quét CSDL D
sinh ứng viên
So sánh độ hỗ
trợ của ứng
viên với độ hỗ
trợ tối thiểu
min-sup
C
3

L
3

Apriori: tất cả các tập con của một tập mục phổ biến thì cũng phổ biến. Từ đó
chúng ta có thể thấy rằng bốn ứng viên sau cùng không thể phổ biến (vì các tập
{I3,I4}, {I3,I5},{I4,I5} không phổ biến).






















Hình 2.1. Sinh tập mục ứng viên và tập mục phổ biến với min-sup=2












Tập
mục
Độ hỗ trợ
{I1}
{I2}
{I3}
{I4}
{I5}
6
7
6
2
2
Tập
mục
Độ hỗ trợ
{I1}
{I2}
{I3}
{I4}
{I5}
6
7
6
2
2
Tập
mục
Độ hỗ
trợ

{I1,I2}
{I1,I3}
{I1,I4}
{I1,I5}
{I2,I3}
{I2,I4}
{I2,I5}
{I3,I4}
{I3,I5}
{I4,I5}
4
4
1
2
4
2
2
0
1
0
Tập
mục
Độ hỗ
trợ
{I1,I2}
{I1,I3}
{I1,I5}
{I2,I3}
{I2,I4}
{I2,I5}


4
4
2
4
2
2
Tập
mục
{I1,I2}
{I1,I3}
{I1,I4}
{I1,I5}
{I2,I3}
{I2,I4}
{I2,I5}
{I3,I4}
{I3,I5}
{I4,I5}
Tập mục
Độ
hỗ
trợ
{I1,I2,I3}
{I1,I2,I5}

2
2

Tập mục

Độ hỗ
trợ
{I1,I2,I3}
{I1,I2,I5}

2
2

Tập mục
{I1,I2,I3}
{I1,I2,I5}

Kết nối: C
3
= L
2
⋈L
2
= {{I1,I2},{I1,I3},{I1,I5},{I2,I3},{I2,I4},{I2,I5}}⋈
{{I1,I2,I3},{I1,I2,I5},{I1,I3,I5},{I2,I3,I4},{I2,I3,I5},{I2,I4,I5}}
(a) Bƣớc tỉa sử dụng tính chất Apriori: Tất cả các tập con không rỗng của một
tập mục phổ biến cũng phải phổ biến.
Các tập con có 2-mục của tập {I1,I2,I3} là {I1,I2}, {I1,I3},{I2,I3}. Tất cả các
tập con này đều thuộc L
2
, do đó tập {I1, I2,I3} đƣợc giữ lại.
Các tập con có 2-mục của tập {I1,I2,I5} là {I1,I2}, {I1,I5},{I2,I5}. Tất cả các
tập con này đều thuộc L
2
, do đó tập {I1, I2,I5} đƣợc giữ lại.

Các tập con có 2-mục của tập {I1,I3,I5} là {I1,I3}, {I1,I5},{I3,I5}. Ta thấy tập
{I3,I5} không thuộc L
2
, do đó tập {I1,I3,I5} bị loại khỏi C
3
.
Các tập con có 2-mục của tập {I2,I3,I4} là {I2,I3}, {I2,I4},{I3,I4}. Ta thấy tập
{I3,I4} không thuộc L
2
, do đó tập {I2,I3,I4} bị loại khỏi C
3
.
Các tập con có 2-mục của tập {I2,I3,I5} là {I2,I3}, {I2,I5},{I3,I5}. Ta thấy tập
{I3,I5} không thuộc L
2
, do đó tập {I1,I3,I5} bị loại khỏi C
3
.
Các tập con có 2-mục của tập {I2,I4,I5} là {I2,I4}, {I2,I5},{I4,I5}. Ta thấy tập
{I4,I5} không thuộc L
2
, do đó tập {I1,I3,I5} bị loại khỏi C
3
.
(b) Do đó, sau bước tỉa, C
3
= {{I1,I2,I3},{I1,I2,I5}}.

22


Hình 2.2. Sinh và tỉa 3-tập mục ứng viên C
3
từ L
2
sử dụng tính chất Apriori
Do vậy, chúng ta có thể xóa chúng khỏi C
3
, như vậy chúng ta đã tiết kiệm được
những nỗ lực không cần thiết khi phải đếm chúng trong suốt quá trình quét
CSDL D để xác định L
3
. Lưu ý rằng, khi đưa ra một ứng viên k_tập mục ,
chúng ta chỉ cần kiểm tra xem nếu (k-1)-tập con phổ biến, thì từ thuật toán
Apriori sử dụng một cấp tìm kiếm thông minh tìm kiếm chiến lược. Kết quả cắt
tỉa phiên bản C3 được thể hiện trong bảng đầu tiên của dòng cuối cùng trong
Hình 2.1.
7.Các giao dịch trong D được quét theo thứ tự xác định L
3
, bao gồm tập mục 3-ứng
viên trong C
3
thỏa mãn độ hỗ trợ tối thiểu ( Hình 2.1).
8.Thuật toán sử dụng kết nối L
3
⋈L
3
để phát sinh một tập ứng viên của 4-tập mục,
C
4
. Mặc dầu kết quả kết nối là {{I1,I2,I3,I5}}, tuy nhiên tập mục này bị cắt tỉa

bởi vì tập con{{I2,I3,I5}}của nó không phổ biến. Do đó C4=, và thuật toán
kết thúc, đã tìm thấy tất cả các tập mục phổ biến.
2.1.3.1. Mô tả thuật toán Apriori dƣới dạng giả mã
Thuật toán Apriori: Sử dụng một cấp tìm kiếm thông minh dựa trên việc sinh ứng
viên.
Đầu vào:
-Cơ sở dữ liệu giao dịch D = {t  t : giao dịch }.
- Độ hỗ trợ tối thiểu min_sup > 0.
Đầu ra: Tập hợp tất cả các tập phổ biến.
Phƣơng pháp:
(0)Mincount = Min_sup * ;
(1)L
1
= {tất cả các tập mục phổ biến có độ dài bằng 1 }.
(2)For ( k=2; L
k-1
, k++) {
(3) C
k
=Apriori-gen (L
k-1
); // sinh mọi ứng viên có độ dài k.
(4) For (mỗi giao dịch t D) { // quét CSDL D để đếm
23
(5) C
t
= (c ϵ C
k
 c t); // tất cả các ứng viên c thuộc C
k

với c là tập con
của giao dịch t.
(6) For (mỗi ứng viên c ϵ C
t
)
(7) c.Count ++;
(8) }// end for
(9) L
k
= {c ϵ C
k
 c.count min_sup}
(10)} // end for.
(11) Return L = L
k
;
Thuật toán Apriori được trình bầy dưới dạng giả_mã và các thủ tục liên quan.
Bước 1 của Apriori là tìm tất cả cấc tập mục phổ biến L
1
có độ dài bằng 1. Từ bước 2
đến bước 10, L
k-1
được sử dụng để sinh ứng viên C
k
theo trình tự để tìm L
k
với k 2.
Thủ tục Apriori_gen sinh các ứng viên và sử dụng tính chất Apriori để loại trừ những
tập con không phổ biến (bước 3). Thủ tục này được mô tả ở phía dưới. Một khi tất cả
các ứng viên đã được sinh ra, CSDL sẽ được quét (bước 4). Với mỗi giao dịch, một

hàm con được sử dụng để tìm tất cả các tập con của giao dịch đã được ứng cử (bước
5), và số ứng viên của mỗi giao dịch được tính ( bước 6 và 7). Cuối cùng, tất cả các
ứng viên đáp ứng độ hỗ trợ tối thiểu (bước 9) cấu thành lên tập của các tập mục phổ
biến L (bước 11). Có thể một thủ tục sẽ được gọi sau đó để sinh luật kết hợp từ tập
mục phổ biến.
Thủ tục Apriori_gen thực hiện hai loại hành động, cụ thể là, kết nối và cắt tỉa.
Trong thành phần kết nối, L
k-1
được kết nối với L
k-1
để sinh các ứng viên tiềm năng
(bước 1 tới bước 4). Thành phần tỉa (bước 5 đến bước 7) dựa vào tính chất Apriori để
loại bỏ các ứng viên mà có tập con không phổ biến. Thủ tục has_infrequent_subset
dùng để kiểm tra các tập con không phổ biến.
Procedure Apriori-gen ( L
k-1
: tập mục phổ biến có độ dài k-1)
(1) For ( mỗi tập mục l
1
ϵ L
k-1
)
(2) For ( mỗi tập mục l
2
ϵ L
k-1
)
(3) If ( l
1
[1] = l

2
[1]) ˄ ( l
1
[2] = l
2
[2]) ˄ ˄( l
1
[k-2] = l
2
[k-2]) ˄( l
1
[k-1] <
l
2
[k-1]) then {
(4) c = l
1
⋈l
2
; // bước kết nối: sinh ứng viên
24
(5) if has_infrequent_subset ( c, L
k-1
) then
(6) delete c; // bước tỉa: loại bỏ các ứng viên không có lợi
(7) else thêm c vào C
k
;
(8) }
(9) Return C

k
;

Procedure has_infrequent_subset ( c: ứng viên, L
k-1
: tập các tập mục phổ biến có độ
dài (k-1));
(1)For ( mỗi (k-1)-tập con s của c)
(2) If s  L
k-1
then
(3) Return TRUE;
(4)Return FALSE;

Ví dụ 2.2: Minh họa thuật toán Apriori
Hình 2.3 mô tả chi tiết quá trình tìm tập mục phổ biến từ cơ sở dữ liệu giao dịch D,
dựa vào thuật toán Aprori với độ hỗ trợ 0.5.

Hình 2.3 Ví dụ minh họa thuật toán Apriori với độ hỗ trợ = 0.5
25
2.1.3.2. Một số kỹ thuật cải tiến thuật toán Apriori
Apriori là một thuật toán khá hiệu quả trong khai phá tập mục phổ biến, tuy
nhiên thuật toán này vẫn còn tồn đọng một số vấn đề như:
Phải duyệt CSDL nhiều lần, do mỗi lần sinh tập mục ứng viên, lại phải
duyệt CSDL một lần.
Chưa tối ưu hóa được tập ứng viên, vì thế số lượng các ứng viên trong tập
mục ứng viên là khá lớn.
Hai vấn đề này làm tăng chi phí khi thực hiện thuật toán. Vậy “Làm thế nào
chúng ta có thể cải thiện được hiệu quả của việc khai phá dựa trên Apriori” Có nhiều
cải tiến của Apriori được đề xuất để nâng cao hiệu quả của thuật toán ban đầu. Một số

các cải tiến đó được tóm lược như sau:
(1)Kỹ thuật Băm: (băm các tập mục thành các nhóm tương ứng): kỹ thuật băm
có thể sử dụng để giảm kích thước của k-tập mục ứng viên , C
k
, , với k>1.
Ví dụ: Khi quét mỗi giao dịch trong CSDL để sinh tập mục phổ biến L
1
1-
itemsets từ tập ứng viên C
1
, chúng ta có thể sinh tất cả tập mục 2-itemsets
đối với mỗi giao dịch, băm chúng vào các nhóm-cụm (buckets) khác nhau
trong cấu trúc một bảng băm ( a hash table), và tăng số đếm nhóm (bucket
count) tương ứng ( Hình 2.4). Một tập mục có độ dài hai ( 2-tập mục) tương
ứng với số nhóm đếm được trong bảng băm mà dưới ngưỡng hỗ trợ tối thiểu
thì không thể phổ biến và do dó có thể loại bỏ khỏi tập ứng viên. Kỹ thuật
dựa trên cơ sở băm về căn bản có thể giảm số ứng viên của tập k-tập mục
cần kiểm tra ( đặt biệt là khi k=2)

Hình 2.4 Bảng băm H2, với 2-tập mục ứng viên: Bảng băm này đƣợc tạo bằng
cách duyệt các giao dịch của Bảng 2.1 trong khi tìm tập L1 từ tập ứng viên C1.
Địa chỉ cụm
0
1
2
3
4
5
6
Số đếm mỗi

cụm
2
2
4
2
2
4
4
Nội dung các
cụm
{I1,I4}
{I3,I5}

{I1,I5}
{I1,I5}
{I2,I3}
{I2,I3}
{I2,I3}
{I2,I3}
{I2,I4}
{I2,I4}
{I2,I5}
{I2,I5}
{I1,I2}
{I1,I2}
{I1,I2}
{I1,I2}
{I1,I3}
{I1,I3}
{I1,I3}

{I1,I3}
Tạo bảng băm H2
sử dụng hàm băm
h(x,y)=(order của
x)

10 + (order
của y)) mod 7
26
Nếu độ hỗ trợ tối thiểu bằng 3, thì các tập mục trong nhóm 0,1,3 và 4 không thể
phổ biến và do đó chúng không thể có mặt trong C2.
(2)Giảm giao dịch (Giảm số lần quét giao dịch trong trong lần lặp lại tiếp
theo): Một giao dịch mà không chứa k-tập mục phổ biến nào thì cũng
không thể chứa (k+1) tập mục phổ biến. Do đó, một giao dịch có thể được
đánh dấu hoặc loại bỏ trong lần quét CSDL sau đối với j-tập mục, với j>k,
sẽ không cần đến nó.
(3)Phân hoạch (phân chia dữ liệu để tìm tập mục ứng viên): Kỹ thuật này chỉ
sử dụng hai lần quét CSDL để khai phá tập mục phổ biến ( Hình 2.5). Kỹ
thuật phân hoạch bao gồm hai giai đoạn.
Giai đoạn I, thuật toán chia nhỏ giao dịch D thành n cụm không chồng
chéo. Nếu ngưỡng hỗ trợ tối thiểu của giao dịch trong D là min_sup, thì
ngưỡng hỗ trợ tối thiểu của mỗi vùng là (min_sup số giao dịch trong
vùng này). Với mỗi nhóm, tất cả các tập mục phổ biến bên trong nhóm đều
được tìm. Đây được gọi là tập mục phổ biến địa phương – local frequent
itemsets. Thủ tục sử dụng một cấu trúc dữ liệu đặc biệt đó là, với mỗi tập
mục, ghi lại định danh TID của giao dịch có chứa các mục trong tập mục.
Điều này cho phép nó tìm tất cả k_tập mục phổ biến địa phương với
k=1,2, , chỉ trong một lần quét CSDL.









Hình 2.5 Khai phá bằng phân hoạch dữ liệu
Một tập mục không phổ biến hoặc phổ biến địa phương liên quan đến toàn
bộ CSDL D. Bất kỳ tập mục nào là phổ biến đối với D phải xảy ra như một
tập mục phổ biến trong ít nhất một trong các phân hoạch. Do đó, tất cả các
Các giao
dịch
trong D
Chia D
thành n
vùng
Tìm các tập
mục phổ
biến địa
phương cho
mỗi vùng
(1 lần quét)
Tổ hợp các
tập mục phổ
biến địa
phương để
được tập
mục ứng cử
Tìm các tập
mục phổ

biến đích
trong số các
ứng cử (1
lần quét)
Các tập
mục phổ
biến trong
D
Giai đoạn 2
Giai đoạn 1

×