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

Một số vấn đề về tìm kiếm luật kết hợp trong cơ sở dữ liệu

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 (900.37 KB, 92 trang )

..

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
------------------------------------------------------

LUẬN VĂN THẠC SỸ KHOA HỌC

MỘT SỐ VẤN ĐỀ VỀ TÌM KIẾM LUẬT LIÊN
KẾT TRONG CƠ SỞ DỮ LIỆU

NGÀNH: CÔNG NGHỆ THÔNG TIN

NGUYỄN VŨ CƯƠNG
Người hướng dẫn khoa học: TS.TRẦN ĐÌNH KHANG

HÀ NỘI - 2005


Lời cám ơn

Trước tiên, em xin được gửi tới thầy giáo hướng dẫn TS. Trần Đình
Khang lời cám ơn chân thành nhất. Em xin được cám ơn sự tận tình
gợi ý, chỉ bảo và quan tâm của thầy giáo trong suốt quá trình thực
hiện luận văn. Và em cũng xin được cám ơn các thầy cô giáo trong
khoa Công nghệ thông tin - trường Đại học Bách Khoa – Hà Nội, các
thầy cô giáo đã dạy dỗ em trong suốt q trình học đại học, cũng như
tồn bộ các thầy cô giáo của trường đại học Bách Khoa – Hà Nội.
Ngoài ra, em cũng xin cám ơn các anh chị, các bạn bè trong lớp Cao
học Công nghệ thông tin niên khố 2003-2005 đã khuyến khích em rất
nhiều trong q trình thực hiện luận văn.


Học viên Cao học Cơng nghệ thơng tin khố 2003 - 2005
Nguyễn Vũ Cương

1


Mục lục
Mở đầu ...........................................................................................................4
Nội dung ........................................................................................................5
Chương I. Khái niệm cơ bản về khai phá dữ liệu và tìm kiếm luật liên kết .....5
I. Tổng quan về khai phá dữ liệu ..................................................................5
1.1.1 Định nghĩa KDD ..............................................................................5
1.1.2 Tiến trình KDD ................................................................................6
1.1.3 KDD và các lĩnh vực có liên quan ...................................................8
II. Các phương pháp khai phá dữ liệu ........................................................8
III. Tổng quan về tìm kiếm luật liên kết. .....................................................12
IV. Các đặc điểm cơ bản về luật liên kết ....................................................14
1.4.1 Mơ hình chuẩn ..............................................................................15
1.4.2. Chu trình tìm kiếm một tập các tập mục lớn. ...............................18
1.4.3. Hai đặc tính phân lớp. ..................................................................18
1.4.4. Hai hướng tiếp cận: Từ dưới lên và Từ trên xuống .....................19
V. Một số giải thuật căn bản .......................................................................21
1.5.1 Giải thuật Apriori và AprioriTID .....................................................22
1.5.1.1 Giải thuật Apriori ........................................................................23
1.5.1.2 Giải thuật AprioriTID...................................................................27
1.5.2 Giải thuật Partition.........................................................................29
1.5.2.1 Sản sinh ra các tập mục lớn cục bộ. ..........................................32
1.5.2.2 Quá trình tạo ra tập mục lớn. .....................................................34
1.5.2.3 Sản sinh ra các luật....................................................................34
VI. Kết luận .................................................................................................35

Chương II. Tìm kiếm luật liên kết với các mục có trọng số...........................36
I. Giới thiệu về trọng số ............................................................................36
II. Tìm kiếm luật liên kết nhị phân có trọng số...........................................37
2.2.1 Giới thiệu về luật liên kết nhị phân có trọng số .............................37
2.2.2 Luật liên kết nhị phân có trọng số .................................................38
2.2.3 Hướng phát triển dựa trên trọng số và số lượng ..........................39
2.2.4 Ngưỡng k-support - k-support bounds ..........................................40
2.2.5 Giải thuật tìm kiếm luật liên kết có trọng số ..................................42
III. Tìm kiếm luật liên kết có trọng số chuẩn tắc .........................................47
2.3.1 Hướng tiếp cận mới trong trường hợp trọng số chuẩn tắc ...........48
2.3.2 Giải thuật tìm kiếm luật liên kết có trọng số chuẩn tắc .................49
IV. Tìm kiếm luật liên kết có trọng số mờ ...................................................52
2.5.1 Giới thiệu về luật mờ.....................................................................52
2.5.2 Luật liên kết mờ có trọng số..........................................................54
V. Kết luận ..................................................................................................61
Chương III. Một số vấn đề nâng cao. ...........................................................62
I. Phân loại và so sánh các giải thuật .......................................................62
2


3.1.1 Phân loại .......................................................................................62
3.1.2 So sánh các giải thuật. ..................................................................65
II. Luật liên kết mở rộng ............................................................................68
3.2.1 Luật liên kết khái quát hoá – Generalized association rules. ........68
3.2.2 Luật liên kết không gian và thời gian ............................................70
3.2.3 Luật liên kết định lượng ................................................................71
3.2.4 Luật liên kết dữ liệu khoảng – Interval Data Association Rules ....75
3.2.5 Luật liên kết độ min-support bội - Multiple Min-supports
Association Rules...................................................................................76
3.2.6 Luật liên kết đa phương tiện .........................................................77

3.2.7 Luật liên kết toàn diện - Maximal Association Rules.....................78
3.2.8 Ràng buộc trên các luật ................................................................78
Chương IV. Ví dụ minh hoạ ..........................................................................80
I. Giải thuật Apriori và AprioriTID ...............................................................81
4.1.1 Giải thuật Apriori: ..........................................................................82
4.1.2 Giải thuật AprioriTID......................................................................82
4.1.3 Giải thuật Partition.........................................................................83
II. Giải thuật MINWAL(O) và giải thuật MINWAL(W)..................................83
4.2.1 Giải thuật MINWAL(O) ..................................................................85
4.2.2 Giải thuật MINWAL(W)..................................................................87
Kết luận ........................................................................................................90
Tài liệu tham khảo ......................................................................................91

3


Mở đầu

Thế kỷ XX đã qua đi đánh một dấu son chói lọi trong lĩnh vực khoa học cơng
nghệ. Cách mạng khoa học kỹ thuật diễn ra mọi lúc, mọi nơi, trên nhiều lĩnh vực
của đời sống. Và Việt Nam cũng khơng nằm ngồi qui luật chung đó. Trong q
trình phát triển này, chúng ta đã thu thập được một khối lượng rất lớn dữ liệu. Và
trong chính những cơ sở dữ liệu này tiềm ẩn rất nhiều tri thức có ích mà con người
chưa khám phá. Ngồi ra, số lượng dữ liệu lớn được thu thập vượt quá khả năng
phân tích của chúng ta mà khơng sử dụng những kỹ thuật phân tích tự động. Do vậy
đã có một nhu cầu rất thiết thực là tìm kiếm được những tri thức trong những núi dữ
liệu này. Nhu cầu này ngày càng cấp thiết và đã dẫn tới sự hình thành của một lĩnh
vực mới, đó là khai phá tri thức trong cơ sở dữ liệu – Knowledge discovery in
database(KDD). Đây là một hướng nghiên cứu còn khá mới mẻ, có tính ứng dụng
thực tiễn cao và cịn nhiều bài tốn mở.

Xuất phát từ thực tế nói trên, và với mục đích tìm hiểu việc tìm ra các luật liên kết
trong cơ sở dữ liệu cỡ lớn, em đã quyết định lựa chọn đề tài “Một số vấn đề về tìm
kiếm luật liên kết trong cơ sở dữ liệu” . Luận văn của em gồm 4 chương như sau:
Chương I: Các khái niệm cơ bản về khai phá dữ liệu và tìm kiếm luật liên kết
Chương II. Tìm kiếm luật liên kết với các tập mục có trọng số
Chương III. Một số vấn đề nâng cao
Chương IV. Ví dụ minh họa.
Trong quá trình thực hiện đồ án này, mặc dù đã rất cố gắng, song không thể tránh
khỏi những sai sót, em rất mong nhận được sự chỉ bảo và giúp đỡ từ phía thầy cơ và
các bạn.

4


Nội dung
Chương I. Khái niệm cơ bản về khai phá dữ liệu và tìm
kiếm luật liên kết
I. Tổng quan về khai phá dữ liệu
Ngày nay, máy tính đã được sử dụng rộng rãi trong nhiều lĩnh vực. Khả năng lưu
trữ nhanh, đáng tin cậy và không hạn chế của máy tính tạo ra cho người sử dụng
một mơi trường hồn hảo để thu thập và lưu trữ một khối lượng thơng tin khổng lồ.
Máy tính cũng được dùng để tìm kiếm những thơng tin hữu ích trong hàng loạt các
dữ liệu. Đây chính là q trình khai phá tri thức trong cơ sở dữ liệu (KDDKnowledge discovery in database) hay tìm kiếm thơng tin.
1.1.1 Định nghĩa KDD
KDD được định nghĩa là q trình tìm kiếm thơng tin có thể sử dụng được từ
những dữ liệu trong CSDL. Fayyad gợi ý rằng q trình KDD có thể chia ra làm các
bước, như được chỉ ra trong hình 1.1. Tồn bộ q trình của KDD bao gồm các
bước lựa chọn, xử lý, chuyển đổi, tìm kiếm thơng tin và diễn giải hay kết luận. Các
nhà nghiên cứu tập trung vào tiến trình tìm kiếm thơng tin, vì nó chính là sự áp
dụng các thuật tốn để tìm ra các mơ hình từ các dữ liệu, và đây là không phải là

một công việc đơn giản.

Hình 1.1: Tiến trình KDD
5


Để tìm hiểu kỹ càng hơn về tiến trình KDD, chúng ta sẽ xem xét chi tiết trong phần
1.1.2
1.1.2 Tiến trình KDD
Chúng ta xem xét tiến trình KDD được minh họa trong hình 1.2 như sau:
• Phát triển sự hiểu biết về lĩnh vực của ứng dụng - Develop understanding of
application domain: tìm ra những tri thức có liên quan, tìm ra mục đích của
người sử dụng v.v…
• Tạo ra các tập dữ liệu đích - Create target data set: lựa chọn một tập dữ liệu,
hoặc tập trung vào tập con của các biến hoặc của các mẫu dữ liệu, từ đó thực
hiện việc khai phá dữ liệu.
• Tiền xử lý dữ liệu - Data cleaning preprocessing: các thao tác căn bản ví dụ
như việc loại bỏ nhiễu hoặc những dữ liệu không liên quan, thu thập các
thông tin cần thiết để mơ hình hóa hoặc miêu tả nhiễu, quyết định chiến lược
xử lý các trường dữ liệu bị thiếu, miêu tả thông tin chuỗi thời gian và các
thay đổi biết được.
• Biến đổi và quy chiếu dữ liệu - Data reduction and projection: tìm ra các đặc
điểm quan trọng để biểu diễn dữ liệu dựa trên mục tiêu của nhiệm vụ. Sử
dụng các phương pháp chuyển đổi để biến đổi một số lượng các biến hoặc
tìm ra các biểu diễn bất biến cho dữ liệu.
• Lựa chọn các nhiệm vụ tìm kiếm dữ liệu - Choose data mining task: quyết
định liệu mục đích của tiến trình KDD là phân lớp- classification, hồi quy regression, phân cụm - clustering etc…


Lựa chọn các phương pháp tìm kiếm dữ liệu - Choose data mining method:

lựa chọn các phương pháp có thể được sử dụng để tìm kiếm các mẫu pattern trong dữ liệu. Điều này bao gồm cả việc quyết định liệu các mơ hình
hay tham số đã chính xác(ví dụ, các mơ hình cho dữ liệu phân loại là khác so
với các mơ hình vector với các số thực) và việc tương thích giữa phương
pháp tìm kiếm dữ liệu với tồn bộ đặc trưng của tiến trình KDD(ví dụ người

6


sử dụng đầu cuối có thể quan tâm tới việc hiểu biết mơ hình nhiều hơn là khả
năng phán đốn của nó).

Data organized by
function (accounting. etc.)
Create/select
target database

The KDD Process

Data warehousing

Select sampling
technique and
sample data

Supply missing
values

Eliminate
noisy data


Normalize
values

Transform
values

Create derived
attributes

Find important
attributes &
value ranges

Select DM
task (s)

Select DM
method (s)

Extract
knowledge

Test
knowledge

Transform to
different
representation

Refine

knowledge

Query & report generation
Aggregation & sequences
Advanced methods

Hình 1.2: Các nhiệm vụ chính trong tiến trình KDD
• Tìm kiếm dữ liệu để lấy ra được các mẫu hoặc mơ hình - Data mining to
extract patterns/models: tìm kiếm các mẫu được quan tâm trong một mẫu
biểu diễn riêng hoặc một tập các biểu diễn khác nhau: luật phân lớp hay cây,
hồi quy, hoặc phân lớp…. Người dùng có thể tác động hiệu quả tới các
phương pháp tìm kiếm dữ liệu bằng việc thực hiện chính xác các bước ở trên.
• Diễn giải và đánh giá các mẫu/mơ hình - Interpretation and evaluation of
pattern/models
• Thống nhất dữ liệu được khai phá - Consolidating discovered knowledge:
phối hợp những tri thức này trong các hệ thống hoặc diễn giải đơn giản tri
thức đó bằng tài liệu. Điều này bao gồm cả việc kiểm tra và phân tích những
xung đột tiềm năng với những tri thức đã có.

7


1.1.3 KDD và các lĩnh vực có liên quan
KDD là một lĩnh vực liên quan tới nhiều ngành khác nhau, cụ thể là thống kê, học
máy, cơ sở dữ liệu, giải thuật, tính tốn hiệu năng cao và tính tốn song song, thu
thập tri thức cho hệ chuyên gia, hiện thực hóa dữ liệu v.v… Hệ thống KDD thường
được xây dựng dựa trên các phương pháp, giải thuật, và kỹ thuật từ những lĩnh vực
khác nhau này. Mục đích duy nhất là kết xuất được tri thức từ dữ liệu trong các cơ
sở dữ liệu lớn.
Lĩnh vực học máy và nhận dạng mẫu chồng lấp với KDD trong việc nghiên cứu lý

thuyết và các giải thuật để lấy ra được các mẫu và các mơ hình từ dữ liệu(các
phương pháp tìm kiếm dữ liệu). KDD tập trung vào việc mở rộng những lý thuyết
và giải thuật này cho các bài tốn tìm kiếm những mẫu đặc biệt(có thể hiểu là
những tri thức hữu ích và đáng quan tâm) trong các tập dữ liệu thực lớn.
KDD cũng có nhiều điểm chung với khoa học thống kê, đặc biệt là việc phân tích
dữ liệu. Hệ thống KDD thường được nhúng các thủ tục thống kê để mơ hình hóa dữ
liệu và xử lý nhiễu trong toàn bộ các ứng dụng nền tri thức khám phá.
Một lĩnh vực khác có liên quan là kho dữ liệu - data warehousing. Kho dữ liệu gần
đây có xu hướng là một hệ thống thơng tin quản lý – Management Information
System phổ biến cho việc thu thập và xử lý dữ liệu giao dịch và có thể thu thập, xử
lý online. Một hướng tiếp cận phổ biến khác trong việc phân tích các kho dữ liệu,
đó là OLAP - online analytical processing. Các tools OLAP tập trung vào việc phân
tích dữ liệu đa chiều, đây là loại dữ liệu cao cấp hơn so với SQL. Chúng ta cùng
cơng nhận việc tìm kiếm tri thức và OLAP là các mặt liên quan tới nhau của một thế
hệ mới các tool xử lý và kết xuất thông tin thông minh.
II. Các phương pháp khai phá dữ liệu
Hai mục tiêu của việc tìm kiếm dữ liệu trong thực tế có xu hướng là có thể dự đốn
được - prediction và có thể miêu tả được - description. Prediction sử dụng các biến
hoặc các trường dữ liệu trong cơ sở dữ liệu để dự đoán các giá trị chưa biết hoặc các
giá trị tương lai của các biến khác muốn theo dõi. Description tập trung vào các
mẫu có thể diễn giải được để miêu tả dữ liệu. Tầm quan trọng của prediction và
8


description cho các ứng dụng tìm kiếm dữ liệu cụ thể khác nhau thì sẽ khác nhau rất
nhiều.
Theo [7], các phương pháp khai phá dữ liệu được phân chia thành các dạng như sau:
Phân lớp – Classification: Phân lớp là việc xem xét một hàm số ánh xạ các đơn vị
dữ liệu(data item) với một trong số các lớp đã được định nghĩa trước. Ví dụ của các
phương pháp phân lớp được sử dụng như một phần của các ứng dụng khai phá tri

thức bao gồm việc phân loại các xu hướng trong thị trường tài chính và việc xác

Debt

Income

Hình 1.3: Biên giới phân lớp
Debt

Income

Hình 1.4: Một ví dụ về biên giới phân lớp thông qua các bộ lọc phân lớp khơng
tuyến tính(ví dụ như mạng nơ-ron)
định tự động các đối tượng theo dõi trong các hệ cơ sở dữ liệu ảnh lớn. Hình 1.3 và
hình 1.4 chỉ ra việc phân lớp dữ liệu tài khoản nợ thành 2 lớp khác nhau. Chú ý
rằng, không cần thiết phải phân chia các lớp một cách hoàn hảo bằng việc sử dụng
các ranh giới tuyến tính. Ngân hàng có thể sử dụng các vùng phân lớp để quyết định
9


một cách tự động liệu những người vay nợ trong tương lai sẽ được cho vay hay
không.
Hồi quy – Regression: Hồi quy là việc xem xét một hàm số ánh xạ các đơn vị dữ
liệu - data item với một biến giá trị thực có thể dự đốn được. Các ứng dụng hồi
quy có rất nhiều, ví dụ như dự đoán số lượng khối sinh học xuất hiện trong rừng
dựa vào các số đo sóng viba cảm biến, hoặc ước lượng khả năng mà một bệnh nhân
có thể chết khi đã có kết quả của một số mẫu kiểm tra, hoặc dự đoán nhu cầu khách
hàng cho một sản phẩm mới v.v… Hình 1.5 chỉ ra kết quả của hồi quy tuyến tính
đơn giản
Debt


Regression Line

Income

Hình 1.5: Hồi quy tuyến tính đơn giản cho một tập dữ liệu nợ.
Phân cụm - Clustering: là một nhiệm vụ chung mà người ta muốn xác định được
một tập hữu hạn các thuộc tính hoặc của các lớp để miêu tả dữ liệu. Các thuộc tính
này có thể là trộn lẫn giữa thuộc tính đặc hữu và thuộc tính tồn thể, hoặc là bao
gồm các đặc trưng phân cấp hoặc bao trùm lẫn nhau. Ví dụ về việc phân cụm trong
quá trình khai phá tri thức đó là việc phát hiện ra các nhóm khách hàng đồng nhất
trong một cơ sở dữ liệu marketing và việc xác định được các thuộc tính con của
quang phổ từ các số đo tia hồng ngoại. Hình 1.6 chỉ ra việc phân cụm các tập dữ
liệu vay nợ thành 3 cluster con: chú ý rằng các cluster chồng lẫn lên nhau cho phép
các dữ liệu thuộc về nhiều hơn một cluster.

10


Cluster 3

Debt
Cluster 1

Cluster 2
Income

Hình 1.6: Phân cụm đơn giản cho một tập dữ liệu nợ thành 3 cluster
Tổng hợp - Summarization: Sự tổng hợp liên quan tới các phương pháp trong q
trình tìm kiếm một miêu tả súc tích cho một tập dữ liệu con. Một ví dụ đơn giản có

thể là lập bảng kê cho các giá trị trung bình và độ lệch chuẩn cho tồn bộ các
trường. Các phương pháp phức tạp liên quan tới việc suy dẫn các luật tổng hợp, các
kỹ thuật mô phỏng hiện thực và việc phát hiện các quan hệ hàm giữa các biến. Các
kỹ thuật tổng hợp thường được ứng dụng cho việc phân tích dữ liệu tương tác và
việc sản sinh các báo cáo tự động.
Mơ hình hóa ràng thuộc – Dependency Modeling: tìm ra một mơ hình có thể miêu tả
được rành buộc giữa các biến. Mơ hình hóa ràng buộc tồn tại ở 2 mức: mức cấu trúc
của mô hình(thường ở dạng đồ họa) chỉ ra các biến nào phụ thuộc cục bộ lẫn nhau,
trong khi đó mức định lượng của mơ hình chỉ ra độ dài của các ràng buộc sử dụng
tỷ lệ số. Ví dụ các mạng ràng buộc mang tính xác suất sử dụng tính độc lập có điều
kiện để chỉ ra đặc trưng cấu trúc của mơ hình và sử dụng các xác suất hoặc sự tương
quan để chỉ ra độ dài của các ràng buộc. Các ứng dụng sử dụng mạng ràng buộc
mang tính xác suất ở nhiều lĩnh vực khác nhau ngày càng nhiều, ví dụ như việc phát
triển từ các cơ sở dữ liệu hệ chuyên gia y tế mang tính xác suất, các ứng dụng thu
thập thông tin và việc mô hình hóa bộ gen người.
Phát hiện thay đổi và độ lệch - Change and Deviation Detection: Tập trung vào việc
phát hiện những thay đổi lớn trong dữ liệu so với những giá trị đã được xác định từ
trước.

11


Biểu diễn mơ hình - Model Representation: là ngơn ngữ L miêu tả các mẫu - pattern
có thể phát hiện ra được. Nếu việc biểu diễn bị giới hạn thì khơng có một mẫu thử
nào sẽ tạo ra được một mơ hình chuẩn cho dữ liệu.
Đánh giá mơ hình - Model Evaluation: ước lượng một mẫu cụ thể(một mơ hình và
các tham số của nó) đáp ứng tốt thể nào các đặc điểm của tiến trình KDD. Việc
đánh giá độ chính xác dự đốn được là dựa trên tính hiệu lực chéo - cross
validation. Việc đánh giá chất lượng miêu tả dựa trên độ chính xác dự đốn, tình
mới lạ, tính hữu ích và tính dễ hiểu của mơ hình. Cả thuộc tính logic và thuộc tính

thống kê đều có thể được sử dụng để đánh giá mơ hình.
Tìm kiếm phương pháp – Search Method: bao gồm 2 thành phần: tìm kiếm tham số
và tìm kiếm mơ hình. Trong tìm kiếm tham số, giải thuật phải tìm ra được các tham
số tối ưu hóa các tiêu chuẩn đánh giá mơ hình dựa trên dữ liệu đã quan sát và biểu
diễn mơ hình cố định. Tìm kiếm mơ hình hoạt động như một bước lặp thơng qua
các phương pháp tìm kiếm tham số: biểu diễn mơ hình được thay đổi sao cho một
họ các mơ hình được xem xét. Với mỗi biểu diễn mơ hình xác định, phương pháp
tìm kiếm tham số được khởi tạo để đánh giá chất lượng mỗi mơ hình cụ thể đó. Việc
thực thi các phương pháp tìm kiếm mơ hình có xu hướng sử dụng các kỹ thuật tìm
kiếm heuristic vì kích cỡ khơng gian nhớ thường khơng đủ để đáp ứng các phương
pháp tìm kiếm vét cạn.
Trên đây chúng ta đã trình bày các hướng tìm kiếm dữ liệu trong KDD. Trong luận
văn này, chúng ta sẽ chỉ quan tâm tới việc tìm kiếm các luật liên kết, một nhánh nhỏ
trong tìm kiếm dữ liệu trong KDD.

III. Tổng quan về tìm kiếm luật liên kết.
Mục đích chính của việc tìm luật liên kết là tìm được quan hệ sau đây:
A1 ∧ A2 ∧…∧ Am ⇒ B1 ∧ B2 ∧ … ∧ Bn
Trong đó Ai, Bj là các tập thuộc tính-giá trị trong cơ sở dữ liệu và Ai ≠Bj ∀i, j. Nó
chỉ ra liên kết nào đó giữa A1, …, Am và B1, …, Bn.

12


Những nghiên cứu trước đây về vấn đề tìm kiếm luật kết chỉ xử lý các mục tương tự
nhau. Luật liên kết được gọi là luật liên kết không trọng số nếu các mục được xem
xét tương tự nhau. Luật liên kết được gọi là luật liên kết có trọng số nếu các mục
được xem xét khác nhau.
Ví dụ 1:
Luật sau đây được gọi là luật liên kết nhị phân khơng trọng số

(Bánh_mỳ = Có) ⇒ (Giăm_Bơng = Có)
với độ ủng hộ = 60% & độ tin cậy = 80%
Luật trên có thể điễn giải rằng khả năng mua bánh mỳ và giăm bông trong một tập
các giao dịch là 0.6 và độ tin cậy cho ta biết khả năng mua giăm bơng là 0.8 khi có
người mua bánh mỳ.
Luật đề cập ở trên là trường hợp không trọng số. Tuy nhiên, trong các trường hợp
sau, người ta sẽ xem xét nhiều hơn đến tầm quan trọng của mục hoặc của các thuộc
tính.
Trong một nghiên cứu về khoa học xã hội, các nhà nghiên cứu về con người muốn
tìm luật liên kết trong một cơ sở dữ liệu. Ví dụ, theo nhận thức của con người, luật
(Thu_nhập = Cao) ⇒ (Trình_độ_học_vấn = Cao)
thì thú vị hơn luật
(Thu_nhập = Thấp) ⇒ (Độ_tuổi_lao_động = Thấp)
Bằng cách sử dụng các trọng số, tầm quan trọng của các thuộc tính hoặc các mục có
thể được phản ánh, chúng ta có thể tìm ra quy luật tương ứng với sự thú vị. Ví dụ,
chúng ta thêm trọng số cho các giao dịch mua bán, khi mà các mặt hàng đang chững
lại hoặc đạt lợi nhuận cao hơn.
Việc tìm kiếm các luật liên kết khơng trọng số dựa chủ yếu vào số lượng trong
trường hợp nhị phân, hoặc giá trị trung bình của các độ thuộc mờ trong các luật cho
trường hợp mờ. Luật liên kết sẽ giống nhau nếu ngưỡng không thay đổi với cùng cơ

13


sở dữ liệu, vì vậy nó sẽ khơng tạo ra một cách tiếp cận dễ dàng cho những người sử
dụng để điều chỉnh độ thú vị của luật.
Cuối cùng, đó là một số luật nhỏ hơn ngưỡng cho phép hoặc không thú vị. Các luật
liên kết truyền thống không giải quyết được gì về khía cạnh này. Do vậy, chúng ta
sẽ giới thiệu khái niệm trọng số trong việc tìm kiếm các luật liên kết trong luận văn
này.

Việc tìm luật liên kết trong trường hợp không trọng số đã được thực hiện trong
nhiều năm. Tuy nhiên, do những lý do trên, chúng ta cần phải định nghĩa các luật
liên kết cho các mục có trọng số.
Để bắt đầu, trước tiên chúng ta định nghĩa luật liên kết. Tương tự như [1], [2],
chúng ta xem xét một cơ sở dữ liệu với tập giao dịch D, một tập thuộc tính hay các
mục T, và mỗi giao dịch được gắn vớI một nhận dạng <TID>.
Định nghĩa 1. Một luật liên kết (không có trọng số) có dạng X ⇒ Y, trong đó X ⊂
T, Y ⊂ T và X ∩ Y = ∅, X được gọi là tiền đề của luật và Y được gọi là kết quả
của luật.
Định nghĩa 2. Độ ủng hộ của luật liên kết nhị phân khơng có trọng số X ⇒ Y là khả
năng mà X U Y có mặt trong tập các giao dịch trong cơ sở dữ liệu D, được chỉ ra
bởi support(X, Y)
Định nghĩa 3. Độ tin cậy của luật liên kết nhị phân(không có trọng số) X ⇒ Y là
khả năng mà một giao dịch chứa Y khi đã chứa X, ví dụ conf(X ⇒ Y)
Trong luận văn này, vấn đề chính là tìm ra luật liên kết với các mục có trọng số, dựa
trên các loại luật liên kết khác nhau, đó là luật liên kết nhị phân và luật liên kết định
lượng. Cần phải có các thuật tốn mới để giải quyết vấn đề này bởi vì các thuật tốn
hiện có chưa giải quyết được.

IV. Các đặc điểm cơ bản về luật liên kết
Việc tìm kiếm trong cơ sở dữ liệu được phát triển như một bài toán trợ giúp quyết
định trong các tổ chức lớn và được miêu tả như một lĩnh vực nghiên cứu rất quan
14


trọng. Một trong những thách thức khi tìm kiếm trong cơ sở dữ liệu là vấn đề phát
triển các giải thuật nhanh và hiệu quả, những giải thuật này có thể xử lý được một
khối lượng dữ liệu lớn bởi vì hầu như tồn bộ các giải thuật tìm kiếm đều được thực
hiện trên toàn bộ cơ sở dữ liệu và thơng thường là các cơ sở dữ liệu có kích cỡ rất
lớn. Giả sử xét một siêu thị với một tập hợp lớn các mục. Các quyết định bán hàng

thông thường trong việc quản lý một siêu thị thường là sẽ bán cái gì, thiết kế các
phiếu mua hàng thế nào, đặt hàng hóa trên giá thế nào v.v… để thu được lợi nhuận
cao nhất. Hướng tiếp cận thường được sử dụng nhiều nhất là việc phân tích các dữ
liệu giao dịch trong quá khứ. Tuy nhiên, cho tới gần đây, chỉ có những dữ liệu tổng
thể về các giá trị bán hàng tích lũy mới được lưu trữ trong máy tính. Tiến trình
trong kỹ thuật mã vạch - bar-code technology hiện nay đã có thể xử lý được các vấn
đề lưu trữ các đơn vị hàng hóa - item được mua trong từng giao dịch. Những loại dữ
liệu này không hẳn chỉ chứa các mục được mua vào cùng một thời điểm. Nó cịn có
thể chứa được các mục được mua bởi 1 khách hàng trong một khoảng thời gian.
Nhiều đơn vị đã thu thập được số lượng lớn những dữ liệu loại này. Các tập dữ liệu
thường được xử lý rất chậm trong cơ sở dữ liệu. Một trong những lý do chính là
trong các cơ sở dữ liệu hiện tại thường có rất ít các hàm, các thủ tục hiệu quả để lấy
ra được thông tin mà người dùng quan tâm.
Chương này giới thiệu bài toán tìm kiếm luật liên kết trong các tập dữ liệu lớn giữa
các tập mục - set of items với độ tin cậy đã xác định. Một ví dụ về luật liên kết loại
này là phát biểu “Nếu 90% giao dịch là mua bánh mỳ và bơ thì cũng đồng thời mua
sữa”. Phần tiền đề của luật trên là bánh mỳ và bơ, phần kết quả của luật trên là sữa.
Số 90% là độ tin cậy của luật.
1.4.1 Mơ hình chuẩn
Gọi I =I1, I2, I3… là tập các thuộc tính nhị phân, được gọi là các mục và T là một cơ
sở dữ liệu giao dịch - database of transactions. Mỗi giao dịch t được biểu diễn như
một vectơ nhị phân, với t[k] = 1 nếu t mua mục Ik, ngược lại t[k]=0, như vậy sẽ có
một dịng dữ liệu trong cơ sở dữ liệu cho mỗi giao dịch. Gọi X là tập các mục trong
I. Chúng ta nói rằng t thoả mãn X nếu với mọi mục Ik trong X, t[k]=1.

15


Với một luật liên kết được thể hiện bới X ⇒ Ij, với X là một tập hợp trong I, và Ij là
một mục trong I nhưng không tồn tại trong X. Luật X ⇒ Ij thoả mãn trong tập các

giao dịch T với độ tin cậy 0 ≤ c ≤ 1 nếu ít nhất 100.c% các giao dịch trong T thoả
mãn X đồng thời thoả mãn Ij. Chúng ta sẽ sử dụng ký pháp X ⇒ Ij | c để chỉ ra
rằng luật X ⇒ Ij có độ tin cậy là c.
Thông thường, một tập các mục được gọi là một tập mục, ví dụ như phần tiền đề
hay phần kết quả của một luật. Số lượng các mục trong một tập mục được gọi là độ
dài của một tập mục. Các tập mục có độ dài k thường được gắn một ký hiệu là kitemset.
Cho một tập các giao dịch T, chúng ta sẽ quan tâm tới việc sản sinh các luật thoả
mãn các ràng buộc như sau:
• Ràng buộc cú pháp - Syntactic Constraints: Những ràng buộc này liên quan
tới việc giới hạn các mục có thể xuất hiện trong 1 luật. Ví dụ, chúng ta chỉ
quan tâm tới các luật chứa mục Ix trong phần kết quả hoặc các luật chứa Iy
trong phần tiền đề. Kết hợp các ràng buộc trên, thì chúng ta có thể tìm kiếm
các luật chứa một mục X nào đó đã được định nghĩa xuất hiện trong phần kết
quả và một mục Y nào đó xuất hiện trong phần tiền đề.
• Ràng buộc hỗ trợ - Support Constraints: Những ràng buộc này liên quan tới
số lượng các giao dịch trong T support một luật. Độ support cho một luật
được định nghĩa là phân số của các giao dịch trong T thoả mãn hợp các mục
trong phần tiền đề và phần kết quả của luật đó.
Độ support sẽ khơng bị nhầm lẫn với độ tin cậy. Trong khi độ tin cậy là thước đo độ
dài của một luật thì độ support sẽ tương ứng với một ý nghĩa mang tính thống kê.
Bên cạnh ý nghĩa thống kê, một ý nghĩa khác của độ support xuất phát từ một thực
tế là chúng ta thường quan tâm tới các luật với độ support lớn hơn một ngưỡng nào
đó. Nếu độ support khơng đủ lớn, thì luật đó khơng đáng để xem xét hoặc đơn giản
luật đó khơng được ưu tiên.
Theo như các định nghĩa trên, bài tốn tìm kiếm các luật được phân thành 2 bài toán
con như sau:

16



• Tạo ra toàn bộ các kết hợp của các mục có độ support lớn hơn một ngưỡng
nào đó, được gọi là minsupport. Gọi những cách kết hợp đó là các tập mục
lớn - large tập mục và ngược lại là các tập các tập mục nhỏ - small tập mục.
• Cho một tập mục lớn Y = I1I2…Ik, k≥2, tạo ra toàn bộ các luật(nhiều nhất là
k luật) sử dụng các mục từ tập I1, I2, …, Ik. Tiền đề của mỗi luật sẽ là tập con
X của Y sao cho X có k-1 mục, và kết quả sẽ là các mục Y – X. Để tạo ra
luật X ⇒ Ij | c, với X = I1I2…Ij-1Ij+1 … Ik, lấy độ support của X chia cho độ
support của Y. Nếu tỉ lệ mà lớn hơn c thì luật đó là thoả mãn độ tin cậy c,
cịn ngược lại thì khơng.
Lưu ý rằng nếu tập mục Y là lớn thì mỗi tập con của Y cũng là lớn. Tương tự, toàn
bộ các luật suy dẫn từ Y đều thoả mãn ràng buộc hỗ trợ bởi vì Y thoả mãn ràng
buộc hỗ trợ và Y là tập hợp các mục trong kết quả và tiền đề của mỗi luật.
Ví dụ 1:
Hình 2.1 minh hoạ 5 mục khác nhau được biểu diễn từ 1 đến 5 và 4 giao dịch trong
một cơ sở dữ liệu. Nếu ngưỡng support được đặt là 0.5, thì các tập mục lớn là {1},
{2}, {3}, {4}, {1,2}, {1,3}, {1,4}, {2,3}, {2,4}, {3,4}, {1,2,3}, {1,2,4}, {1,3,4},
{2,3,4}, và {1,2,3,4}, bởi vì chúng xuất hiện ít nhất trong một nửa cơ sở dữ
liệu(một nửa các giao dịch). Ví dụ, tập mục {1,2} là lớn vì 3 trong 4 giao dịch(giao
dịch 1,3,4) đều chứa mục 1 và mục 2, như vậy độ support của tập mục {1,2} này là
0.75. Ngoài ra, tập mục {2,5} là nhỏ vì chỉ 1 trong 4 giao dịch chứa 2 mục {2}, {5},
như vậy độ support của tập mục {2,5} này là 0.25.

17


Hình 2.1: Một ví dụ về cơ sở dữ liệu
1.4.2. Chu trình tìm kiếm một tập các tập mục lớn.
Theo [13], chu trình tìm kiếm một tập các tập mục lớn thơng thường theo mơ hình
chuẩn như sau. Tập hợp của toàn bộ các tập mục sẽ được xử lý chia nhỏ thành 3 tập:
• Lớn: Đây là tập hợp tồn bộ các tập mục đã được tìm ra là lớn.

• Nhỏ: Đây là tập hợp tồn bộ các tập mục đã được tìm ra là nhỏ.
• Chưa phân lớp: Đây là tồn bộ các tập mục cịn lại.
Bước khởi tạo, tập lớn và tập nhỏ là tập rỗng. Thông qua một số thao tác, tập lớn và
tập nhỏ sẽ tăng lên một cách đều đặn khi xử lý tập chưa phân lớp. Việc xử lý sẽ kết
thúc khi tập chưa phân lớp là tập rỗng, đó chính là khi toàn bộ các tập mục hoặc là
thuộc tập lớn hoặc là thuộc tập nhỏ. Nói cách khác, việc tính tốn kết thúc khi tồn
bộ các tập mục lớn được tìm ra.
Giả thiết rằng bất kỳ một tiến trình phân lớp tập mục nào thì đều đã có một vài tập
mục đã được phân lớp thành lớp lớn, một số thành lớp nhỏ, và một số chưa được
phân lớp.
1.4.3. Hai đặc tính phân lớp.
Theo [6], hai đặc tính sau được sử dụng để phân lớp các tập mục trong lớp chưa
được phân lớp.
• Đặc tính 1: Nếu một tập mục là nhỏ, thì tất cả các tập cha của nó đều là nhỏ,
và chúng sẽ khơng cần được kiểm tra nữa

Hình 2.2: Hai đặc tính
18


Đặc tính 2: Nếu một tập mục là lớn, thì tồn bộ các tập con của nó đều là lớn, và
chúng sẽ khơng cần được kiểm tra nữa.
Ví dụ 2:
Xem xét cơ sở dữ liệu trong hình 2.1 và xem xét hình 2.2, tập mục {5} là nhỏ và
như vậy, tập mục {2,5} là nhỏ, như vậy độ support của {2,5} là nhỏ hơn hoặc bằng
độ support của {5}. Nói cách khác, sẽ có ít hơn hoặc bằng số giao dịch chứa cả 2
mục 2 và mục 5 so với số giao dịch chứa mục 5. Ngược lại, nếu tập mục {1,2,3,4}
là lớn, thì tập mục {1,2,3} phải là lớn, tương tự như vậy, sẽ có nhiều hơn hoặc bằng
số giao dịch chứa mục 1, mục 2, mục 3, so với số giao dịch chứa mục 1, mục 2, mục
3, mục 4.

Nói chung có thể tìm kiếm các tập mục lớn nhất theo cả 2 hướng từ trên xuống và
từ dưới lên. Nếu các tập mục độ dài lớn nhất là nhỏ, phương pháp tìm kiếm hiệu
quả là từ dưới lên. Ngược lại, nếu các tập mục độ dài lớn nhất là lớn, phương pháp
tìm kiếm hiệu quả là từ trên xuống.
1.4.4. Hai hướng tiếp cận: Từ dưới lên và Từ trên xuống
Theo [13], chúng ta có 2 hướng tiếp cận như sau:
Hướng tiếp cận từ dưới lên: bao gồm nhiều bước lặp, mỗi bước lặp gồm 2 bước chi
tiết, và trong cuối bước lặp thứ k, tất cả các tập mục lớn có độ dài k hoặc nhỏ hơn sẽ
được tìm thấy.
Trong bước chi tiết đầu tiên của bước lặp k+1, tập mục có độ dài k+1 được tạo ra.
Một trong những tập mục này được bỏ qua, vì chúng không cần thiết phải được xử
lý trong các bước lặp tiếp theo. Cụ thể, những tập mục nào là tập cha của các tập
mục nhỏ thì được bỏ qua(Đặc tính thứ 1). Các tập mục cịn lại tạo thành tập ứng cử
viên tại mỗi bước lặp.
Trong bước chi tiết thứ 2, độ ủng hộ của những tập mục này được tính tốn và
chúng được sắp xếp vào lớp lớn hoặc lớp nhỏ. Độ ủng hộ của 1 ứng cử viên được
tính tốn thơng qua việc đọc cơ sở dữ liệu.
Ví dụ 3:
Trong hình 2.3 minh họa cho một ví dụ về tìm kiếm từ dưới lên với cơ sở dữ liệu
trong hình 2.1. Cả 5 tập mục độ dài 1(1-itemsets) {{1}, {2}, {3}, {4}, {5}} đều là
19


ứng cử viên cho bước lặp đầu tiên. Sau khi qua bước tính tốn độ support, ta xác
định được 1-itemset {5} là nhỏ. Do đặc tính 1, tồn bộ các tập cha chứa tập mục
{5} sẽ không cần phải xem xét tới. Do vậy, tập ứng cử cho bước lặp thứ 2 là {1,2},
{1,3}, {2,3}, {1,4}, {2,4}, {3,4}. Thủ tục tương tự sẽ được lặp cho tới khi tìm ra
tồn bộ các tập mục lớn nhất, và trong ví dụ này đó là {1,2,3,4}.

Hình 2.3: Tìm kiếm từ dưới lên và tìm kiếm từ trên xuống

Trong hướng tiếp cận từ dưới lên, mọi tập mục lớn đều phải là ứng cử viên trong
bước lặp nào đó và nó được xem xét một cách tường minh. Như chúng ta đã thấy
trong ví dụ, tồn bộ các tập mục lớn(tập con của {1,2,3,4}) đều phải được xem xét
trước khi tìm được các tập mục lớn nhất. Do vậy, hướng tiếp cận này chỉ hiệu quả
khi số lượng toàn bộ các tập mục lớn là nhỏ.
Khi số lượng tập mục lớn tương đối lớn, phương pháp này sẽ khơng cịn hiệu quả
nữa. Trong trường hợp này, sử dụng hướng tiếp cận từ trên xuống sẽ có hiệu quả
cao hơn.
Hướng tiếp cận từ trên xuống: bắt đầu với một tập mục đơn độ dài n, và giảm độ
dài của các ứng cử viên xuống 1 tại mỗi bước lặp. Khi một tập mục độ dài k được
xác định là nhỏ, toàn bộ tập mục con độ dài k-1 sẽ được xem xét trong bước lặp tiếp
theo. Mặt khác, nếu một tập mục độ dài k được xác định là lớn, thì tồn bộ tập con
của nó là lớn và chúng sẽ khơng cần xem xét tới nữa(Đặc tính 2).
Ví dụ 4:

20


Trong hình 2.3 minh hoạ cho hướng tiếp cận từ trên xuống, với cùng một cơ sở dữ
liệu được miêu tả trong hình 2.1. Tập mục độ dài 5 {1,2,3,4,5} là ứng cử viên duy
nhất trong bước lặp đầu tiên. Sau q trình tính tốn độ support, nó là nhỏ. Ứng cử
viên cho bước 2 là 4 tập con của tập mục {1,2,3,4,5}. Trong ví dụ này, tập mục
{1,2,3,4} là lớn và các tập mục còn lại là nhỏ. Với đặc tính 2, tồn bộ các tập con
của {1,2,3,4} là lớn và chúng không cần phải được xem xét tới nữa. Thủ tục này
được tiếp tục cho tới khi có được toàn bộ các tập mục độ dài lớn nhất(tức là khi
toàn bộ các tập mục nhỏ được xem xét).
Trong hướng tiếp cận từ trên xuống, mỗi một tập mục nhỏ đều được xem xét một
cách tường minh. Như chúng ta có thể thấy trong ví dụ, tất cả các tập mục nhỏ đều
phải được xem xét trước khi có được tập mục độ dài lớn nhất.
Lưu ý rằng, trong hướng tiếp cận từ dưới lên, chỉ đặc tính 1 ở trên mới được sử

dụng để lược bỏ các ứng cử viên. Đây là kỹ thuật mà rất nhiều giải thuật sử dụng để
làm giảm số lượng các ứng cử viên. Tương tự như vậy, trong hướng tiếp cận từ trên
xuống, chỉ đặc tính 2 ở trên mới được sử dụng để lược bỏ các ứng cử viên.

V. Một số giải thuật căn bản
Bài tốn tìm kiếm luật liên kết được giới thiệu lần đầu tiên trong [1] và giải thuật
AIS được đề xuất để tìm kiếm tồn bộ các luật liên kết. Trong [4], giải thuật mang
tên SETM sử dụng các hàm quan hệ cũng được đề xuất để giải quyết vấn đề này.
Trong [2], 2 giải thuật mang tên Apriori và AprioriTID cũng được đề xuất. Những
giải thuật này có được những cải tiến quan trọng so với các giải thuật trước nó. Tiến
trình sản sinh ra luật cũng được mở rộng hơn, bao gồm nhiều mục trong phần kết
quả và giải thuật hiệu quả để sản sinh ra các luật.
Các giải thuật chủ yếu xoay quanh:
• cách các tập mục ứng cử viên được sinh ra
• cách tính tốn độ support của các tập mục ứng cử viên
Trong [1], các tập mục ứng cử viên được sinh ra trong mỗi bước lặp trong cơ sở dữ
liệu. Với mỗi giao dịch, các tập mục ứng cử viên được sinh ra khi mở rộng các tập
mục lớn từ bước trước với các mục trong giao dịch sao cho giao dịch đó chứa các
tập mục mới. Trong [2], các tập mục ứng cử viên được sinh ra trong một bước riêng
21


sử dụng chỉ những tập mục lớn từ bước trước. Điều này thực hiện bằng cách ghép
nối tập các tập mục với chính nó. Tập ứng cử viên kết quả được lược bỏ để giới hạn
bất cứ tập mục nào có tập con khơng được chứa trong các tập mục lớn trước đó. Kỹ
thuật này tạo ra các tập ứng cử viên có số lượng nhỏ hơn kỹ thuật thơng thường
khác.
Độ support cho các tập mục ứng cử viên được xác định như sau. Tập toàn bộ các
tập mục ứng cử viên được xác định ứng với mỗi giao dịch. Số lượng của các tập
mục này được tăng mỗi lần lên một. Trong [1], tác giả không miêu tả cấu trúc dữ

liệu sử dụng cho những xử lý tập con này. Apriori và AprioriTID khác nhau dựa
trên cấu trúc dữ liệu được sử dụng cho việc tính tốn độ support các tập mục ứng cử
viên.
Trong Apriori, các tập mục ứng cử viên được so sánh trong các giao dịch để xác
định liệu chúng có chứa trong giao dịch khơng. Cấu trúc cây băm(hashtree) được sử
dụng để hạn chế tập các tập mục ứng cử viên được so sánh để việc kiểm tra các tập
con là tối ưu. Trong AprioriTID, sau mỗi bước, một bộ mã hố tồn bộ các tập mục
lớn chứa trong một giao dịch được sử dụng để thay thế cho giao dịch. Trong bước
tiếp theo, các tập mục ứng cử viên được kiểm tra để gộp vào trong giao dịch bằng
cách xem xét liệu các tập mục lớn sử dụng để sinh ra các tập mục ứng cử viên là có
chứa trong bộ mã hố giao dịch hay không. Trong Apriori, việc kiểm tra các tập con
được thực hiện cho mỗi giao dịch trong mỗi bước lặp. Tuy nhiên, trong AprioriTID,
nếu một giao dịch không chứa bất kỳ một tập mục lớn nào trong bước lặp hiện tại,
thì giao dịch đó khơng được xem xét trong các bước lặp tiếp theo. Do vậy, trong các
bước sau, kích cỡ của các bộ mã hố có thể nhỏ hơn so với kích thước thực sự của
cơ sở dữ liệu. Giải thuật hybrid cũng được đề xuất, giải thuật này sử dụng Apriori
cho các bước khởi tạo và chuyển sang AprioriTID cho các bước tiếp theo.
1.5.1 Giải thuật Apriori và AprioriTID
* Ý tưởng tiếp cận:
Giải thuật Apriori và AprioriTid tạo ra các tập mục ứng cử viên trong một bước lặp
bằng cách sử dụng các tập mục lớn ở trong bước trước mà không cần xem xét đến
các giao dịch trong cơ sở dữ liệu. Vì bất cứ tập con của tập các tập mục lớn nào đều
22


là lớn, do vậy, các tập mục ứng cử viên có k mục có thể được sinh ra bằng cách liên
kết các tập mục lớn có k-1 mục và xố đi bất cứ tập con nào không là lớn. Thủ tục
này sẽ tạo ra một số lượng ít hơn các tập mục ứng cử viên.
Giải thuật AprioriTid có thêm một đặc tính mở rộng đó là cơ sở dữ liệu khơng dùng
tồn bộ cho việc tính tốn độ support của các tập mục ứng cử viên sau bước lặp đầu

tiên. Ngồi ra, việc mã hố các tập mục ứng cử viên được sử dụng trong bước trước
được tận dụng cho mục đích này. Trong các bước lặp sau, kích thước của việc mã
hố này có thể nhỏ hơn rất nhiều so với cơ sở dữ liệu, do vậy sẽ tiết kiệm được
nhiều chi phí. Điều này sẽ được nói chi tiết hơn trong phần sau.
Ký pháp: Chúng ta giả sử rằng các mục trong mỗi giao dịch đều đã được sắp xếp
thứ tự, và mỗi bản ghi trong cơ sở dữ liệu là cặp đơi (Tid, item), vói TID là biến
định danh cho các giao dịch tương ứng. Chúng tôi sử dụng ký pháp c[1] . c[2] .

...

.

c[k] để biểu diễn một k-itemset c chứa các mục c[1], c[2], …, c[k], với
c[1]Trong bảng 2.1 miêu tả các ký pháp sử dụng trong giải thuật.
k-itemset

Một tập mục chứa k mục

Lk

Tập hợp k-itemset lớn
Mỗi thành phần của tập này có 2 trường: tập mục và độ
support

Ck

Tập hợp k-itemset ứng cử viên(Có khả năng là các tập mục
lớn)
Mỗi thành phần của tập này có 2 trường: tập mục và độ

support.

Ck

Tập hợp k-itemset ứng cử viên khi TID của các giao dịch được
giữ tương ứng với các ứng cử viên.
Bảng 2.1: Ký pháp

1.5.1.1 Giải thuật Apriori
* Ý tưởng tiếp cận:
Giải thuật này sử dụng đặc tính bất cứ tập con nào của một tập mục lớn cũng phải là một
tập mục lớn. Do vậy, giả thiết rằng các mục trong một tập mục được sắp xếp thứ tự. Giải
thuật Apriori sẽ sản sinh ra các itemset ứng cử viên bằng cách kết hợp các itemset lớn của
23


bước trước và xoá những tập con nào là nhỏ của bước trước mà không cần quan tâm tới
các giao dịch trong cơ sở dữ liệu. Bằng việc chỉ xem xét những tập mục lớn ở bước trước,
số lượng các itemset ứng cử viên được giảm đi đáng kể.

* Giải thuật:
Hình 2.1 đưa ra giải thuật Apriori. Bước đầu tiên của giải thuật là tính tốn ra các 1itemset lớn. Các bước tiếp theo, gọi là bước lặp k bao gồm 2 pha. Pha 1, các tập
mục lớn Lk-1 trong bước thứ k-1 được dùng để sinh ra các tập mục ứng cử viên Ck,
sử dụng hàm apriori-gen được miêu tả trong phần sau. Pha 2, quét cơ sở dữ liệu và
tính tốn độ support của các ứng cử viên trong Ck.
1) L1 = {large 1-itemset};
2) for ( k=2; Lk-1!=0; k++ ) do begin
3)

Ck = apriori-gen(Lk-1); //Tập các ứng cử viên mới


4)

forall giao dịch t ∈ D do begin

5)

Ct = subset(Ck,t); // Các ứng cử viên được lưu trong t

6)

forall ứng cử viên c ∈ Ct do

7)
8)
9)

c.count++;
end
Lk={c ∈ Ck | c.count ≥ minsup};

10) end
11) Answer =



k

Lk ;


Hình 2.1: Giải thuật Apriori
a. Hàm apriori-gen: Hàm apriori_gen lấy Lk-1 - tập hợp tồn bộ các (k-1)-itemset
lớn làm đầu vào. Nó trả về kết quả là tập cha của toàn bộ các k-itemset lớn.
Giải thuật Apriori-gen
Đầu vào: Lk, tập chứa các tập mục lớn được tìm ra trong bước k
Đầu ra: Tập ứng cử viên mới Ck+1
1) Gọi thủ tục join để tạo ra tập ứng cử viên ban đầu
2) Gọi thủ tục prune để tạo ra tập ứng cử viên kết quả.
Hình 2.2: Hàm apriori-gen
24


×