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
Trang 2NỘ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 3GIỚ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
Trang 4KHÁ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 51. 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
Trang 6Tấ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 4 = {Milk}, X 5 ={Milk, Bread} →→X 4 và X 5 có phổ biến ?
VÍ DỤ 1
Minsupp = 60%
Trang 7minsupp=30%
TẬP PHỔ BIẾN của VD 1
14
KHÁI NIỆM CƠ BẢN
4 TẬP PHỔ BIẾN TỐI
ĐẠ 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
Tid Items
10 A,B,C,D,E
20 B,C,D,E,
30 A,C,D,F Minsupp=2
Trang 8KHÁI NIỆM CƠ BẢN
5. TẬP PHỔ BIẾN ĐÓNG
(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 ph bin ĐÓNG 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
phổ biến đóng
{A, B} - không phải tập phổ
biến tối đại
Minsupp=2
TID Items
10 a, b, c
20 a, b, c
30 a, b, d
40 a, b, d,
50 c, e, f
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 9VÍ DỤ LUẬT KẾT HỢP (VD1)
Ký hiệu : s – supp, α - conf
18
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
Trang 10Thời gian : 8’
Trình bày ý tưởng gii
quyt vn đ trc lp
trong vòng 3’
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%
Trs-id Items bought
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
T bài toán khai thác LKH chuyn thành bài toán khai thác tp ph bin : độ phức
tạp tính toán cao.
Trang 11Luậ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%
Transaction-id Items bought
10 A, B, C
40 B, E, F
Frequent Itemsets Support
{A, C} 50%
VÍ DỤ
22
NỘI DUNG
bin
Thut toán Apriori
Trang 12GIỚ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 (2002)
24
TÌM KIẾM THEO CHIỀU RỘNG
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 13CSDL D
1stscan
L 2
2
2ndscan
10 A, C, D
20 B, C, E
30 A, B, C, E
40 B, E
Itemset sup
{A} 2 {B} 3 {C} 3 {D} 1 {E} 3
Itemset sup
{A} 2 {B} 3 {C} 3 {E} 3
Itemset
{A, B} {A, C} {A, E} {B, C} {B, E} {C, E}
Itemset sup
{A, B} 1 {A, C} 2 {A, E} 1 {B, C} 2 {B, E} 3 {C, E} 2
Itemset sup
{A, C} 2
{B, C} 2
{B, E} 3
{C, E} 2
Itemset
{B, C, E} {B, C, E}Itemset sup2
26
THUẬT TOÁN APRIORI
2 Pseudo-Code
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
L 1 = Tìm_tập_phổ_biến_1_hạng mục(D);
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;
Trang 14THUẬ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
Procedure apriori_gen (L k : Tập phổ biến kích thước k)
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;
} returnCk+1 ;
28
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 15VÍ 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}}
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
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
Trang 16CÁ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
Loại bỏ các giao dịch không chứa bất kỳ tập phổ biến nào
32
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 17BÀI TẬP THEO NHÓM
Thời gian : 25’
Ch trình bày kt qu câu
1(không cn chi tit các bc
c!a câu 1) và câu 2, 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 phổ biến đóng
3 Tìm tất cả các luật kết hợp thỏa mãn
Nhóm :
b Minconf = 70%
Nhóm :
100 M1, M2, M5
400 M1, M2, M4
800 M1, M2, M3,
M5
900 M1, M2, M3
34
Qui định trình bày bài nộp
Bài tập nộp theo nhóm
Tên nhóm : (chỉ ghi tên các thành viên có tham gia)
– Thành viên 1:
– Thành viên 2:
– Thành viên 3:
– …
– Thành viên 7:
Nội dung :
Trang 18BÀ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ả )
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 phổ biến đóng
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ó
TID 100 200 300 400
Date 15/1/03 15/1/03 19/1/03 25/1/03
Items_bought
K, A, D, B, C, I
D, A, C, E, B
C, A, B, E, D
B, A, D, I, K
Trang 19TÀ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
CÁC CÔNG VIỆC CẦN LÀM
2 – 25/8/2008
kết hợp
Phần 2.
Trang 2039
... 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 phổ biến đóng
3 Tìm tất luật kết hợp thỏa mãn
Nhóm... data-page="18">
BÀI TẬP PHẦN
1 Hãy tìm hiểu tài liệu tham khảo [2][3] trình bày chi tiết phương pháp cải tiến trình tìm luật kết hợp từ tập phổ biến (Bước qui trình khai thác luật kết hợp) ?... 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