Professional Documents
Culture Documents
Bai 3-P1-2014
Bai 3-P1-2014
Bai 3-P1-2014
DỮ LIỆU &
ỨNG DỤNG
(DATA MINING)
GV: NGUYỄN HOÀNG TÚ ANH
BÀI 3- PHẦN 1
KHAI THÁC
TẬP PHỔ BIẾN &
LUẬT KẾT HỢP
2
1
NỘI DUNG
1. Giới thiệu
2. Các khái niệm cơ bản
3. Bài toán khai thác tập phổ biến
GIỚI THIỆU
Mẫu phổ biến: là mẫu (tập các hạng mục, chuỗi con, cấu
trúc con, đồ thị con, …) xuất hiện thường xuyên trong tập
DL
– Agrawal, Imielinski, Swami – 1993 – trong ngữ cảnh bài toán tập phổ
biến và luật kết hợp
Mục đích: Tìm các hiện tượng thường xuyên xảy ra
trong DL
– Những sản phẩm nào thường được mua chung ? Bia và tã lót
– Người ta thường mua gi tiếp theo sau khi mua máy PC ?
– Dạng DNA nào có phản ứng với công thức thuốc mới ?
– Làm thế nào đề phân loại tự động văn bản Web ?
Ứng dụng :
– Áp dụng trong phân tích CSDL bán hàng
– Mở rộng sang quảng cáo, thiết kế catalog, phân tích chiến
4
dịch bán hàng, Web log, chuỗi DNA, …
2
GIỚI THIỆU
Bài toán khai thác tập phổ biến là bài toán
rất quan trọng lĩnh vực KTDL: vạch ra tính
chất ẩn, quan trọng của tập DL
Là nền tảng cho nhiều nhiệm vụ KTDL khác:
– Phân tích luật kết hợp, mối tương quan
– Mẫu tuần tự, cấu trúc ( Vd : đồ thị con)
– Phân tích DL không gian, đa phương tiện, phụ
thuộc thời gian
– Phân loại : phân loại dựa trên luật kết hợp
– Phân tích nhóm: gom nhóm dựa trên mẫu phổ biến
– ….
5
NỘI DUNG
1. Giới thiệu
3
KHÁI NIỆM CƠ BẢN
1. CSDL GIAO DỊCH
TID Produces
(Transaction DB)
1 MILK, BREAD, EGGS
VD giỏ mua hàng: 2 BREAD, SUGAR
3 BREAD, CEREAL
o Giỏ 1: {Bánh mì, 4 MILK, BREAD, SUGAR
Trứng, Sữa} 5 MILK, CEREAL
o Giỏ 2: {Bánh mì, 6 BREAD, CEREAL
7 MILK, CEREAL
Đường}
MILK, BREAD, CEREAL,
… 8
EGGS
o Giỏ n: {Bánh qui, ngũ 9 MILK, BREAD, CEREAL
cốc, sữa}
ITEMS:
A = milk
B= bread
C= cereal
D= sugar
8
E= eggs
4
KHÁI NIỆM CƠ BẢN
1. CSDL GIAO DỊCH (tt)
Định nghĩa:
o Hạng mục (Item): mặt hàng trong giỏ hay một thuộc tính
o Tập các hạng mục (itemset) I = {i1, i2, …, im} :
VD: I = {sữa, bánh mì, ngũ cốc, sữa chua}
Tập k hạng mục (k-itemset)
o Giao dịch (Transation): tập các hạng mục được mua trong
một giỏ ( có TID – mã giao dịch): (Tid, tập hạng mục)
o Giao dịch t : tập các hạng mục sao cho t I
o VD: t = { bánh mì, sữa chua, ngũ cốc}
o CSDL giao dịch: tập các giao dịch
o CSDL D = {t1,t2, …, tn} , ti={ii1,ii2, …, iik} với iij I : CSDL
giao dịch 9
5
KHÁI NIỆM CƠ BẢN
3. TÍNH CHẤT TẬP PHỔ BIẾN
Tất cả các tập con của tập phổ
biến đều là tập phổ biến
Thảo luận :
Tại sao? Chứng minh.
Nếu tập con không phổ biến thì tập
bao nó (tập cha) có phổ biến hay
không ?
11
VÍ DỤ 1
Minsupp = 60%
6
TẬP PHỔ BIẾN của VD 1
minsupp=30%
13
7
KHÁI NIỆM CƠ BẢN
5. TẬP PHỔ BIẾN ĐÓNG (Closed
Pattern)
Tập phổ biến & không tồn tại tập TID Items
nào bao nó có cùng độ phổ biến
như nó. (Pasquier, ICDT’99) 10 a, b, c
Ví dụ : {A, B}, {A, B, D}, {A,B, C} - 20 a, b, c
tập phổ biến đóng. 30 a, b, d
{A, B} - không phải tập phổ biến tối 40 a, b, d,
đại 50 c, e, f
Mối quan hệ giữa tập phổ biến
đóng và tập phổ biến tối đại Minsupp=2
ntn?
15
16
8
VÍ DỤ LUẬT KẾT HỢP (VD1)
9
Bài tập nhóm
Thời gian: 8’ Minsupp = 50%
Trình bày ý tưởng Minconf = 100%
(không yêu cầu giải BT)
giải quyết vần đề trước Trs-id Items bought
lớp trong vòng 3’. 10 E, B, C, D
Tình huống: 20 A, B, C, D, K
– Cho CSDL bên với các 30 D, B, F, E
giá trị minsupp =50 % và 40 A, E, C, B
minconf = 100%
– Cần tìm tất cả các luật
kết hợp thỏa mãn
minsupp và minconf.
– Nhận xét? 19
10
VÍ DỤ
Transaction-id Items bought Minsupp = 50%
10 A, B, C Minconf = 80%
20 A, C Frequent Itemsets Support
30 A, D {A} 75%
40 B, E, F {B} 50%
{C} 50%
{A, C} 50%
Luật A C:
supp (A C) = supp({A}{C}) = 50%
conf (A C) = supp({A}{C})/supp({A}) = 66.6% (loại)
Luật C A:
supp (C A) = supp({C}{A}) = 50%
conf (C A) = supp({C}{A})/supp({C}) = 100% (chọn)
21
NỘI DUNG
1. Giới thiệu
2. Các khái niệm cơ bản
3. Bài toán khai thác tập phổ
biến
Thuật toán Apriori
22
11
GIỚI THIỆU
Bài toán khai thác tập phổ biến là bài toán tìm tất
cả các tập các hạng mục S (hay tập phổ biến S)
có độ phổ biến thỏa mãn độ phổ biến tối thiểu
minsupp .
supp(S) minsupp
Cách giải quyết: dựa trên tính chất của tập phổ biến
• Tìm kiếm theo chiều rộng: Thuật toán Apriori
(Agrawal & Srikant @VLDB’94)
• Phát triển mẫu: Thuật toán FP-Growth (Han, Pei &
Yin @SIGMOD’00).
• Tìm kiếm trên CSDL dạng dọc: Thuật toán Charm
(Zaki & Hsiao @SDM’02)
23
12
VÍ DỤ TT APRIORI minsupp= 50%
Itemset sup
CSDL D C1 L1 Itemset sup
{A} 2
{A} 2
Tid Items {B} 3
{B} 3
10 A, C, D {C} 3
20 B, C, E
1st scan {C} 3
{D} 1
{E} 3
30 A, B, C, E {E} 3
40 B, E
C2 Itemset sup C2 Itemset
{A, B} 1
L2 Itemset sup 2nd scan {A, B}
{A, C} 2
{A, C} 2 {A, C}
{A, E} 1
{B, C} 2
{B, C} 2 {A, E}
{B, E} 3
{B, E} 3 {B, C}
{C, E} 2
{C, E} 2 {B, E}
{C, E}
C3 Itemset
3rd scan L3 Itemset sup
{B, C, E} {B, C, E} 2 25
13
THUẬT TOÁN APRIORI
3. Tạo tập ứng viên (k+1)- hạng mục
Hàm apriori_gen nhận Lk và trả về tập ứng viên
kích thước (k+1). Gồm 2 bước: kết và loại bỏ.
Giả sử các hạng mục trong Lk sắp xếp theo thứ tự.
Procedure apriori_gen (Lk : Tập phổ biến kích thước k)
for mỗi itemset l1 Lk
for mỗi itemset l2 Lk
if (l1 [1] = l2 [1]) (l1 [2] = l2 [2]) … (l1 [k-1] = l2 [k-1])
(l1 [k] < l2 [k]) then
{ c = l1 l2 ; // Bước 1 :kết Lk với chính nó
if has_infrequent_subset (c, Lk ) then
Xóa c ; // B2: Loại bỏ các ứng viên không có lợi
else Thêm c vào Ck+1 ;
}
return Ck+1 ; 27
14
VÍ DỤ TẠO TẬP ỨNG VIÊN
Giả sử L3 = {{1, 2, 3}, {1, 2, 4}, {1, 3, 4},
{1, 3, 5}, {2, 3, 4}}
Sau bước kết:
– C4 = {{1, 2, 3, 4}, {1, 3, 4, 5}}
Sau bước loại bỏ, còn:
– C4 = {{1, 2, 3, 4}}
vì {1, 4, 5} L3 nên {1, 3, 4, 5} bị loại
29
15
CÁC KỸ THUẬT CẢI TIẾN
THUẬT TOÁN APRIORI
Chia để trị : A. Savasere, E. Omiecinski, and S. Navathe. An
efficient algorithm for mining association in large databases.
VLDB’95
Chia CSDL thành các phân hoạch D1,D2,…,Dp
Tìm tập phố biến cục bộ trong từng phân hoạch và tổ hợp
Hàm băm (Hashing) : J. Park, M. Chen, and P. Yu. An effective
hash-based algorithm for mining association rules. SIGMOD’95
Băm các tập ứng viên k-hạng mục vào các giỏ
Tập ứng viên k-hạng mục tương ứng giỏ có độ phổ biến <minsupp sẽ
bị loại
Lấy mẫu : H. Toivonen. Sampling large databases for association
rules. VLDB’96
Chọn mẫu từ CSDL lớn và tìm tập phổ biến trên mẫu, kiểm tra bao
đóng của các hạng mục phổ biến
Giảm số lượng scan giao dịch: S. Brin R. Motwani, J. Ullman, S.
Tsur. Dynamic itemset counting and implication rules for market
basket data, SIGMOD’97
Sử dụng dàn (Lattice).
31
16
DHP: Reduce the Number of Candidates
17
BÀI TẬP (cá nhân)
Thời gian: 25’
Chỉ trình bày kết quả câu 1 Tid Items
(không cần ghi chi tiết các
100 M1, M2, M5
bước của câu 1) và chi tiết
câu 2, câu 3 vào giấy nộp 200 M2, M4
cho GV. 300 M2, M3
Cho CSDL giao dịch bên 400 M1, M2, M4
1. Sử dụng thuật toán Apriori để tìm 500 M1, M3
các tập phổ biến với minsupp =
22 % 600 M2, M3
2. Liệt kê các tập phổ biến tối đại và 700 M1, M3
tập phổ biến đóng. 800 M1, M2, M3,
3. Tìm tất cả các luật kết hợp thỏa M5
mãn 900 M1, M2, M3
a. Minconf = 50 %
35
b. Minconf = 70 %
36
18
BÀI TẬP PHẦN 1
1. Hãy tìm hiểu trong tài liệu tham khảo [2], [3]
và trình bày chi tiết một phương pháp cải tiến
quá trình tìm luật kết hợp từ tập phổ biến
(Bước 2 trong qui trình khai thác luật kết
hợp)? Giải thích vì sao nó hiệu quả hơn.
2. Tìm hiểu các phương pháp cải tiến thuật
toán Apriori. Trình bày chi tiết MỘT cải tiến
( ý tưởng, mã giả )
3. Áp dụng một trong các phương pháp cải
tiến đó vào bài tập 4.a. Nêu rõ đã cải tiến ở
phần nào .
37
19
TÀI LIỆU THAM KHẢO
1. R. Agrawal and R. Srikant. Fast algorithms
for mining association rules. VLDB'94, pp.
487-499, Santiago, Chile.
2. J.Han, M.Kamber, Chương 6 – Data mining:
Concepts and Techniques
3. P.-N. Tan, M. Steinbach, V. Kumar, Chương
6 - Introduction to Data Mining
http://www-users.cs.umn.edu/~kumar/dmbook/ch6.pdf
39
Q&A
40
20