Khai thác chuỗi tuần tự
Trang 1KHAI THÁC
DỮ LIỆU &
ỨNG DỤNG
(DATA MINING)
GV : NGUYỄN HOÀNG TÚ ANH
2
BBBBÀÀÀÀI 4 I 4
KHAI THÁC
CHUỖI TUẦN TỰ
Trang 2NỘI DUNG
chuỗi tuần tự
GIỚI THIỆU
CSDL chuỗi thời gian (time-series DB) , CSDL chuỗi (sequence
DB)
Tập (mẫu) phổ biến → Mẫu tuần tự phổ biến (sequental pattern)
Chuỗi mặt hàng :
Mua máy tính, sau đó mua CD-ROM, sau đó mua máy camera
kỹ thuật số trong vòng 3 tháng
Chăm sóc bệnh nhân, tại họa tự nhiên (động đất), qui trình kỹ
thuật, thị trường và tiếp thị,…
Cuộc gọi điện thoại, Weblog
Chuỗi DNA và cấu trúc gen
Trang 3Tổ hợp của A,T,G,C Phần tử của chuỗi DNA
Chuỗi DNA
Chuỗi gen
Trang chủ, trang index , thông tin liên lạc, …
Tập các file đã xem ( sau khi nhắp chuột )
Hoạt động duyệt web của
người sử dụng
Dữ liệu Web
Sách, sổ tay, CD, … Tập các mặt hàng được
khách hàng mua vào thời điểm t
Quá trình mua hàng của
khách hàng
Khách hàng
Sự kiện (hạng mục)
Phần tử (giao dịch)
Chuỗi CSDL
chuỗi
Chuỗi
E1 E2
E1 E3 E2
E3 E4 E2
Phần tử
(Giao dịch)
Sự kiện (Hạng mục)
VÍ DỤ DỮ LIỆU CHUỖI
6
NỘI DUNG
chuỗi tuần tự
Trang 41. CHUỖI (Sequence)
Chuỗi là danh sách các phần tử ( giao dịch) có
thứ tự
Mỗi phần tử của chuỗi : tập các sự kiện (hạng
mục)
Các sự kiện trong một phần tử không có thứ tự
(thường viết theo bảng chữ cái)
Ký hiệu :
Chuỗi s = < s1s2… sn> với sjlà tập các sự kiện
sj- gọi là phần tử của chuỗi s và có dạng (x1x2 …
xm)với xjlà một sự kiện (hạng mục)
VD : < C (M,P) (S,T) > là một chuỗi có chiều dài =5 và
có 3 phần tử
KHÁI NIỆM CƠ BẢN
KHÁI NIỆM CƠ BẢN
CHUỖI (tt)
< b1 b2… bm> nếu :
∃ các số nguyên i 1 < i 2 <… <i n sao cho a 1 ⊆ bi 1 ,
a 2⊆bi 2 , … , a n ⊆bi n
< {2,4} {2,4} {2,5} >
< {1,2} {3,4} >
< {2,4} {3,5,6} {8} >
Chuỗi dữ liệu
Có
< {2} {4} >
Không
< {1} {2} >
Có
< {2} {3,5} >
Thuộc ? Chuỗi con
Trang 59 10
e, g
…
400
20
e, f
…
300
15 20 25 30
a, d c
b, c
a, e
200 200 200 200
10 15 20 25 30
a
a, b, c
a, c d
c, f
100 100 100 100 100
Ngày mua
Mã hàng Mã
KH
Cho CSDL D
Ví dụ :
KHÁI NIỆM CƠ BẢN
<eg(a,f)cbc>
400
<(e,f)(a,b)(d,f)c,b>
300
<(a,d)c(b,c)(a,e)>
200
<a(a,b,c)(a,c)d(c,f)>
100
Sequence SID
10
2. CSDL CHUỖI (tt)
Cho CSDL chuỗi D ={ d 1 , d 2 , …, d n }
Đ
Supp(s)= |{d i ∈D | s là chui con ca d i }| / |D|
Ví dụ :
s = <(a,b) c>
Supp(s) = 2/4 = 50%
s 1 = <c (a,b)>
s 2 = <c a>
s 3 = <a b c>
Supp(s 1 ) =?
Supp(s 2 ) =?
Supp(s 3 ) =?
KHÁI NIỆM CƠ BẢN
<eg(a,f)cbc>
400
<(e,f)( a,b )(d,f) c b>
300
<(a,d)c(b,c)(a,e)>
200
<a( a,b ,c)(a, c )d(c,f)>
100
Sequence SID
Trang 63. BÀI TOÁN KHAI THÁC CHUỖI TUẦN TỰ
Cho CSDL chuỗi và ngưỡng minsupp, cần
tìm toàn bộ các chuỗi con phổ biến thỏa
mãn minsupp đã cho.
KHÁI NIỆM CƠ BẢN
chuỗi tuần tự phổ biến
phải là chuỗi phổ biến ?
<eg(a,f)cbc>
400
<(e,f)( a,b )(d,f) c b>
300
<(a,d)c(b,c)(a,e)>
200
<a( a,b ,c)(a, c )d(c,f)>
100
Sequence SID
4 THÁCH THỨC
Tồn tại một số lượng lớn chuỗi tuần tự phổ
biến bị dấu trong CSDL
Thuật toán khai thác cần
Tìm toàn bộ các mẫu thỏa mãn ngưỡng
minsupp
Hiệu quả, co dãn, số lần duyệt CSDL nhỏ
Có thể kết hợp với nhiều loại ràng buộc của
người dùng.
KHÁI NIỆM CƠ BẢN
Trang 7Đị nh nghĩa khái niệm và thuật toán
giống thuật toán Apriori ( Apriori-All)
- 1995.
GSP – Phương pháp khai thác dựa
trên tính chất Apriori - 1996
Phương pháp phát triển mẫu :
PrefixSpan - 2001
KHÁI NIỆM CƠ BẢN
14
6 Tính chất cơ bản của chuỗi tuần tự
Tính cht Apriori :
Nếu S là chuỗi không phổ biến thì không có
chuỗi bao (super-sequence) nào của S là phổ
biến
Ví dụ : Trong CSDL dưới, nếu <hb> là chuỗi không phổ
biến→<hba>, <hab> và <(a,h)b> cũng không phổ biến
KHÁI NIỆM CƠ BẢN
<a(b,d)bcb(a,d,e)>
50
<(b,e)(c,e)d>
40
<(a,h)(b,f)abf>
30
<(b,f)(c,e)b(f,g)>
20
<(b,d)cb(a,c)>
10
Sequence Seq ID
minsupp = 2
Trang 8NỘI DUNG
chuỗi tuần tự
1. BẢN CHẤT
GSP : Generalized Sequential Pattern- Agrawal & Srikant,
EDBT’96
Duyệt CSDL để tìm các chuỗi phổ biến có độ dài 1.
For mỗi cấp ( chuỗi có độ dài k)
Tạo các chuỗi ứng viên có độ dài (k+1) từ các chuỗi
phổ biến chiều dài k (sử dụng Apriori)
Duyệt CSDL để đếm độ phổ biến của từng chuỗi ứng
viên và loại các ứng viên không thỏa mãn ngưỡng
minsupp
Lặp lại đến khi không còn chuỗi phổ biến hoặc không còn
ứng viên
THUẬT TOÁN GSP
Trang 9VÍ DỤ THUẬT TOÁN GSP
Các ng viên đu tiên C1 :
<a>, <b>, <c>, <d>, <e>, <f>, <g>, <h>
Duyệt CSDL để tính độ phổ biến của từng
ứng viên và tìm F1
-> F 1 = <a>, <b>, <c>, <d>, <e>, <f>
<a(b,d)bcb(a,d,e)>
50
<(b,e)(c,e)d>
40
<(a,h)(b,f)abf>
30
<(b,f)(c,e)b(f,g)>
20
<(b,d)cb(a,c)>
10
Sequence Seq ID
1
<h>
1
<g>
2
<f>
3
<e>
3
<d>
4
<c>
5
<b>
3
<a>
Sup Cand
C1
18
VÍ DỤ THUẬT TOÁN GSP
To các ng viên C2 : = phép kết
Các chuỗi chiều dài = 2 và có 2 phần tử
<ff>
<fe>
<fd>
<fc>
<fb>
<fa>
<f>
<ef>
<ee>
<ed>
<ec>
<eb>
<ea>
<e>
<df>
<de>
<dd>
<dc>
<db>
<da>
<d>
<cf>
<ce>
<cd>
<cc>
<cb>
<ca>
<c>
<bf>
<be>
<bd>
<bc>
<bb>
<ba>
<b>
<af>
<ae>
<ad>
<ac>
<ab>
<aa>
<a>
<f>
<e>
<d>
<c>
<b>
<a>
Trang 10VÍ DỤ THUẬT TOÁN GSP
To các ng viên C2 (tt)
Các chuỗi chiều dài = 2 và có 1 phần tử
Tổng cộng có 51 chuỗi ứng viên chiều dài =2
<f>
<(e,f)>
<e>
<(d,f)>
<(d,e)>
<d>
<(c,f)>
<(c,e)>
<(c,d)>
<c>
<(b,f)>
<(b,e)>
<(b,d)>
<(b,c)>
<b>
<(a,f)>
<(a,e)>
<(a,d)>
<(a,c)>
<(a,b)>
<a>
<f>
<e>
<d>
<c>
<b>
<a>
VÍ DỤ THUẬT TOÁN GSP
Xác đnh tp chui ph bin F 2
Duyệt CSDL và xác định độ phổ biến
của từng chuỗi ứng viên chiều dài = 2
19 chuỗi
Trang 11VÍ DỤ THUẬT TOÁN GSP
<ff>
<fe>
<fd>
<fc>
<fb>
<fa>
<f>
<ef>
<ee>
<ed>
<ec>
<eb>
<ea>
<e>
<df>
<de>
<dd>
<dc>
<db>
<da>
<d>
<cf>
<ce>
<cd>
<cc>
<cb>
<ca>
<c>
<bf>
<be>
<bd>
<bc>
<bb>
<ba>
<b>
<af>
1
<ae>
1
<ad>
1
<ac>
1
<ab>
2
<aa>
Supp=2
<a>
<f>
<e>
<d>
<c>
<b>
<a>
22
VÍ DỤ THUẬT TOÁN GSP
<f>
<(e,f)>
<e>
<(d,f)>
<(d,e)>
<d>
<(c,f)>
<(c,e)>
<(c,d)>
<c>
<(b,f)>
2
<(b,e)>
1
<(b,d)>
2
<(b,c)>
0
<b>
<(a,f)>
0
<(a,e)>
1
<(a,d)>
1
<(a,c)>
1
<(a,b)>
Supp=0
<a>
<f>
<e>
<d>
<c>
<b>
<a>
Trang 12VÍ DỤ THUẬT TOÁN GSP
To tp ng viên C 3
D ùng p hép kết : F2 với F2
Ví d : <ab>, <aa> và <ba> : chuỗi phổ biến
chiều dài = 2 <aaa>, <aba>, <aab>, <bab>,
<baa> - ứng viên chiều dài = 3
<(b,d)>, <bb> và <db> chuỗi phổ biến chiều
dài=2 <(b,d)b>, <b(b,d)>, <bbb>, <d(b,d)>,
<dbb>- ứng viên chiều dài = 3
Phép loại bỏ : dựa trên tính chất Apriori
Có 46 ứng viên chiều dài = 3
VÍ DỤ THUẬT TOÁN GSP
Tìm tp chui ph bin F3
Duyệt CSDL và xác định độ phổ biến
của từng chuỗi ứng viên chiều dài = 3
chuỗi
Trang 13VÍ DỤ THUẬT TOÁN GSP
1 st scan: 8 cand 6 length-1
seq pat.
2 nd scan: 51 cand 19 length-2
seq pat 10 cand not in DB at
all
3 rd scan: 46 cand 19 length-3
seq pat 20 cand not in DB at
all
4 th scan: 8 cand 6 length-4
seq pat
5 th scan: 1 cand 1 length-5
seq pat
<a(b,d)bcb(a,d,e)>
50
<(b,e)(c,e)d>
40
<(a,h)(b,f)abf>
30
<(b,f)(c,e)b(f,g)>
20
<(b,d)cb(a,c)>
10
Sequence Seq ID
minsupp =2
<a> <b> <c> <d> <e> <f> <g> <h>
<aa> <ab> … <af> <ba> <bb> … <ff> <(ab)> … <(ef)>
<abb> <aab> <aba> <baa> <bab> …
<abba> <(b,d)bc> …
<(b,d)cba> Supp(Cand.)< < minsupp
Cand ∉ ∉ CSDL
26
THUẬT TOÁN GSP
2. Pseudo-Code
Input : CSDL chuỗi D, minsupp
Output : F - các chuỗi tuần tự phổ biến trong D
C k : Tập chuỗi ứng viên chiều dài k
F k: Tập chuỗi phổ biến chiều dài k
F 1 = Tìm_chuỗi_phổ_biến_chiều dài 1(D); // có dạng <x>
for(k = 1; F k≠∅; k++) {
C k+1 = apriori_gen(L k );// Tạo tập chuỗi ứng viên chiều dài
(k+1)
if C k+1≠∅then
{ Duyệt CSDL để tính F k+1 = { s ∈C k+1| supp(s)≥
minsupp }
}
}
returnF = ∪ k F k;
Trang 14THUẬT TOÁN GSP
3. Tạo tập chuỗi ứng viên chiều dài (k+1)
Hàm apriori_gen nhận Fkvà trả vềtập chuỗi ứng viên chiều dài
(k+1).Gm 2 bưc : kt và ct b
Bưc kt :
Chui s 1 kt vi chui s 2 nu
Chui s 1 sau khi b bt đi 1 hng mc đu tiên thì
Chui s 2
Kt qu phép kt = chuỗi s 1 mở rộng thêm 1 hạng
mục cuối cùng của chuỗi s 2 Hng mc thêm này
1
Bưc ct b : loi các chui ng viên có cha các chui con
không ph bin
VÍ DỤ TẠO TẬP CHUỖI ỨNG VIÊN
Giả sử F3 = {<(1,2) 3>, <(1,2) 4>, <1(3,4)>,
<(1,3) 5>, <2 (3,4)>, <2 3 5>}
Sau bước kết :
C4 = {<(1,2) (3,4)>, <(1,2) 3 5>}
<(1,2) 4> không kết được với chuỗi nào khác vì
không tồn tại chuỗi có dạng <2 (4,x) > hoặc
<2 4 x>
C4 = {<(1,2) (3,4)>}
vì <1 3 5> ∉ F3 nên <(1,2) 3 5> bị loại
Trang 15BÀI TẬP XD TẬP CHUỖI ỨNG VIÊN
< {1} {2} {3} >
< {1} {2 5} >
< {1} {5} {3} >
< {2} {3} {4} >
< {2 5} {3} >
< {3} {4} {5} >
< {5} {3 4} >
chuỗi
F3
30
ĐÁP ÁN BÀI TẬP XD
TẬP CHUỖI ỨNG VIÊN
< {1} {2} {3} >
< {1} {2 5} >
< {1} {5} {3} >
< {2} {3} {4} >
< {2 5} {3} >
< {3} {4} {5} >
< {5} {3 4} >
F3
Trang 16HẠN CHẾ CỦA GSP
biệt chuỗi có chiều dài = 2)
-> Mt trong các cách gii quyt : PrefixSpan
(t đc trong tài liu tham kho)
BÀI TẬP TẠI LỚP
<a(b,d)bcb(a,d,e)>
50
<(b,e)(c,e)d>
40
<(a,h)(b,f)abf>
30
<(b,f)(c,e)b(f,g)>
20
<(b,d)cb(a,c)>
10
Sequence Seq ID
Trang 17ĐÁP ÁN BÀI TẬP TẠI LỚP
34
BÀI TẬP
và minsupp = 50%
Xác định tập chuỗi
phổ biến trên D
tưởng thuật toán
FP-Growth vào bài
toán tìm chuỗi phổ
biến không và như
25
d,g,h b,f a,g,h
40 40 40
10 a,b, f
30
15 20
a, b,f e
20 20
10 15 20 25
a, d
a, b, c
a, b,f a,c,d,f
10 10 10 10
Ngày mua
Mã hàng Mã
KH
Trang 18TÀI LIỆU THAM KHẢO
EDBT’96.
toán tìm tập phổ biến và chuỗi phổ biến
Chương trình một số thuật toán và phần mềm cơ
bản của các bài toán trong khai thác dữ liệu
...chuỗi tuần tự< /b>
1. BẢN CHẤT
GSP : Generalized Sequential Pattern- Agrawal & Srikant,
EDBT’96
Duyệt CSDL để tìm chuỗi phổ...
For cấp ( chuỗi có độ dài k)
Tạo chuỗi ứng viên có độ dài (k+1) từ chuỗi
phổ biến chiều dài k (sử dụng Apriori)
Duyệt CSDL để đếm độ phổ biến chuỗi ứng
viên... CSDL chuỗi D, minsupp
Output : F - chuỗi phổ biến D
C k : Tập chuỗi ứng viên chiều dài k
F k: Tập chuỗi