Tải bản đầy đủ (.pdf) (18 trang)

Bài giảng khai thác dữ liệu ứng dụng (data mining) bài 4 khai thác chuỗi tuần tự nguyễn hoàng tú oanh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (308.09 KB, 18 trang )

1
1
KHAI THÁC
DỮ LIỆU &
ỨNG DỤNG
(DATA MINING)
GV : NGUYỄN HOÀNG TÚ ANH
2
B
BB

ÀÀ
À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 bin ca chui s trên CSDL D là t l gia s
chui cha s trên tng s chui trong D
Supp(s)= |{d
i

∈ ∈

D | s là chui con ca 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 cht 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 dng tính cht Apriori đ ct bt 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

 To 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
 To 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 tp chui ph bin 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

 To tp 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 tp chui ph bin 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). Gm 2 bưc : kt và ct b
Bưc kt :
Chui s

1
kt vi chui s
2
nu
Chui s
1
sau khi b bt đi 1 hng mc đu tiên thì
ging như
Chui s
2
b bt 1 hng mc cui cùng
Kt qu phép kt = chuỗi s
1
mở rộng thêm 1 hạng
mục cuối cùng của chuỗi s
2
. Hng mc thêm này
có th to thành mt phn t mi trong s
1
nu nó
là phn t riêng bit thuc s
2
, ngưc li là mt
thành viên ca phn t cui cùng ca s
1
Bưc ct b : loi các chui ng viên có cha các chui con
không ph bin
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 hiu qu khi khai thác các chui dài
-> Mt trong các cách gii quyt : PrefixSpan
(t đc trong tài liu tham kho)
32

BÀI TẬP TẠI LỚP
 Thời gian : 10’
 Cho CSDL chuỗi và minsupp = 4
 Tìm các tp ng viên và tp chui ph bi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
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

×