Khai thác tập phổ biến và luật kết hợp
Trang 1KHAI THÁC
DỮ LIỆU &
ỨNG DỤNG
(DATA MINING)
GV : NGUYỄN HOÀNG TÚ ANH
2
BÀI 3- PHẦN 1 KHAI THÁC TẬP PHỔ BIẾN &
LUẬT KẾT HỢP
3
NỘI DUNG
4
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 dịch bán hàng, Web log, chuỗi DNA, …
Trang 2GIỚ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
– …
6
NỘI DUNG
1 Giới thiệu
7
KHÁI NIỆM CƠ BẢN
1. CSDL GIAO DỊCH
(Transaction DB)
VD giỏ mua hàng:
o Giỏ 1: {Bánh mì,
Trứng, Sữa}
o Giỏ 2: {Bánh mì,
Đường}
…
o Giỏ n: {Bánh qui, ngũ
cốc, sữa}
TID Produces
1 MILK, BREAD, EGGS
2 BREAD, SUGAR
3 BREAD, CEREAL
4 MILK, BREAD, SUGAR
5 MILK, CEREAL
6 BREAD, CEREAL
7 MILK, CEREAL
8 MILK, BREAD, CEREAL,
EGGS
9 MILK, BREAD, CEREAL
8
KHÁI NIỆM CƠ BẢN
TID A B C D E
1 1 1 0 0 1
2 0 1 0 1 0
3 0 1 1 0 0
4 1 1 0 1 0
5 1 0 1 0 0
6 0 1 1 0 0
7 1 0 1 0 0
8 1 1 1 0 1
9 1 1 1 0 0
TID Products
1 A, B, E
2 B, D
3 B, C
4 A, B, D
5 A, C
6 B, C
7 A, C
8 A, B, C, E
9 A, B, C
ITEMS:
A = milk B= bread C= cereal D= sugar E= eggs
Biến đổi CSDL về dạng nhị phân
Trang 31. 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, …, i m} :
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 = {t 1 ,t 2 , …, t n } , ti={ii1,ii2, …, iik} với i ij∈I : CSDL
giao dịch
KHÁI NIỆM CƠ BẢN
10
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)
Nếu supp(S) ≥≥minsupp thì S - tập phổ biến
KHÁI NIỆM CƠ BẢN
11
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 ?
Nu tp con không ph bin thì tp
bao nó (tp cha) có ph bin hay
không ?
KHÁI NIỆM CƠ BẢN
12
I = { Beer, Bread, Jelly, Milk, PeanutButter}
X= {Bread,PeanutButter} ; Count(X) = 3 và |D| = 5
→supp(X) = 60%→→X- tập phổ biến
X 2 = {Bread} →→supp(X 2 ) = ?
X 3 = { PeanutButter } →→supp(X 3 ) = ?; X 2 và X 3 có phổ biến ?
X 3 = {Milk}, X 4 ={Milk, Bread} →→X 3 và X 4 có phổ biến ?
VÍ DỤ 1
Minsupp = 60%
Trang 4minsupp=30%
TẬP PHỔ BIẾN của VD 1
14
KHÁI NIỆM CƠ BẢN
ĐẠ I (Max-Pattern)
T p ph bin & không tn t i tp nào bao nó
là ph bin (Bayardo – SIGMOD’98)
{B, C, D, E}, {A, C,
D}-tập phổ biến tối đại {B, C, D}- không phải tập phổ biến tối đại
A,C,D,F 30
B,C,D,E, 20
A,B,C,D,E 10
Items Tid
Minsupp=2
15
KHÁI NIỆM CƠ BẢN
5. TẬP BAO PHỔ BIẾN
(Closed Pattern)
Tp ph bin & không tn t i
tp nào bao nó có cùng đ
ph bin nh nó (Pasquier,
ICDT’99)
Tp bao ph bin là trng hp
nén các tp ph bin (có mt
thông tin)
{A, B}, {A, B, D}, {A,B, C} - tập
bao phổ biến
{A, B} - không phải tập phổ
biến tối đại
Minsupp=2
c, e, f 50
a, b, d, 40
a, b, d 30
a, b, c 20
a, b, c 10
Items TID
16
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 thng đượ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)
KHÁI NIỆM CƠ BẢN
Trang 5VÍ DỤ LUẬT KẾT HỢP (VD1)
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 tt 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
KHÁI NIỆM CƠ BẢN
19
Thời gian : 7’
Trình bày ý tưởng gii
quyt vn đ trc lp
trong vòng 3’/nhóm
Tình huống :
– Cho CSDL bên với các
giá trị minsupp =50 % và
minconf = 60%
– Tìm tt c các lut kt
hp tha mãn minsupp
và minconf
– Nhận xét ?
Minsupp = 50%
Minconf = 60%
A, E 40
D, B, F 30
A, B, C 20
B, C 10
Items bought Trs-id
Bài tập theo nhóm
20
KHÁI NIỆM CƠ BẢN
8 QUI TRÌNH KHAI THÁC LKH
B1 : Tìm tất cả các tập phổ biến ( theo ngưỡng minsupp)
B2 : Tạo ra các 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
bài toán khai thác tp ph bin : độ phức
tạp tính toán cao.
Trang 6Luậ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)
Minsupp = 50%
Minconf = 80%
B, E, F
40
A, D
30
A, C
20
A, B, C
10
Items bought
Transaction-id
50%
{A, C}
50%
{C}
50%
{B}
75%
{A}
Support Frequent Itemsets
VÍ DỤ
22
NỘI DUNG
1 Giới thiệu
bin
Thut toán Apriori
23
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
Bài toán khai thác tp ph bin là bài toán tìm tt
c các tp các h ng mc S (hay tp ph bin S)
có đ ph bin tha mãn đ ph bin ti thiu
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
(1994)
Phát triển mẫu : Thuật toán FP-Growth (2000)
Tìm kiếm trên CSDL dạng dọc : Thuật toán Charm
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 khạ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
Trang 7CSDL D
1stscan
2
2ndscan
B, E
40
A, B, C, E
30
B, C, E
20
A, C, D
10
Items
Tid
1 {D}
3 {E}
3 {C}
3 {B}
2 {A}
sup Itemset
3 {E}
3 {C}
3 {B}
2 {A}
sup Itemset
{C, E}
{B, E}
{B, C}
{A, E}
{A, C}
{A, B}
Itemset
1 {A, B}
2 {A, C}
1 {A, E}
2 {B, C}
3 {B, E}
2 {C, E}
sup Itemset
2
{A, C}
2
{B, C}
3
{B, E}
2
{C, E}
sup
Itemset
{B, C, E}
Itemset
2 {B, C, E}
sup Itemset
26
THUẬT TOÁN APRIORI
Input : CSDL D, minsupp
Output : L : các tập phổ biến trong D
C k : Tập ứng viên kích thước k
L k: Tập phổ biến kích thước k
for(k = 1; L k≠∅; k++) {
C k+1 = apriori_gen(L k ); // 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
C t = subset(C k+1 , t); // Lấy ra tập con của t là ứng viên
for mỗi ứng viên c ∈ C t
c.count ++
}
L k+1 = { c ∈ C k+1 | c.count ≥ minsupp }
}
returnL = ∪ k L k;
27
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 L k và trả về tập ứng viên
kích thước (k+1).Gm 2 bc : kt và lo i b
Gi s các h ng mc trong L k sp xp theo th t
formỗi itemset l 1∈L k
formỗi itemset l 2∈L k
if (l 1 [1] = l 2 [1]) ∧ (l 1 [2] = l 2 [2]) ∧ …∧ (l 1 [k-1] = l 2 [k-1]) ∧
(l 1 [k] < l 2 [k]) then
{ c = l 1 l 2; // Bước 1 :kết L k với chính nó
if has_infrequent_subset (c, L k ) then
Xóa c ; // B2 : Loại bỏ các ứng viên không có lợi
else Thêm c vào C k+1;
}
THUẬT TOÁN APRIORI
Tạo tập ứng viên (k+1)- hạng mục (tt)
Bc 2 : lo i b đ gim C k+1
ứ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 ;
Trang 8VÍ 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}}
– C4= {{1, 2, 3, 4}, {1, 3, 4, 5}}
– C4= {{1, 2, 3, 4}}
vì {1, 4, 5} ∉ L3nên {1, 3, 4, 5} bị loại
30
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
31
CÁC KỸ THUẬT CẢI TIẾN
THUẬT TOÁN APRIORI
T tìm hiu trong tài liu tham kho
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 D 1 ,D 2 ,…,D p
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
CSDL lớn
Chọn mẫu từ CSDL 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 giao dịch : R Agrawal and R Srikant Fast
algorithms for mining association rules VLDB'94
THUẬT TOÁN APRIORI -TID
BẢN CHẤT
Tương tự như thuật toán Apriori, sử dùng hàm apriori_gen để tạo ứng viên.
Cải tiến theo hướng giảm số lượng giao dịch
TT Apriori_Tid không tính độ phổ biến của các tập hạng mục từ các mẫu tin của CSDL mà xây dựng cấu trúc lưu trữ mới Ck cho CSDL ban đầu
Mỗi mẫu tin trong Ck có dạng <Tid, {Xk}> với Xk là tập phổ biến k- hạng mục xuất hiện trong giao dịch có mã Tid.
Nếu một giao dịch không chứa bất kỳ một tập phổ biến k hạng mục thì giao dịch này không được đưa vào C k .
Trang 9BÀI TẬP THEO NHÓM
Thời gian : 30’
Trình bày kt qu câu 2 và câu
3 vào giy np theo nhóm cho
GV.
Cho CSDL giao dịch bên
1 Sử dụng thut toán Apriori đểtìm
các tập phổ biến với minsupp = 22
%
2 Liệt kê các tập phổ biến tối đại và
tập bao phổ biến
3 Tìm tất cả các luật kết hợp thỏa mãn
a Minconf = 50 %
Nhóm :
b Minconf = 70%
Nhóm :
M1, M2, M3 900
M1, M2, M3, M5 800
M1, M3 700
M2, M3 600
M1, M3 500
M1, M2, M4 400
M2, M3 300
M2, M4 200
M1, M2, M5 100
Items Tid
34
Qui định trình bày bài nộp
Bài tập nộp theo nhóm
Ngày nộp :
Tên nhóm : (chỉ ghi tên các thành viên có mặt)
– Thành viên 1:
– Thành viên 2:
– ….
– Thành viên 12:
Nội dung :
35
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
36
BÀI TẬP PHẦN 1
4 Cho CSDL sau và minsupp=50%, minconf=80%
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 bao phổ biến
b) Tìm tất cả LKH thỏa mãn ngưỡng minconf đã cho
c) ng dng ci tin c a câu 1 vào vic tìm các LKH tha mãn ng!ng minconf So sánh hiu qu v
thi gian thc hin vi kt 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ó
Items_bought
K, A, D, B, C, I
D, A, C, E, B
C, A, B, E, D
B, A, D, I
Date 15/1/03 15/1/03 19/1/03 25/1/03
TID 100 200 300 400
Trang 10TÀI LIỆU THAM KHẢO
1 R Agrawal and R Srikant Fast algorithms
for mining association rules VLDB'94
487-499, Santiago, Chile.
2 J.Han, M.Kamber, Chương 6 – Data mining
: Concepts and Techniques
http://www.cs.sfu.ca/~han/dmbook
http://www-faculty.cs.uiuc.edu/~hanj/bk2/slidesindex.html : 2 nd
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
38
Q & A A
... Apriori đểtìmcác tập phổ biến với minsupp = 22
%
2 Liệt kê tập phổ biến tối đại
tập bao phổ biến
3 Tìm tất luật kết hợp thỏa mãn
a... itemset) từ tập phổ biến có kích thước (k-1)-hạng mục
Kiểm tra độ phổ biến ứng viên CSDL loại ứng viên không phổ biến< /b>
Dừng không tạo tập phổ biến hay tập ứng viên...
B2 : Tạo luật từ tập phổ biến< /i>
Đối với tập phổ biến S, tạo tất tập
con khác rỗng S
Đối với tập khác rỗng A S,
o Luật A ⇒⇒(S