1
1
KHAI THÁC
DỮ LIỆU &
ỨNG DỤNG
(DATA MINING)
GV : NGUYỄN HOÀNG TÚ ANH
2
B
BB
BÀ
ÀÀ
ÀI 4
I 4I 4
I 4
KHAI THÁC
CHUỖI TUẦN TỰ
2
3
NỘI DUNG
1. Giới thiệu
2. Khái niệm cơ bản
3. Thuật toán GSP khai thác
chuỗi tuần tự
4
GIỚI THIỆU
Thứ tự (theo thời gian): quan trọng
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)
Ứng dụng của khai thác mẫu tuần tự
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
3
5
Tổ hợp của A,T,G,CPhần tử của chuỗi DNAChuỗi DNAChuỗ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ỗiCSDL
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
1. Giới thiệu
2. Khái niệm cơ bản
3. Thuật toán GSP khai thác
chuỗi tuần tự
4
7
1. 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 = < s
1
s
2
… s
n
> với s
j
là tập các sự kiện.
s
j
- gọi là phần tử của chuỗi s và có dạng (x
1
x
2
…
x
m
) với x
j
là 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
8
KHÁI NIỆM CƠ BẢN
CHUỖI (tt)
Chuỗi s
i
= < a
1
a
2
… a
n
> là chuỗi con của chuỗi s
j
=
< b
1
b
2
… b
m
> nếu :
n ≤
≤≤
≤ m
∃
∃∃
∃ 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
5
9
10e, g
…
400
20e, 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àngMã
KH
2. CSDL CHUỖI
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
SequenceSID
10
2. CSDL CHUỖI (tt)
Cho CSDL chuỗi D ={ d
1
, d
2
, …, d
n
}
Đ ph bin ca chui s trên CSDL D là t l gia s
chui cha s trên tng s chui trong D
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)cb>300
<(a,d)c(b,c)(a,e)>200
<a(a,b,c)(a,c)d(c,f)>100
SequenceSID
6
11
3. 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.
Ví dụ : CSDL chuỗi D và minsupp = 50% = 2/4
KHÁI NIỆM CƠ BẢN
• Chuỗi con s = <(a,b) c> là
chuỗi tuần tự phổ biến
• Các chuỗi s
1
= <c (a,b)>,
s
2
= <c a>, s
3
= <a b c> có
phải là chuỗi phổ biến ?
<eg(a,f)cbc>400
<(e,f)(a,b)(d,f)cb>300
<(a,d)c(b,c)(a,e)>200
<a(a,b,c)(a,c)d(c,f)>100
SequenceSID
12
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
7
13
5. NGHIÊN CỨU
Đị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
SequenceSeq. ID
minsupp = 2
8
15
NỘI DUNG
1. Giới thiệu
2. Khái niệm cơ bản
3. Thuật toán GSP khai thác
chuỗi tuần tự
16
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
S dng tính cht Apriori đ ct bt ng viên
THUẬT TOÁN GSP
9
17
VÍ DỤ THUẬT TOÁN GSP
Các ng viên đu tiên C
1
:
<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 F
1
-> 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
SequenceSeq. ID
minsupp
=2
1<h>
1<g>
2<f>
3<e>
3<d>
4<c>
5<b>
3<a>
SupCand
C
1
18
VÍ DỤ THUẬT TOÁN GSP
To các ng viên C
2
: = 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>
10
19
VÍ DỤ THUẬT TOÁN GSP
To các ng viên C
2
(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>
20
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
Có 19 ứng viên có độ phổ biến
≥ minsupp (=2)
> Tập chuỗi phổ biến F
2
gồm có
19 chuỗi
11
21
VÍ 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>
12
23
VÍ DỤ THUẬT TOÁN GSP
To tp ng viên C
3
Dùng phép kết : F
2
với F
2
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
24
VÍ DỤ THUẬT TOÁN GSP
Tìm tp chui ph bin F
3
Duyệt CSDL và xác định độ phổ biến
của từng chuỗi ứng viên chiều dài = 3
Có 19 ứng viên có độ phổ biến
≥ minsupp
> Tập chuỗi phổ biến F
3
gồm 19
chuỗi
13
25
VÍ 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
SequenceSeq. 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 }
}
}
return F = ∪
k
F
k
;
14
27
THUẬ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 F
k
và 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ì
ging như
Chui s
2
b bt 1 hng mc cui cùng
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
có th to thành mt phn t mi trong s
1
nu nó
là phn t riêng bit thuc s
2
, ngưc li là mt
thành viên ca phn t cui cùng ca s
1
Bưc ct b : loi các chui ng viên có cha các chui con
không ph bin
28
VÍ DỤ TẠO TẬP CHUỖI ỨNG VIÊN
Giả sử F
3
= {<(1,2) 3>, <(1,2) 4>, <1(3,4)>,
<(1,3) 5>, <2 (3,4)>, <2 3 5>}
Sau bước kết :
C
4
= {<(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>
Sau bước loại bớt :
C
4
= {<(1,2) (3,4)>}
vì <1 3 5> ∉ F
3
nên <(1,2) 3 5> bị loại
15
29
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} >
• Thời gian : 7’
• Giả sử F
3
là tập gồm 7
chuỗi
• Xác định tập ứng viên C
4
• Trình bày kết quả trước lớp
F
3
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} >
F
3
16
31
HẠN CHẾ CỦA GSP
Số lượng khổng lồ tập chuỗi ứng viên (đặc
biệt chuỗi có chiều dài = 2)
Duyệt CSDL nhiều lần
Không hiu qu khi khai thác các chui dài
-> Mt trong các cách gii quyt : PrefixSpan
(t đc trong tài liu tham kho)
32
BÀI TẬP TẠI LỚP
Thời gian : 10’
Cho CSDL chuỗi và minsupp = 4
Tìm các tp ng viên và tp chui ph bin
<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
SequenceSeq. ID
17
33
ĐÁP ÁN BÀI TẬP TẠI LỚP
34
BÀI TẬP
1. Cho CSDL chuỗi D
và minsupp = 50%.
Xác định tập chuỗi
phổ biến trên D .
2. Có thể áp dụng ý
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ư
thế nào ?
10
20
25
d,g,h
b,f
a,g,h
40
40
40
10a,b, f30
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àngMã
KH
18
35
TÀI LIỆU THAM KHẢO
1. R. Srikant, R. Agrawal . Mining sequential patterns :
Generalizations and perfomance improvements.
EDBT’96.
2. J. Han J. Pei. Pattern Growth Methods for
Sequential Pattern Mining : Principles and
Extensions, ACM SIGKDD 2001, USA.
3. : Demo một số thuật
toán tìm tập phổ biến và chuỗi phổ biến
4. http://www-
users.cs.umn.edu/~kumar/dmbook/resources.htm :
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
36
Q & A