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

khai phá tập mục lợi ích cao 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 (1.17 MB, 74 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 CNTT&TT







ĐỖ THỊ HẢI YẾN






KHAI PHÁ TẬP MỤC LỢI ÍCH CAO
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 - 2011

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 CNTT&TT







ĐỖ THỊ HẢI YẾN






KHAI PHÁ TẬP MỤC LỢI ÍCH CAO

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 - 2011

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 Luận văn "Khai phá tập mục lợi ích cao trong cơ sở dữ liệu
lớn" là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn của PGS.TS Nguyễn

Thanh Tùng. Kết quả đạt được trong luận văn là sản phẩm của riêng cá nhân tôi,
không sao chép lại của người khác. Trong toàn bộ luận văn, những điều được trình
bày là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu. Tất cả các tài liệu
tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp.
Tôi xin chịu hoàn toàn trách nhiệm và chịu mọi hình thức kỷ luật theo quy
định cho lời cam đoan của mình.
Thái Nguyên, ngày 30 tháng 9 năm 2011

Ngƣời cam đoan






Đỗ Thị Hải Yến

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

LỜI CẢM ƠN

Lời đầu tiên tôi xin gửi lời cảm ơn chân thành và biết ơn sâu sắc tới PGS.TS.
Nguyễn Thanh Tùng - Viện Công nghệ thông tin, người thầy đã chỉ bảo và hướng dẫn
tận tình cho tôi trong suốt quá trình nghiên cứu khoa học và thực hiện luận văn này.
Tôi xin chân thành cảm ơn sự dạy bảo, giúp đỡ, tạo điều kiện và khuyến
khích tôi trong quá trình học tập và nghiên cứu của các thầy cô giáo của Viện Công
nghệ thông tin, Trường Đại học Công nghệ thông tin và Truyền thông - Đại học
Thái Nguyên.
Và cuối cùng, tôi xin gửi lời cảm ơn tới gia đình, người thân và bạn bè -
những người luôn ở bên tôi những lúc khó khăn nhất, luôn động viên tôi, khuyến

khích tôi trong cuộc sống và trong công việc.
Tôi xin chân thành cảm ơn!

Thái Nguyên, ngày 30 tháng 9 năm 2011

Tác giả






Đỗ Thị Hải Yến



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
i
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 iii
Danh mục các bảng iv
Danh mục các hình 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 4

1.1. Khai phá dữ liệu 4
1.2. Khai phá tập mục thường xuyên 8
1.2.1. Cơ sở dữ liệu giao tác 8
1.2.2. Tập mục thường xuyên và luật kết hợp 10
1.2.3 Bài toán khai phá luật kết hợp 11
1.3. Các cách tiếp cận khai phá tập mục thường xuyên 12
1.3.1 Thuật toán Apriori 13
1.3.2 Thuật toán FP-growth 17
1.4. Mở rộng bài toán khai phá tập mục thường xuyên 23
1.5. Kết luận chương 1 24
Chƣơng 2. KHAI PHÁ TẬP MỤC LỢI ÍCH CAO: BÀI TOÁN VÀ BA
THUẬT GIẢI KIỂU APRIORI 25
2.1. Mở đầu 25
2.2. Bài toán khai phá tập mục lợi ích cao 26
2.3. Ba thuật toán khai phá tập mục lợi ích cao kiểu Apriori 30
2.3.1. Thuật toán UMining 30
2.3.2. Thuật toán UMining-H 32
2.3.3. Thuật toán hai pha HUMining 34

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
ii
2.4. Kết luận chương 2 41
Chƣơng 3. THUẬT TOÁN HIỆU QUẢ KHAI PHÁ TẬP MỤC LỢI ÍCH
CAO KIỂU FP-GROWTH 42
3.1 Mở đầu 42
3.2. Thuật toán COUI-Mine 42
3.2.1. Xây dựng cây TWUI-tree 44
3.2.2. Khai phá cây TWUI-tree 48
3.2.3. Đánh giá độ phức tạp của thuật toán COUI-Mine 55
3.2.4. Nhận xét thuật toán COUI-Mine 58

3.2.5. Khai phá tương tác với cây TWU-tree 59
3.3. Kết luận chương 3 60
KẾT LUẬN 62
TÀI LIỆU THAM KHẢO 64

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

DANH MỤC CÁC TỪ VIẾT TẮT

STT
Cụm từ viết tắt
Nghĩa của cụm từ viết tắt
1
CNTT
Công nghệ thông tin
2
CSDL
Cơ sở dữ liệu
3
KDD
Khám phá tri thức trong cơ sở dữ liệu



Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
iv
DANH MỤC CÁC BẢNG
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 10
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 1.5: Cơ sở dữ liệu giao tác minh hoạ thực hiện thuật toán COFI-tree 19
Bảng 1.6: Các mục dữ liệu và độ hỗ trợ 20
Bảng 1.7: Các mục dữ liệu thường xuyên đã sắp thứ tự 20
Bảng 1.8: Các mục dữ liệu trong giao tác sắp giảm dần theo độ hỗ trợ. 21
Hình 1.4: Các bước khai phá cây D-COFI-tree. 23
Bảng 2.1. Cơ sở dữ liệu giao tác 27
Bảng 2.2. Giá trị lợi ích chủ quan của các mục trong bảng 1. 27
Hình 2.1. Dàn tập mục trong cơ sở dữ liệu bảng 1 29
Bảng 3.1: Lợi ích các giao tác của cơ sở dữ liệu 45
Bảng 3.2: Lợi ích TWU của các mục dữ liệu 45
Bảng 3.3: Các mục dữ liệu có lợi ích TWU cao sắp giảm dần theo twu 46
Bảng 3.4: Các mục dữ liệu trong giao tác sắp giảm dần theo lợi ích TWU. 46
Hình 3.7: Cây D-COUI-tree 50
Bảng 3.5: Lợi ích các tập mục ứng viên 53





Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
v
DANH MỤC CÁC HÌNH
Trang
Hình 1.1. Các bước thực hiện của quá trình khai phá dữ liệu 6
Hình 1.2: Cây FP-tree của CSDL bảng 1.5. 21
Hình 1.3: Cây COFI-tree của mục D 21
Hình 2.2. Không gian tìm kiếm tập mục lợi ích cao theo thuật toán UMining 32

Hình 2.3. Không gian tìm kiếm tập mục lợi ích cao theo thuật toán UMining-H 33
Hình 2.4. Không gian tìm kiếm tập mục lợi ích cao theo thuật toán HUMining 39
Hình 3.1: Cây TWUI-tree sau khi lưu thao tác T1. 47
Hình 3.2: Cây TWUI-tree sau khi lưu thao tác T1 và T2. 47
Hình 3.3: Cây TWUI-tree của cơ sở dữ liệu bảng 3.1 và 3.2. 47
Hình 3.4: Cây C-COUI-tree sau khi lưu mẫu CBE 49
Hình 3.5: Cây C-COUI-tree sau khi lưu mẫu CBE và CE 50
Hình 3.6: Cây C-COUI-tree sau khi xây dựng xong. 50
Hình 3.8: Cây B-COUI-tree 51
Hình 3.9: Các bước khai phá cây D-COUI-tree. 52


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

LỜI 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 công nghệ
thông tin, truyền thông, khả năng thu thập và lưu trữ thông tin của các hệ thống thông
tin không ngừng được nâng cao. Với lượng dữ liệu khổng lồ và luôn gia tăng theo
thời gian, 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ó thể khai thác hiệu quả
các cơ sở dữ liệu lớn, một lĩnh vực khoa học mới đã ra đời: Khám phá tri thức trong
cơ sở dữ liệu (Knowledge Discovery in Databases – KDD). Khai phá dữ liệu (Data
Mining) là một công đoạn chính trong qúa trình khám phá tri thức, nhằm tìm kiếm,
phát hiện các tri thức mới, hữu ích tiềm ẩn trong các cơ sở dữ liệu lớn.
Khai phá luật kết hợp là một nhiệm vụ quan trọng của khai phá dữ liệu. Bài
toán truyền thống (hay còn gọi bài toán nhị phân) khai phá luật kết hợp do R.
Agrawal, T. Imielinski và A. N. Swami đề xuất và nghiên cứu lần đầu tiên vào năm
1993 khi phân tích các cơ sở dữ liệu của các siêu thị. Mục tiêu của nó là phát hiện

các tập mục thường xuyên, từ đó tạo các luật kết hợp phản ánh hành vi mua hàng
của khách hàng. Những thông tin như vậy giúp nhà quản lý có thể lựa chọn phương
án tiếp thị, kinh doanh hiệu quả hơn.
Cho đến nay, bài toán khai phá luật kết hợp truyền thống có nhiều ứng dụng,
tuy vậy do tập mục thường xuyên chỉ mang ngữ nghĩa thống kê nên mô hình bài
toán truyền thống chỉ đáp ứng được phần nào nhu cầu ứng dụng thực tiễn. Thật ra,
trong kinh doanh, điều mà người quản lý quan tâm hơn là phát hiện những khách
VIP, đem lại lợi nhuận cao. Trong thực hành, có những tập mục thường xuyên
nhưng chỉ đóng góp phần rất nhỏ, ngược lại có những tập mục không thường xuyên
lại đóng góp phần đáng kể vào lợi nhuận chung của công ty.
Gần đây, nhằm khắc phục hạn chế của bài toán truyền thống khai phá luật kết
hợp, các nhà nghiên cứu đã mở rộng nó theo nhiều hướng khác nhau, trong đó có
vấn đề khai phá tập mục lợi ích cao. Lợi ích của một tập mục là số đo lợi nhuận mà
nó có thể mang lại trong kinh doanh, được tính toán dựa trên giá trị khách quan và

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
2
giá trị chủ quan của các mục thành viên. Giá trị khách quan của một mục là số đơn
vị mục bán được, dữ liệu này có sẵn trong cơ sở dữ liệu. Giá trị chủ quan của một
mục là giá trị lợi nhuận mà mỗi đơn vị mục có thể đem lại, theo đánh giá của nhà
kinh doanh. Khai phá tập mục lợi ích cao là khám phá tất cả tập mục X đem lại lợi
ích
()uX


, trong đó

là ngưỡng quy định bởi người sử dụng.
Trong khai phá luật kết hợp truyền thống, các thuật toán khám phá tập mục
thường xuyên được xây dựng theo phương pháp tìm kiếm từng bước. Cơ sở của các

thuật toán này là tính chất Apriori hay còn gọi là tính chất phản đơn điệu (anti
monotone) của tập mục thường xuyên. Đó là tập con khác rỗng của một tập mục
thường xuyên phải là tập thường xuyên. Điều này có nghĩa các (k+1)-tập mục
thường xuyên chỉ có thể sinh ra từ các k-tập mục thường xuyên. Tính chất Apriori
cho phép loại bỏ được phần lớn các tổ hợp mục không thường xuyên ra khỏi không
gian tìm kiếm tại mỗi bước.
Đáng tiếc là ràng buộc lợi ích cao không thỏa mãn tính chất Apriori. Do đó,
việc tìm kiếm, phát hiện tập mục lợi ích cao không thể thực hiện được như trong
khai phá tập mục thường xuyên. Cần phải nghiên cứu tìm ra những thuật toán hiệu
quả cho việc phát hiện tập mục lợi ích cao. Trong những năm gần đây, vấn đề này
đã và đang thu hút sự quan tâm của nhiều nhà nghiên cứu trong và ngoài nước.
Đã có một số thuật toán phát hiện tập mục lợi ích cao được đề xuất. Các thuật
toán này có thể phân thành hai loại:
- Thuật toán kiểu Apriori (Apriori-like) sinh ứng viên, duyệt theo chiều rộng.
- Thuật toán kiểu FP-growth không sinh ứng viên, chuyển đổi cơ sở dữ liệu
thành cấu trúc cây, duyệt đệ quy theo chiều sâu.
Luận văn của học viên nhằm nghiên cứu vấn đề khai phá tập mục lợi ích cao
trong cơ sở dữ liệu lớn. Nội dung chính của luận văn gồm ba chương.
Chương 1: Trình bày khái quát về khai phá dữ liệu, bài toán khai phá tập mục
thường xuyên với hai thuật toán quan trọng làm cơ sở cho việc trình bày nội dung
hai chương tiếp theo.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3
Chương 2: Phát biểu bài toán và trình bày ba thuật toán khai phá tập mục lợi
ích cao kiểu Apriori. Đó là các thuật toán UMining , UMining-H và HUMining.
Chương 3: Trình bày thuật toán kiểu FP-growth, được cho là hiệu quả nhất
hiện nay, thuật toán COUI-Mine.

Thái nguyên, tháng 09 năm 2011.

Học viên



Đỗ Thị Hải Yến


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

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. 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, truyền thông, khả năng thu thập và 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, 11].
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 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 đ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.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
5
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ư: Tổ
chức dữ liệu, xác suất, thống kê, lý thuyết thông tin, học máy, CSDL, 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.
 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 1.1 dưới đây mô tả các công đoạn của KDD:

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

Hình 1.1. Các bước thực hiện của quá trình khai phá dữ liệu
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:
 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 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

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
7
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.
 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ệ

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
8
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ố đố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á tập mục thƣờng xuyên
Khai phá tập mục thường xuyên đóng vai trò quan trọng trong nhiều nhiệm
vụ khai phá dữ liệu. Khai phá tập mục thường xuyên xuất hiện như là bài toán con
của nhiều lĩnh vực khai phá dữ liệu như khám phá luật kết hợp, khám phá mẫu tuần
tự, phân tích tương quan, phân lớp, phân cụm dữ liệu, khai phá web… Bài toán khai
phá tập mục thường xuyên được giới thiệu lần đầu tiên bởi Agrawal năm 1993 khi
phân tích cơ sở dữ liệu bán hàng của siêu thị trong mô hình của bài toán khai phá
luật kết hợp [3, 4]. Khai phá luật kết hợp là phát hiện những mối quan hệ giữa các
giá trị dữ liệu, các mối quan hệ đó chính là các luật kết hợp.
1.2.1. Cơ sở dữ liệu giao tác
Định nghĩa 1.1: Cho tập các mục (item) I={i

1
, i
2
, , i
n
}. Một giao tác
(transaction) T là một tập con của I,
T

I
Cơ sở dữ liệu giao tác là tập các giao tác
DB ={ T
1
, T
2
, , T
m
}. Mỗi giao tác được gán một định danh TID. Một tập mục con
X
I
,, gồm k mục phân biệt được gọi là một k –tập mục. Giao tác T gọi là chứa tập
mục X nếu X
T
.
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.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
9
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).
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
T1
B,C,D
T2
B,C,D
T3
A, B, D
T4
C, D, F
T5
C, D
T6
A, C
T7
A, B, C, F
T8
A, C
T9
A, B, E
T10
A, E
T11
A, B, C

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.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
T3, T6, T7, T8, T9, T10, T11
S
T1, T2, T3, T7, T9, T11
C
T1, T2, T4, T5, T6, T7, T8, T11
D
T1, T2, T3, T4, T5
E
T9, T10
F
T4, T7

Ma trận giao tác: Cơ sở dữ liệu giao tác
 
n
TTTDB , ,,
1

trên tập các mục
 
n
iiiI , ,,
21

được biểu diễn bởi ma trận nhị phân
mxnpq

mM )(
ở đó:









p
p
pq
T
T
m
q
q
i khi 0
i khi 1


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
10
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
E
F
T1
0
1
1
1
0
0
T2
0
1
1
1
0
0
T3
1
1
0
1
0
0
T4
0
0
1
1

0
1
T5
0
0
1
1
0
0
T6
1
0
1
0
0
0
T7
1
1
1
0
0
1
T8
1
0
1
0
0
0

T9
1
1
0
0
1
0
T10
1
0
0
0
1
0
T11
1
1
1
0
0
0

1.2.2. Tập mục thƣờng xuyên và luật kết hợp
Định nghĩa 1.2: Cho tập mục
IX 
. Ta gọi độ hỗ trợ (Support) của X trong cơ sở
dữ liệu giao tác DB, ký hiệu sup(X), là tỷ lệ các giao tác chứa X trên tổng số các
giao tác trong DB, tức là:
 
sup( ) .

T DB T X
X
DB



Ta có:
1)sup(0  X
với mọi tập mục
IX 
.
Định nghĩa 1.3: Cho tập mục
IX 
và ngưỡng hỗ trợ tối thiểu (minimum support)
 
0,1minsup
(được xác định trước bởi người sử dụng). 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.
Định nghĩa 1.4: Một luật kết hợp là một biểu thức dạng
YX 
, trong đó X và Y là
tập con của I,
YX
; 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.5: Độ hỗ trợ (Support) của một luật kết hợp
YX 
, ký hiệu là

sup(
YX 
), là độ hỗ trợ của tập mục
YX 
,
)sup()sup( YXYX 
.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
11
Như vậy độ hỗ trợ của luật kết hợp
YX 
chính là xác suất
)( YXP 
của
sự xuất hiện đồng thời của X và Y trong một giao tác.
Ta có:
1)sup(0  YX
.
Định nghĩa 1.6: Độ tin cậy (Confidence) của một luật
YX 
, ký hiệu
 
YXconf 
, là tỷ lệ phần trăm giữa số giao tác chứa
YX 
và số giao tác chứa X
trong cơ sở dữ liệu DB.
sup( )
()

sup( )
XY
conf X Y
X



Độ tin cậy của luật kết hợp
YX 
chính là xác suất có điều kiện P(Y/X):
 
 
 
 
 
 
 
X
YX
TXDBT
TYXDBT
TXDBT
TYTXDBT
XYP
sup
sup
|
|
|
|

/









và ta có
0 ( ) 1.conf X Y  

Các luật thoả mãn cả hai ngưỡng độ hỗ trợ tối thiểu (minsup) và độ tin cậy
tối thiểu (minconf), tức thoả mãn
sup( )X Y minsup

 
conf X Y

minconf
, được gọi là luật kết hợp mạnh.
Tính chất cơ bản của tập mục thƣờng xuyên:
Cho cơ sở dữ liệu giao tác DB và ngưỡng độ hỗ trợ tối thiểu minsup. Các tập
mục thường xuyên có các tính chất sau:
(1) Nếu X, Y là các tập mục và
YX 
thì
   
sup supXY

.
(2) Nếu một tập mục là không thường xuyên thì mọi tập cha của nó cũng không
thường xuyên.
(3) Nếu một tập mục là thường xuyên thì mọi tập con khác rỗng của nó cũng là
tập mục thường xuyên
Tính chất (3) được gọi là tính chất Apriori, tính chất này là cơ sở để rút gọn
không gian tìm kiếm các tập mục thường xuyên.
1.2.3 Bài toán khai phá luật kết hợp
Cho cơ sở dữ liệu giao tác DB, ngưỡng độ hỗ trợ tối thiểu minsup và ngưỡng
độ tin cậy tối thiểu minconf.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
12
Yêu cầu: Tìm tất cả các luật kết hợp
YX 
trên cơ sở dữ liệu DB sao cho
sup( )X Y minsup

 
.conf X Y minconf

Bài toán khai phá luật kết hợp này được goi là bài toán cơ bản hay bài toán
nhị phân, vì ở đây, giá trị của mục dữ liệu trong cơ sở dữ liệu là 0 hoặc 1 (xuất hiện
hay không xuất hiện).
Bài toán khai phá luật kết hợp đượ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 cho trước, 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 cho trước. Khó khăn
chủ yếu nằm ở bài toán thứ nhất.
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 tìm
XY 
, kiểm tra độ tin cậy
của luật
YYX \
có thoả mãn độ tin cậy tối thiểu không. Bài toán thứ hai này đơ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 thứ nhất là tìm các tập mục thường xuyên.
Phần tiếp theo sau đây sẽ trình bày chi tiết về khai phá tập mục thường xuyên.
1.3. Các cách tiếp cận khai phá tập mục thƣờng xuyên
Các nghiên cứu về khai phá tập mục thường xuyên tập trung vào tìm các
thuật toán mới hoặc đề xuất giải pháp nâng cao hiệu quả các thuật toán đã có.
Đã có rất nhiều thuật toán tìm tập mục thường xuyên được công bố, ta có thể
phân chúng theo hai tiêu chí sau:
- Phương pháp duyệt qua không gian tìm kiếm.
- Phương pháp xác định độ hỗ trợ của tập mục.
Phương pháp duyệt qua không gian tìm kiếm được phân làm hai cách: duyệt
theo chiều rộng và duyệt theo chiều sâu.
Duyệt theo chiều rộng là duyệt qua cơ sở dữ liệu gốc để 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ó n mục dữ liệu, lần lặp thứ k phải kiểm tra độ hỗ
trợ của tất cả
)!(!
!
knk
n
C
k
n



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
13
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.
Với cơ sở dữ liệu có n mục dữ liệu, không gian tìm kiếm có tất cả 2
n
tập con,
rõ ràng đây là bài toán NP khó, 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.
Phương pháp xác định độ hỗ trợ của tập mục X được chia làm hai cách: cách
thứ nhất là đếm số giao tác chứa X trong cơ sở dữ liệu và cách thứ hai là tính phần
giao của các tập chứa định danh của các giao tác chứa X.
Phần tiếp theo mô tả chi tiết nội dung hai thuật toán tiêu biểu và là cơ sở để
phát triển các thuật toán khai phá tập mục lợi ích cao: Thuật toán Apriori tiêu biểu
cho phương pháp duyệt không gian tìm kiếm; Thuật toán FP-growth, đại diện cho
phương pháp xác định độ hỗ trợ của tập mục, cơ sở dữ liệu được nén lên cấu trúc
cây, sau đó khai phá bằng cách phát triển dần các mẫu trên cây này.
1.3.1 Thuật toán Apriori
Apriori là thuật toán khai phá tập mục thường xuyên do R.Agrawal và
R.Srikant đề xuất vào năm 1993 [3, 4]. Ý tưởng của thuật toán Apriori còn là
nền tảng cho việc phát triển nhiều thuật toán khai phá tập mục thường xuyên
khác về sau.
Ý tưởng chính của thuật toán như sau: sinh ra các tập mục ứng viên từ các
tập mục thường xuyên ở bước trước, sử dụng kỹ thuật “tỉa” để bỏ đi những tập mục
ứng viên không thoả mãn ngưỡng hỗ trợ cho trước. Cơ sở của kỹ thuật này là tính
chất Apriori (xem 1.2.2): 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. Vì vậy các tập mục ứng viên gồm k mục có thể được sinh

ra bằng cách kết nối các tập mục thường xuyên có (k-1) mục và loại bỏ tập mục ứng
viên nếu nó có chứa bất kỳ một tập con nào không phải là thường xuyên.
Giả sử các mục dữ liệu trong mỗi giao tác được lưu theo trật tự từ điển.
Thuật toán sử dụng các ký hiệu sau đây:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
14
Tập k
mục
Chức năng
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) Độ hỗ trợ (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) Độ hỗ trợ (count)

Thuật toán duyệt cơ sở dữ liệu nhiều lần. Mỗi lần duyệt, thuật toán thực hiện
hai bước; bước kết nối và bước tỉa. Trong lần lặp thứ k, thuật toán nối hai (k-1) –
tập mục để sinh ra k – tập mục, sử dụng tính chất Apriori để tỉa các tập ứng viên.
Bước kết nối và bước tỉa như sau:
Bƣớc 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 của l
2
:
   
 
   
 
   
 
   
 
1122 2211
21212121
 klklklklllll

Dạng của tập mục nhận được bởi nối l
1

và l
2
là: l
1
[1] l
1
[2]… l
1
[k-2] l
1
[k-1] l
2
[k-1].
Bƣớc tỉa: Tập C
k
chứa tập L
k
, tức là tất cả các k – tập mục thường xuyên đều
thuộc tập C
k
. Tập C
k
có thể rất lớn dẫn đến khối lượng tính toán lớn. Thuật toán áp
dụng tính chất Apriori để rút gọn tập C
k
. Nếu có một (k-1) – tập mục con nào đó
của k – tập mục ứng viên mà không có mặt trong L
k-1
thì ứng viên đó không thể là
thường xuyên, có thể loại bỏ khỏi C

k.
Việc kiểm tra các (k-1) – tập mục con có thể
thực hiện nhanh bởi duy trì một cây băm của tất cả các tập mục thường xuyên đã
tìm thấy.
Thuật toán Apriori (tìm các tập mục thường xuyên)
Input: cơ sở dữ liệu DB, ngưỡng độ hỗ trợ minsup

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
15
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
 


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

(4) For (each

DBT 
) 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)
 
;supmin./  countcCcL
kk

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

Sinh các tập mục ứng viên của thuật toán Apriori: hàm Apriori_gen()
Function Apriori_gen()
Input: Tập các (k-1)- tập mục 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

(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

(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-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 Ck
// Bước tỉa
(5) For (each c
i

C
k
) do

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
16
(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 trong bảng 1.4
với minsup=50%, tức xuất hiện ít nhất 2 lần.

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
T01
A, C, D
T02
B, C, E
T03
A, B, C, E
T04
B, E

- 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:


×