Bai 3-P1-2014

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

KHAI THÁC

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

2. Các khái niệm cơ bản


3. Bài toán khai thác tập phổ biến

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}

KHÁI NIỆM CƠ BẢN


TID Products TID A B C D E
1 A, B, E 1 1 1 0 0 1
2 B, D 2 0 1 0 1 0
3 B, C 3 0 1 1 0 0
4 A, B, D 4 1 1 0 1 0
5 A, C 5 1 0 1 0 0
6 B, C Biến đổi CSDL về 6 0 1 1 0 0
7 A, C dạng nhị phân 7 1 0 1 0 0
8 A, B, C, E 8 1 1 1 0 1
9 A, B, C 9 1 1 1 0 0

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

KHÁI NIỆM CƠ BẢN


2. ĐỘ PHỔ BIẾN VÀ TẬP PHỔ BIẾN
Giao dịch t chứa X nếu X là tập các hạng mục trong I
và X  t
VD : X = { bánh mì, sữa chua}
Độ phổ biến (supp) của tập các hạng mục
X trong CSDL D là tỷ lệ giữa số các giao
dịch chứa X trên tổng số các giao dịch
trong D
Supp(X) = count(X) / | D |
Tập các hạng mục phổ biến S hay tập phổ biến
(frequent itemsets) là tập các hạng mục có độ phổ
biến thỏa mãn độ phổ biến tối thiểu minsupp (do
người dùng xác định)
10
Nếu supp(S)  minsupp thì S - tập phổ biến .

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%

I = { Beer, Bread, Jelly, Milk, PeanutButter}


X= {Bread,PeanutButter} ; Count(X) = 3 và |D| = 5
 supp(X) = 60% X- tập phổ biến
X2 = {Bread}  supp(X2) = ?
X3 = {PeanutButter}  supp(X3) = ?; X2 và X3 có phổ biến ?

X4 = {Milk}, X5={Milk, Bread}  X4 và X5 có phổ biến ? 12

6
TẬP PHỔ BIẾN của VD 1

minsupp=30%
13

KHÁI NIỆM CƠ BẢN


4. TẬP PHỔ BIẾN TỐI
ĐẠI (Max-Pattern)
Tập phổ biến & không Tid Items
tồn tại tập nào bao nó 10 A,B,C,D,E
là phổ biến (Bayardo –
20 B,C,D,E,
SIGMOD’98)
{B, C, D, E}, {A, C, D} - 30 A,C,D,F
tập phổ biến tối đại
{B, C, D} - không phải tập Minsupp=2
phổ biến tối đại
14

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

KHÁI NIỆM CƠ BẢN


6. LUẬT KẾT HỢP( Association rule)
LKH có dạng:
X  Y, với X, Y  I, và X Y ={}
Ý nghĩa: khi X có mặt thì Y cũng có mặt (với xác suất
nào đó).
LKH thường được đánh giá dựa trên 2 độ đo:
Độ phổ biến (support): supp (X  Y ) =P (X  Y)
supp (X  Y ) = supp(XY)
Độ tin cậy (confidence): conf (X  Y ) = P(Y | X)
conf (X  Y ) = supp(XY) / supp(X)

16

8
VÍ DỤ LUẬT KẾT HỢP (VD1)

Ký hiệu: s – supp, α - conf 17

KHÁI NIỆM CƠ BẢN


7. MÔ TẢ BÀI TOÁN KHAI THÁC LKH
Cho độ phổ biến tối thiểu (minsupp) và độ tin
cậy tối thiểu (minconf) do người dùng xác định.
Cho tập các hạng mục I={i1,i2,…,im} và CSDL
giao dịch D={t1,t2, …, tn}, với ti={ii1,ii2, …, iik} và iij
 I.
Bài toán khai thác LKH là bài toán tìm tất cả
các luật dạng X  Y (X, Y  I và X Y = {})
thỏa mãn độ phổ biến và độ tin cậy tối thiểu
supp (X  Y )  minsupp
conf (X  Y )  minconf
18

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

KHÁI NIỆM CƠ BẢN


8. QUI TRÌNH KHAI THÁC LKH
Bước 1: Tìm tất cả các tập phổ biến (theo
ngưỡng minsupp).
Bước 2: Xây dựng luật từ các tập phổ biến
Đối với mỗi tập phổ biến S, tạo ra tất cả các tập
con khác rỗng của S.
Đối với mỗi tập con khác rỗng A của S,
o Luật A  (S - A) là LKH cần tìm nếu :
 conf (A  (S - A)) = supp(S) / supp(A)  minconf
 Từ bài toán khai thác LKH chuyển thành
bài toán khai thác tập phổ biến: độ phức
tạp tính toán cao. 20

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

TÌM KIẾM THEO CHIỀU RỘNG


1. BẢN CHẤT
Nguyên tắc loại bỏ Apriori: Nếu không phải là
tập phổ biến thì tập bao nó cũng không phổ
biến.
Phương pháp:
Tìm tất cả các tập phổ biến 1- hạng mục.
Tạo các tập ứng viên kích thước k-hạng mục (k -
candidate itemset) từ các tập phổ biến có kích
thước (k-1)-hạng mục.
Kiểm tra độ phổ biến của các ứng viên trên
CSDL và loại các ứng viên không phổ biến.
Dừng khi không tạo được tập phổ biến hay
tập ứng viên. 24

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

THUẬT TOÁN APRIORI


2. Pseudo-Code
Input: CSDL D, minsupp
Output: L: các tập phổ biến trong D
Ck : Tập ứng viên kích thước k
Lk : Tập phổ biến kích thước k
L1 = Tìm_tập_phổ_biến_1_hạng mục(D);
for (k = 1; Lk ; k++) {
Ck+1 = apriori_gen(Lk); // Tạo tập ứng viên (k+1) hạng mục
for mỗi giao tác t  D { // Duyệt CSDL để tính support
Ct = subset(Ck+1, t); // Lấy ra tập con của t là ứng viên
for mỗi ứng viên c  Ct
c.count ++
}
Lk+1 = { c  Ck+1 | c.count  minsupp }
}
return L = k Lk; 26

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

THUẬT TOÁN APRIORI


Tạo tập ứng viên (k+1)- hạng mục (tt)
Bước 2: loại bỏ để giảm Ck+1
Procedure has_infrequent_subset (c: Tập
ứng viên kích thước k+1, Lk : Tập phổ biến
kích thước k)
for mỗi k-subset s  c
if s Lk then
return True ;
return False ;
28

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

CÁC THÁCH THỨC CỦA TT APRIORI


Thách thức:
Phải duyệt CSDL nhiều lần.
Số lượng tập ứng viên rất lớn.
Thực hiện việc tính độ phổ biến nhiều, đơn
điệu.
Cải tiến Apriori: ý tưởng chung
Giảm số lần duyệt CSDL.
Giảm số lượng tập ứng viên.
Qui trình tính độ phổ biến thuận tiện hơn.
30

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

Partition: Scan Database Only Twice

 Any itemset that is potentially frequent in DB must be


frequent in at least one of the partitions of DB
– Scan 1: partition database and find local frequent
patterns
– Scan 2: consolidate global frequent patterns
 A. Savasere, E. Omiecinski and S. Navathe, VLDB’95

DB1 + DB2 + + DBk = DB


sup1(i) < σDB1 sup2(i) < σDB2 supk(i) < σDBk sup(i) < σDB

16
DHP: Reduce the Number of Candidates

 A k-itemset whose corresponding hashing bucket count is below the


threshold cannot be frequent
count itemsets
– Candidates: a, b, c, d, e
35 {ab, ad, ae}
– Hash entries 88 {bd, be, de}

• {ab, ad, ae} . .


.
• {bd, be, de}
.
. .
• …
102 {yz, qs, wt}
– Frequent 1-itemset: a, b, d, e Hash Table
– ab is not a candidate 2-itemset if the sum of count of {ab, ad, ae}
is below support threshold
 J. Park, M. Chen, and P. Yu. An effective hash-based algorithm for
mining association rules. SIGMOD’95 33

Sampling for Frequent Patterns

 Select a sample of original database, mine frequent


patterns within sample using Apriori
 Scan database once to verify frequent itemsets found
in sample, only borders of closure of frequent
patterns are checked
– Example: check abcd instead of ab, ac, …, etc.
 Scan database again to find missed frequent patterns
 H. Toivonen. Sampling large databases for
association rules. In VLDB’96
34

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 %

CÁC CÔNG VIỆC CẦN LÀM


Chuẩn bị bài 3: Khai thác tập phổ biến và luật
kết hợp – P2
– Xem nội dung bài 3 – Phần 2.
– Chuẩn bị BT nhóm Bài 3 – Phần 2
– Cách thực hiện :
• Đọc slide, xem các ví dụ.
• Tham khảo trên Internet và tài liệu tham
khảo.

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

BÀI TẬP PHẦN 1


4. Cho CSDL sau và minsupp=50%, minconf=80%
TID Date Items_bought
100 15/1/03 K, A, D, B, C, I
200 15/1/03 D, A, C, E, B
300 19/1/03 C, A, B, E, D
400 25/1/03 B, A, D, I, K
a) Sử dụng thuật toán Apriori để tìm tất cả các tập phổ
biến, tập phổ biến tối đại, tập phổ biến đóng.
b) Tìm tất cả LKH thỏa mãn ngưỡng minconf đã cho
c) Ứng dụng cải tiến của câu 1 vào việc tìm các LKH
thỏa mãn ngưỡng minconf. So sánh hiệu quả về
thời gian thực hiện với kết quả ở câu b).
d) Liệt kê LKH thỏa mãn ngưỡng đã cho và có dạng
(item1  item2)  item3 kèm theo supp, conf của nó.
38

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

You might also like