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

Khai phá luật kết hợp có trọng số trong cơ sở dữ liệu lớn

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 (991.08 KB, 91 trang )


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

ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN
THÔNG







PHẠM ĐỨC QUANG





KHAI PHÁ LUẬT KẾT HỢP CÓ TRỌNG SỐ
TRONG CƠ SỞ DỮ LIỆU LỚN








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










THÁI NGUYÊN 2012

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


ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG







PHẠM ĐỨC QUANG





KHAI PHÁ LUẬT KẾT HỢP CÓ TRỌNG SỐ
TRONG CƠ SỞ DỮ LIỆU LỚN



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



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






Hƣớng dẫn khoa học: PGS.TS. NGUYỄN THANH TÙNG


THÁI NGUYÊN 2012


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


LỜI CÁM ƠN
Trước hết em xin gửi lời cám ơn chân thành đến toàn thể các thầy cô
giáo Viện Công nghệ thông tin - Viện Khoa học và Công nghệ Việt Nam và
Trường Đại học Công nghệ thông tin và Truyền thông - Đại học Thái nguyên
đã dạy dỗ chúng em trong suốt quá trình học tập chương trình cao học tại
trường.
Đặc biệt em xin bày tỏ lòng biết ơn sâu sắc tới PGS.TS. Nguyễn Thanh

Tùng đã quan tâm, định hướng, đưa ra những gợi ý, góp ý và chỉnh sửa vô
cùng quí báu cho em trong quá trình thực hiện luận văn này.
Cuối cùng, tôi xin chân thành cám ơn các bạn bè đồng nghiệp, gia đình
và người thân đã quan tâm, giúp đỡ và chia sẻ với tôi trong suốt quá trình làm
luận văn tốt nghiệp.
Thái Nguyên, ngày 10 tháng 9 năm 2012
Học viên
Phạm Đức Quang

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


LỜI CAM ĐOAN
Tôi xin cam đoan:
Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng
dẫn của PGS.TS. Nguyễn Thanh Tùng.
Mọi tham khảo sử dụng trong luận văn đều được trích dẫn rõ ràng tác
giả, tên công trình, thời gian, địa điểm công bố.
Tôi xin chịu trách nhiệm với lời cam đoan này.
Thái Nguyên, ngày 10 tháng 9 năm 2012
Học viên


Phạm Đức Quang

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

MỤC LỤC
Trang
Trang bìa phụ

Lời cảm ơn
Lời cam đoan
Mục lục i
Danh mục các từ, các ký hiệu viết tắt iv
Danh mục các bảng v
LỜI MỞ ĐẦU 1
Chƣơng 1. KHÁI QUÁT VỀ KHAI PHÁ DỮ LIỆU VÀ BÀI TOÁN KHAI
PHÁ TẬP MỤC THƢỜNG XUYÊN 3
1.1. Khai phá dữ liệu 3
1.2. Khai phá luật kết hợp 8
1.2.1. Cơ sở dữ liệu giao tác 8
1.2.2. Phát biểu bài toán khai phá luật kết hợp 10
1.2.3. Thuật toán Apriori khám phá tập mục thường xuyên 12
1.3. Mở rộng bài toán khai phá tập mục thường xuyên 18
1.4. Kết luận chương 19
Chƣơng 2. KHAI PHÁ LUẬT KẾT HỢP CÓ TRỌNG SỐ 20
2.1. Mở đầu 20
2.2. Khai phá luật kết hợp có trọng số không chuẩn hóa 21
2.2.1. Mô hình bài toán 21
2.2.2. Thuật toán MINWAL(O) khai phá tập mục thường xuyên có trọng
số 24
2.2.2.1. Cơ sở toán học 24
2.2.2.2. Thuật toán MINWAL(O) 27
2.3. Khai phá luật kết hợp có trọng số chuẩn hóa 34
2.3.1. Mô hình bài toán 34
2.3.2. Thuật toán MINWAL(W) khai phá tập mục thường xuyên có trọng
số chuẩn hóa 37

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


2.3.2.1. Cơ sở toán học 37
2.3.2.2. Thuật toán MINWAL(W) 37
2.2.3. Lập trình và tính toán thử nghiệm 45
2.4. Kết luận chương 46
Chƣơng 3. KHAI PHÁ LUẬT KẾT HỢP CÓ TRỌNG SỐ BẰNG PHƢƠNG
PHÁP CHỌN MẪU 47
3.1 Tổng thể và mẫu trong thống kê toán học 47
3.2. Thuật toán khai phá luật kết hợp có trọng số dựa vào chọn mẫu 50
3.2.1. Xác định cỡ mẫu 50
3.2.2. Thuật toán 53
3.3. Lập trình và tính toán thử nghiệm 54
3.4. Kết luận chương 55
KẾT LUẬN 57
TÀI LIỆU THAM KHẢO 58
PHỤ LỤC 1: Chƣơng trình nguồn thuật toán MINWAL(O) 61
PHỤ LỤC 2: Chƣơng trình nguồn thuật toán MINWAL(O) 73
PHỤ LỤC 3: Chƣơng trình nguồn thuật toán SRS 81


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


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

Các ký hiệu:
 
, ,
M
I i i
1

: Tập tất cả M mục dữ liệu của cơ sở dữ liệu giao tác.
 
, , ,
N
DT T T T
12
: Cơ sở dữ liệu DT gồm N giao tác
X, Y, : Các tập con của tập tất cả các mục trong cơ sở dữ liệu giao tác.
X = abc thay cho
 
,,X a b c
trong các ví dụ.
()SC X
: Số đếm hỗ trợ tập mục X (hay số giao tác chứa tập mục X).
sup(X) : Độ hỗ trợ của tập mục X.
Wsup(X) : Độ hỗ trợ có trọng số của tập mục X.
NWsup(X) : Độ hỗ trợ có trọng số chuẩn hóa của tập mục X.
minsup : Ngưỡng độ hỗ trợ tối thiểu.
wminsup : Ngưỡng độ hỗ trợ có trọng số tối thiểu.
nwminsup : Ngưỡng độ hỗ trợ có trọng số chuẩn hóa tối thiểu.
sup( )XY
: Độ hỗ trợ của luật kết hợp
XY
.
()conf X Y
: Độ tin cậy của luật kết hợp
XY
.
A
: Lực lượng (bản số) của tập hợp A.

r


: Cận trên nguyên nhỏ nhất của số thực r.
Pr(E) : Xác suất xủa biến cố ngẫu nhiên E.
(0,1) : Phân phối chuẩn chuẩn tắc.
z

12
: Phân vị mức

12
của phân phối chuẩn chuẩn tắc.
Viết tắt:
CNTT: Công nghệ Thông tin.
CSDL: Cơ sở dữ liệu.

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

DANH MỤC CÁC BẢNG BIỂU
Trang
Bảng 1.1. Biểu diễn ngang của cơ sở dữ liệu giao tác 9
Bảng 1.2. Biểu diễn dọc của cơ sở dữ liệu giao tác 9
Bảng 1.3. Ma trận giao tác của cơ sở dữ liệu bảng 1.1 9
Bảng 1.4. Cơ sở dữ liệu giao tác minh hoạ thực hiện thuật toán Apriori 16
Bảng 2.1. Cơ sở dữ liệu giao tác ví dụ 26
Bảng 2.2. Trọng số của các mục trong CSDL giao tác 2.1 26

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


LỜI MỞ ĐẦU
Khai phá luật kết hợp là một kỹ thuật quan trọng, có nhiều ứng dụng của
khai phá dữ liệu. Mô hình đầu tiên (mô hình nhị phân) của bài toán khai phá
luật kết hợp được đề xuất bởi Agrawal và cộng sự vào năm 1993, trong công
trình nghiên cứu phát hiện các mối quan hệ (luật kết hợp) giữa các mặt hàng
(mục dữ liệu - items) trong cơ sở dữ liệu giao tác của các siêu thị [4, 5]. Sau
công trình kinh điển này, vấn đề khai phá luật kết hợp trong cơ sở dữ liệu
(CSDL) giao tác được rất nhiều nhà nghiên cứu lý thuyết và ứng dụng quan
tâm. Nhiều thuật toán mới, hiệu quả khai phá luật kết hợp, cũng như mô hình
mở rộng bài toán đã được các nhà nghiên cứu đề xuất [8, 9].
Mô hình nhị phân của bài toán khai phá luật kết hợp có một số hạn chế,
không đáp ứng được những đòi hỏi khác nhau của người sử dụng. Một trong
những hạn chế là trong mô hình này tất cả các mục dữ liệu được xử lý như
nhau (xuất hiện hay không xuất hiện trong một giao tác), nhưng trên thực tế
chúng có tầm quan trọng khác nhau. Nhằm khắc phục hạn chế này người ta đã
đề xuất mô hình bài toán khai phá luật kết hợp có trọng số, trong đó các mục
dữ liệu được gán cho các trọng số khác nhau tùy theo mức độ quan trọng của
chúng trong việc mang lại lợi nhuận kinh doanh [3, 7, 8, 18].
Những năm gần đây, khai phá luật kết hợp có trọng số đã trở thành một
đề tài hấp dẫn, một nội dung quan trọng của khai phá dữ liệu, thu hút sự quan
tâm của nhiều nhà nghiên cứu và ứng dụng.
Đề tài luận văn của học viên nhằm nghiên cứu bài toán, các thuật toán và
tìm hiểu khả năng ứng dụng kỹ thuật khai phá luật kết hợp có trọng số từ các
CSDL lớn.
Nội dung chính của luận văn gồm 3 chương:

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

Chương 1 trình bày khái quát về khai phá dữ liệu, tóm tắt quá trình khai
phá, các kỹ thuật, các ứng dụng và những thách thức; bài toán khai phá luật

kết hợp nhị phân và thuật toán cơ bản Apriori.
Chương 2 trình bày hai mô hình mở rộng bài toán khai phá luật kết hợp
nhị phân: Khai phá luật kết hợp có trọng số và khai phá luật kết hợp có trọng
số chuẩn hóa, cùng với các giải thuật tương ứng.
01) Chương 3 trình bày cách tiếp cận bài toán khai phá luật kết hợp
có trọng số bằng phương pháp lấy mẫu ngẫu nhiên từ CSDL ban đầu.
Thái Nguyên, tháng 09 năm 2012.
Học viên
Phạm Đức Quang



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



CHƢƠNG 1
KHÁI QUÁT VỀ KHAI PHÁ DỮ LIỆU
VÀ BÀI TOÁN KHAI PHÁ TẬP MỤC THƢỜNG XUYÊN
1 1.1. Khai phá dữ liệu
Trong những năm gần đây, cùng với sự phát triển vượt bậc của công
nghệ thông tin và truyền thông, khả năng thu thập, lưu trữ thông tin của các
hệ thống thông tin không ngừng được nâng cao. Theo đó, lượng thông tin
được lưu trữ trên các thiết bị nhớ tăng nhanh mỗi ngày. Thống kê sơ bộ cho
thấy, lượng thông tin trên các hệ thống thông tin cứ sau 20 tháng lại tăng lên
gấp đôi [8, 9].
Với lượng dữ liệu tăng nhanh và khổng lồ như vậy, rõ ràng các phương
pháp phân tích dữ liệu truyền thống sẽ không còn hiệu quả, gây tốn kém và dễ
dẫn đến những kết quả sai lệch. Cần phải có những kỹ thuật mới: kỹ thuật
khai phá dữ liệu (Data Mining).

Khai phá dữ liệu là một lĩnh vực khoa học mới xuất hiện, nhằm tự động
hóa khai thác những thông tin, tri thức hữu ích, tiềm ẩn trong các cơ sở dữ
liệu (CSDL) lớn cho các tổ chức, doanh nghiệp, từ đó thúc đẩy khả năng
sản xuất, kinh doanh, cạnh tranh của tổ chức, doanh nghiệp này. Các kết quả
nghiên cứu cùng với những ứng dụng thành công trong khám phá tri thức cho
thấy khai phá dữ liệu là một lĩnh vực khoa học tiềm năng, mang lại nhiều lợi
ích, đồng thời có những ưu thế hơn hẳn so với các công cụ phân tích dữ liệu
truyền thống.
Tuy mới ra đời khoảng 20 năm, nhưng khai phá dữ liệu là lĩnh vực khoa
học phát triển vô cùng nhanh chóng. Do sự phát triển nhanh chóng cả về
phạm vi áp dụng lẫn các phương pháp tìm kiếm tri thức, đã có nhiều quan

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

điểm khác nhau về khai phá dữ liệu. Tuy nhiên, ở một mức độ trừu tượng
nhất định, chúng ta định nghĩa khai phá dữ liệu như sau [9]:
Khai phá dữ liệu là quá trình tìm kiếm, phát hiện các tri thức mới, hữu
ích tiềm ẩn trong cơ sở dữ liệu lớn.
Khám phá tri thức trong CSDL (Knowledge Discovery in Databases –
KDD) là mục tiêu chính của khai phá dữ liệu, do vậy hai khái niệm khai phá
dữ liệu và KDD được các nhà khoa học xem là tương đương nhau. Thế
nhưng, nếu phân chia một cách chi tiết thì khai phá dữ liệu là một bước chính
trong quá trình KDD.
Khám phá tri thức trong CSDL là lĩnh vực liên quan đến nhiều ngành
như: Lý thuyết CSDL, xác suất, thống kê, lý thuyết thông tin, học máy, thuật
toán, trí tuệ nhân tạo, tính toán song song và hiệu năng cao, Các kỹ thuật
chính áp dụng trong khám phá tri thức phần lớn được thừa kế từ các ngành
này.
Quá trình khám phá tri thức có thể phân thành các công đoạn sau [9]:
 Lựa chọn dữ liệu: Là bước tuyển 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, data
repositories) ban đầu theo một số tiêu chí nhất định.
 Tiền xử lý dữ liệu: Là bước làm sạch dữ liệu (xử lý dữ liệu thiếu, dữ
liệu nhiễu, dữ liệu không nhất quán, ), tổng hợp dữ liệu, rời rạc hóa
dữ liệu, biến đổi dữ liệu. Đây được xem là bước quan trọng và tiêu tốn
thời gian nhất của toàn bộ quá trình KDD. Sau bước tiền xử lý này, dữ
liệu sẽ nhất quán, đầy đủ, được rút gọn và rời rạc hóa.

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

 Khai phá dữ liệu: Là bước áp dụng những kỹ thuật phân tích (phần nhiều
là các kỹ thuật học máy) nhằm khai thác dữ liệu, trích lọc những mẫu tin
(information patterns), những mối quan hệ đặc biệt trong dữ liệu.
 Đánh giá tri thức và biểu diễn: Những mẫu thông tin và mối quan hệ
trong dữ liệu đã được phát hiện ở bước khai phá dữ liệu được đánh giá
theo những tiêu chí nhất định và được biểu diễn ở dạng gần gũi với
người sử dụng như đồ thị, cây, bảng biểu, luật,
Hình vẽ dưới đây mô tả các công đoạn của KDD:


Theo quan điểm của học máy (Machine Learning), thì các kỹ thuật khai
phá dữ liệu bao gồm [9]:
 Học có giám sát (Supervised Learning): Là quá trình học luật phân
lớp các đối tượng dựa trên một tập dữ liệu có giám sát (supervised
data set), tức là tập các ví dụ (các bộ dữ liệu) huấn luyện trong đó
mỗi ví dụ có chứa thông tin đã biết về các thuộc tính và nhãn lớp của
một đối tượng.
 Học không có giám sát (Unsupervised Learning): Là quá trình học
luật phân chia một tập các đối tượng thành các cụm (clusters) tương


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

tự nhau dựa trên một tập dữ liệu không có giám sát (unsupervised
data set), tức là tập các ví dụ huấn luyện chỉ chứa thông tin về các
thuộc tính mà không có thông tin về nhãn lớp của các đối tượng.
 Học nửa giám sát (Semi-Supervised Learning): Là quá trình học luật
phân chia một tập các đối tượng thành các lớp dựa trên một tập nhỏ
các ví dụ huấn luyện chứa thông tin về các thuộc tính và nhãn lớp
của một số đối tượng.
Nếu căn cứ vào nhiệm vụ cần giải quyết, thì khai phá dữ liệu bao gồm
các kỹ thuật sau:
 Phân lớp và dự đoán (classification and prediction): Là việc xếp các
đối tượng vào những lớp đã biết trước. Ví dụ, phân lớp các loài thực
vật, phân lớp các bệnh nhân, Hướng tiếp cận này thường sử dụng
một số kỹ thuật của học máy như cây quyết định (decision tree),
mạng nơ-ron nhân tạo (neural network),
 Phân cụm (clustering/segmentation): Là việc xếp các đối tượng
theo từng cụm tự nhiên.
 Luật kết hợp (association rules): Là việc phát hiện các luật biểu
diễn tri thức dưới dạng đơn giản. Ví dụ: “70% nữ giới vào siêu thị
mua phấn thì có tới 80% trong số họ cũng mua thêm son”.
 Phân tích hồi quy (regression analysis): Là việc học một hàm ánh
xạ một bộ dữ liệu thành một giá trị thực của đại lượng cần dự đoán.
Bài toán phân tích hồi quy tương tự như bài toán phân lớp, điểm
khác nhau là ở chỗ đại lượng cần dự đoán là liên tục chứ không phải
rời rạc như nhãn lớp.

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

 Phân tích các mẫu theo thời gian (sequential/temporal patterns):

Tương tự như khai phá luật kết hợp nhưng có quan tâm đến tính thứ
tự theo thời gian.
 Mô tả khái niệm và tổng hợp (concept description and summari-
zation): Thiên về mô tả, tổng hợp và tóm tắt các khái niệm. Ví dụ
tóm tắt văn bản.
Hiện nay, các kỹ thuật khai phá dữ liệu có thể làm việc với rất nhiều
kiểu dữ liệu khác nhau. Một số dạng dữ liệu điển hình là: CSDL quan hệ,
CSDL giao tác, CSDL quan hệ hướng đối tượng, dữ liệu không gian và thời
gian, CSDL đa phương tiện, dữ liệu văn bản và web,
Cho đến nay, khai phá dữ liệu đã và đang được ứng dụng rộng rãi trong
nhiều lĩnh vực như: Phân tích dữ liệu hỗ trợ ra quyết định, Y học, Tin-sinh
học (Bioinformatics), thương mại, tài chính, bảo hiểm, text mining, Rất
nhiều tổ chức và công ty lớn trên thế giới đã và đang áp dụng thành công các
kỹ thuật khai phá dữ liệu vào hoạt động sản xuất, kinh doanh của mình và thu
được những lợi ích to lớn. Các công ty phần mềm lớn trên thế giới cũng rất
quan tâm tới việc nghiên cứu và phát triển kỹ thuật khai phá dữ liệu: Oracle
đã tích hợp các công cụ khai phá dữ liệu vào bộ Oracle9i, IBM đã đi tiên
phong trong việc phát triển các ứng dụng khai phá dữ liệu. Các ứng dụng này
được chia thành 3 nhóm: Phát hiện gian lận (fraud detection), hỗ trợ tiếp thị
và quản lý khách hàng, phát hiện và xử lý lỗi hệ thống mạng. Bộ Khai phá
thông minh (Intelligence Miner) là sản phẩm điển hình của IBM.
Mặc dù nổi lên như là một lĩnh vực khoa học tiềm năng, phát triển rất
nhanh chóng, nhưng khai phá dữ liệu cũng phải đối mặt với nhiều thách thức.
Các thách thức lớn thường được nhắc tới là:

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

- Số đối tượng cũng như số chiều (thuộc tính) trong cơ sở dữ liệu khai
phá thường là rất lớn.
- Dữ liệu và tri thức luôn thay đổi có thể làm cho các mẫu đã phát hiện

không còn phù hợp.
- Dữ liệu bị thiếu hoặc nhiễu.
- Quan hệ phức tạp giữa các thuộc tính.
- Giao tiếp với người sử dụng và kết hợp với các tri thức đã có.
- Tích hợp với các hệ thống khác.
1.2. Khai phá luật kết hợp
Khai phá luật kết hợp đóng vai trò quan trọng trong khai phá dữ liệu.
Khai phá luật kết hợp là phát hiện những mối quan hệ giữa các mục dữ liệu.
Mô hình bài toán khai phá luật kết hợp đầu tiên được giới thiệu bởi Agrawal
và cộng sự vào năm 1993 khi phân tích cơ sở dữ liệu bán hàng của siêu thị [4,
5]. Đến nay, bài toán trong mô hình đầu tiên này được gọi là bài toán khai
phá luật kết hợp nhị phân (hay bài toán khai phá luật kết hợp cơ bản), vì ở
đây chỉ quan tâm đến sự xuất hiện hay không xuất hiện của các tập mục trong
các giao tác.
Trước khi phát biểu bài toán khai phá luật kết hợp, ta định nghĩa CSDL
giao tác và các dạng biểu diễn.
1.2.1. Cơ sở dữ liệu giao tác
Định nghĩa 1.1. Cho tập các mục (item)
 
12
, , ,
M
I i i i
. Một giao tác
(transaction) T là một tập con của I,
TI
. Cơ sở dữ liệu giao tác là tập các
giao tác DB ={ T
1
, T

2
, , T
N
}. Mỗi giao tác được gán một định danh TID.
Một tập mục con
XI
, gồm k mục phân biệt được gọi là một k-tập mục. Ta
nói giao tác T chứa tập mục X nếu
XT
.

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

Biểu diễn cơ sở dữ liệu giao tác: cơ sở dữ liệu giao tác thường được biểu
diễn ở dạng biểu diễn ngang, biểu diễn dọc và biểu diễn bởi ma trận giao tác.
Biểu diễn ngang: Cơ sở dữ liệu là một danh sách các giao tác. Mỗi giao
tác có định danh TID và một danh sách các mục dữ liệu trong giao tác đó,
(Bảng 1.1).
Biểu diễn dọc: Cơ sở dữ liệu là một danh sách các mục dữ liệu, mỗi mục
dữ liệu có một danh sách tất cả các định danh của các giao tác chứa mục dữ
liệu này, (Bảng 1.2).

Bảng 1.1: Biểu diễn ngang của cơ sở dữ liệu giao tác
TID
Mục dữ liệu
T
1
B,C
T
2

B,C,D
T
3
A, B, D
T
4
A, C, D
T
5
C, D
Bảng 1.2: Biểu diễn dọc của cơ sở dữ liệu giao tác
Mục dữ liệu
Định danh giao tác
A
T
1
, T
6
, T
7
, T
8
, T
9
, T
10
B
T
1
, T

2
, T
3
, T
7
, T
9
C
T
1
, T
2
, T
4
, T
5
, T
6
, T
7
, T
8
D
T
1
, T
2
, T
3
, T

4
, T
5
Ma trận giao tác: Cơ sở dữ liệu giao tác
 
12
, , ,
N
DB T T T
trên tập
các mục
 
12
, , ,
M
I i i i
được biểu diễn bởi ma trận nhị phân
()
pq N M
Mm



ở đó:

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


khi
khi

qp
pq
qp
iT
m
iT








1
0

Ví dụ, cơ sở dữ liệu Bảng 1.1 biểu diễn ở dạng ma trận giao tác là:
Bảng 1.3: Ma trận giao tác của cơ sở dữ liệu Bảng 1.1
TID
A
B
C
D
T
1
0
1
1
0

T
2
0
1
1
1
T
3
1
1
0
1
T
4
1
0
1
1
T
5
0
0
1
1

1.2.2. Phát biểu bài toán khai phá luật kết hợp
Dưới đây, để cho tiện, luật kết hợp nhị phân sẽ được gọi vắn tắt là luật
kết hợp.
Định nghĩa 1.2. Cho CSDL giao tác DT với tập tất cả các mục I. Một luật kết
hợp là một biểu thức dạng

XY
, trong đó X và Y là các tập con của I,
XY  
; X gọi là tiền đề, Y gọi là kết luận của luật.
Luật kết hợp có hai thông số quan trọng là độ hỗ trợ và độ tin cậy.
Định nghĩa 1.3. Cho tập mục
XI
. Ta gọi số đếm hỗ trợ (support count)
của X, ký hiệu SC(X), là số giao tác trong CSDL DT chứa X; độ hỗ trợ
(support) của X, ký hiệu sup(X), là tỷ số giao tác chứa X trên tổng số các giao
tác có trong DT. Tức là:

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

.
Độ hỗ trợ của X chính là xác suất xuất hiện X trong một giao tác. Ta có:
sup( )X01
với mọi tập mục
XI
.

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


Định nghĩa 1.4. Cho tập mục
XI
và ngưỡng hỗ trợ tối thiểu (minimum
support)
 
0,1minsup
. X được gọi là tập mục thường xuyên (frequent
itemset) với độ hỗ trợ tối thiểu minsup nếu
sup( )X minsup
, ngược lại X gọi
là tập mục không thường xuyên.
Ngưỡng hỗ trợ tối thiểu minsup là giá trị cho trước bởi người sử dụng.
Định nghĩa 1.5. Độ hỗ trợ của một luật kết hợp
XY
, ký hiệu là
sup(
XY
), là độ hỗ trợ của tập mục
XY
,
sup( ) sup( )X Y X Y  
.
Như vậy, độ hỗ trợ của luật kết hợp
XY
chính là xác suất xuất hiện
đồng thời của X và Y trong một giao tác, tức là
()P X Y
.
Ta có:

sup( )XY  01
.
Định nghĩa 1.6. Độ tin cậy (Confidence) của một luật
XY
, ký hiệu
 
conf X Y
, là tỷ lệ giữa số giao tác chứa
XY
và số giao tác chứa X
trong cơ sở dữ liệu DT.

sup( )
()
sup( )
XY
conf X Y
X



Độ tin cậy của luật kết hợp
XY
chính là xác suất có điều kiện
 
P Y X
. Ta có:
0 ( ) 1conf X Y  
.
Với các khái niệm về độ hỗ trợ và độ tin cậy trên đây, bài toán khai phá

luật kết hợp được phát biểu như sau.
Cho cơ sở dữ liệu giao tác DT, ngưỡng độ hỗ trợ tối thiểu minsup và
ngưỡng độ tin cậy tối thiểu minconf. Hãy tìm tất cả các luật kết hợp
XY

trong DT thỏa mãn đồng thời hai điều kiện:

sup( )X Y minsup
,

 
conf X Y minconf
.

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

Bài toán khai phá luật kết hợp được chia thành hai bài toán con. Bài toán
thứ nhất là tìm tất cả các tập mục thoả mãn độ hỗ trợ tối thiểu, tức là tìm tất cả
các tập mục thường xuyên. Bài toán thứ hai là sinh ra các luật kết hợp từ các
tập mục thường xuyên đã tìm được thoả mãn độ tin cậy tối thiểu.
Bài toán thứ hai được giải quyết như sau: Giả sử đã tìm được X là tập
mục thường xuyên, ta sinh ra các luật kết hợp bằng cách với
YX
, kiểm
tra độ tin cậy của luật
\X Y Y
có thoả mãn độ tin cậy tối thiểu không.
Việc giải quyết bài toán thứ hai như trên là khá đơn giản. Mọi khó khăn
nằm ở bài toán thứ nhất, hầu hết các nghiên cứu về luật kết hợp đều tập trung
giải quyết bài toán phát hiện các tập mục thường xuyên.

Với cơ sở dữ liệu có M mục dữ liệu, không gian tìm kiếm các tập mục
thường xuyên có tất cả 2
M
tập mục, rõ ràng đây là bài toán NP, do vậy cần
phải có phương pháp duyệt thích hợp, tỉa nhanh các tập ứng viên.
Đã có rất nhiều thuật toán phát hiện tập mục thường xuyên được công
bố. Có thể phân các thuật toán này thành hai nhóm sau [9]:
- Phương pháp sinh ứng viên, thực hiện việc tìm kiếm từng bước theo
chiều rộng trong không gian tìm kiếm.
- Phương pháp không sinh ứng viên, chuyển đổi cơ sở dữ liệu thành
cấu trúc cây, duyệt cây đệ quy theo chiều sâu.
Duyệt theo chiều rộng là duyệt cơ sở dữ liệu DT để tính độ hỗ trợ của
tất cả các tập mục ứng viên có (k-1) mục trước khi tính độ hỗ trợ của các tập
mục ứng viên có k mục. Với cơ sở dữ liệu có M mục dữ liệu, lần lặp thứ k phải
kiểm tra độ hỗ trợ của tất cả
!
!( )!
k
M
M
C
k M k


tập mục ứng viên có k mục.

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

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

1.2.3 Thuật toán Apriori khám phá tập mục thƣờng xuyên
Apriori là thuật toán đầu tiên dành cho việc khai phá tập mục thường
xuyên do Agrawal và cộng sự đề xuất. Apriori thuộc nhóm thuật toán sinh
ứng viên. Tuy có một số nhược điểm nhưng cho tới nay nó vẫn là thuật toán
cơ bản nhất. Ý tưởng của thuật toán Apriori là nền tảng cho việc phát triển
nhiều thuật toán khai pháp tập mục thường xuyên sau công trình của Agrawal
và cộng sự.
Một cách cụ thể, thuật toán Apriori được mô tả như sau [4, 5].

Ký hiệu:
Ký hiệu
Ý nghĩa
L
k
Tập các k-tập mục thường xuyên (với độ hỗ trợ tối thiểu
minsup). Mỗi phần tử của tập này có 2 trường:
i) Tập mục (itemset)
ii) Số đếm hỗ trợ (support count)
C
k
Tập các k-tập mục ứng viên (các tập mục thường xuyên
tiềm năng). Mỗi phần tử của tập này có 2 trường:
i) Tập mục (itemset)
ii) Số đếm hỗ trợ (count)


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

Cơ sở của thuật toán Apriori là tính chất Apriori của tập mục thường
xuyên: Bất kỳ tập con nào của tập mục thường xuyên cũng phải là tập mục

thường xuyên. Sử dụng tính chất Apriori này thuật toán phát hiện các tập mục
thường xuyên bằng cách thực hiện một quá trình tính toán lặp. Tại bước lặp
thứ nhất, thuật toán duyệt CSDL phát hiện các mục thường xuyên đơn lẻ. Tại
mỗi bước lặp thứ k tiếp theo (k

2), thuật toán thực hiện ba công việc:
- Sinh ra các k-tập mục ứng viên (tập mục có khả năng là k-tập mục
thường xuyên) bằng cách kết nối các tập mục thường xuyên thu
được ở bước k – 1,
- Tỉa (loại bỏ) bớt các tập mục ứng viên dựa trên tính chất Apriori:
Nếu một tập ứng viên có chứa một tập mục con không phải là tập
mục thường xuyên thì nó cũng sẽ không thể là tập mục thường
xuyên.
- Duyệt CSDL, kiểm tra sự thỏa mãn độ hỗ trợ tối thiểu của các tập
mục ứng viên còn lại nhằm tìm ra các tập mục thường xuyên.
Giả sử các mục dữ liệu trong mỗi giao tác được lưu theo thứ tự từ điển.
Các thủ tục kết nối và tỉa ứng viên là như sau:
Kết nối (tìm C
k
): Tập các k-tập mục ứng viên C
k
được sinh ra bởi việc
kết nối L
k-1
với chính nó. Hai tập mục l
1
và l
2
của L
k-1

được nối nếu chúng có
(k-2) mục dữ liệu đầu bằng nhau, mục dữ liệu thứ (k-1) của l
1
“nhỏ hơn” mục
dữ liệu thứ (k-1) của l
2
(theo thứ tự từ điển):
   
 
   
 
   
 
   
 
l l l l l k l k l k l k           
1 2 1 2 1 2 1 2
1 1 2 2 2 2 1 1

Tập mục nhận được sau kết nối l
1
với l
2
là: l
1
[1] l
1
[2]… l
1
[k-2] l

1
[k-1] l
2
[k-1].

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

Tỉa: Tất cả các k-tập mục thường xuyên đều phải thuộc tập C
k

 
LC
kk

. Tập C
k
này có thể rất lớn dẫn đến khối lượng tính toán lớn. Thuật
toán rút gọn tập C
k
bằng cách như sau: Nếu một k-tập mục ứng viên nào đó
có một (k-1)-tập mục con không thuộc L
k-1
thì ứng viên đó không thể là k-tập
mục thường xuyên và sẽ bị loại bỏ khỏi C
k
.
Thuật toán Apriori
Input: Cơ sở dữ liệu DB, ngưỡng độ hỗ trợ minsup
Output: Tập các tập mục thường xuyên L trong DB
Method:

(1) Tìm các 1- tập mục thường xuyên, nhận được L
1
;
(2) For
 
;card( ) ;
k
k L k

   
1
22
do begin
(3) C
k
= apriori_gen(L
k-1
,minsup); // Sinh tập ứng viên mới từ
k1
L

;
(4) For (each
T DB
) do begin
(5) C = subset(C
k
,T); // Các tập mục ứng viên chứa trong T ;
(6) For (each
cC

)
(7) c.count++; // tăng số đếm c lên một đơn vị ;
(8) end;
(9)
 
k
L c C / c.count minsup ;
k
  

(10) End ;
(11)
LL
k
 
;

Hàm Apriori_gen()
Input: Tập các (k-1)-tập mục thường xuyên L
k-1

Output: Tập các k- tập mục ứng viên C
k
Method:
// Bước kết nối

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

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



L
k-1
) do
(2) For (each (k-1)-tập mục l
2


L
k-1
do
(3) if (l
1
[1] = l
2
[1]) and (l
1
[2] = l
2
[2]) and … and (l
1
[k-2] = l
2
[k-2])
and (l
1
[k-2] = l
2
[k-2]) and (l

1
[k-1] < l
2
[k-1]) then
(4) C
k
← { l
1
[1], l1[2], … l
1
[k-2],l
1
[k-1] l
2
[k-1]};
// kết nạp k-tập mục mới vào C
k

// Bước tỉa
(5) For (each c
i

C
k
) do
(6) If exist (s

c
i
) and (s


L
k-1
) then
(7) delete c
i
from C
k
;
(8) Return C
k
;
Ví dụ minh hoạ thuật toán Apriori
Ta minh hoạ thực hiện thuật toán Apriori trên cơ sở dữ liệu cho trong
bảng 1.4 với minsup = 0.05, tức số đếm hỗ trợ tối thiểu bằng 2.


Bảng 1.4: Cơ sở dữ liệu giao tác minh hoạ thực hiện thuật toán Apriori.
TID
Các mục dữ liệu
T
1
A, C, D
T
2
B, C, E
T
3
A, B, C, E
T

4
B, E

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

- Duyệt CSDL lần thứ nhất: tính độ hỗ trợ cho các 1-tập mục được kết quả
như sau:




Kết nối L
1
với L
1
được C
2
:


- Duyệt CSDL lần thứ 2 tính độ hỗ trợ cho các 2- tập mục trong C
2
:




Kết nối L
2
với L

2
được C
3
:

×