Khai

18

Click here to load reader

Transcript of Khai

Page 1: Khai

1

1

KHAI THÁC

DỮ LIỆU &

ỨNG DỤNG

(DATA MINING)GV : NGUYỄN HOÀNG TÚ ANH

2

BBBBÀÀÀÀI 4I 4I 4I 4

KHAI THÁC CHUỖI TUẦN TỰ

Page 2: Khai

2

3

NỘI DUNG

1. Giới thiệu2. Khái niệm cơ bản3. 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

Page 3: Khai

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

E1E2

E1E3 E2 E3

E4E2

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ản3. Thuật toán GSP khai thác

chuỗi tuần tự

Page 4: Khai

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ạngmụ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 = < s1 s2 … sn > với sj là 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 xj 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 si = < a1 a2 … an > là chuỗi con của chuỗi sj =

< b1 b2 … bm > nếu :

� n ≤≤≤≤ m� ∃∃∃∃ các số nguyên i1 < i2 <… <in sao cho a1 ⊆⊆⊆⊆ bi1 ,

a2 ⊆⊆⊆⊆ bi2 , … , an ⊆⊆⊆⊆ bin

< {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

Page 5: Khai

5

910e, 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

aa, b, c

a, c

d

c, f

100

100

100

100

100

Ngày

mua

Mã hàngMã

KH2. 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 ={ d1, d2, …, dn}

Đ� ph� bi�n c�a chu�i s trên CSDL D là t� l� gia schu�i ch�a s trên t�ng s chu�i trong D

Supp(s)= |{di ∈ ∈ ∈ ∈ D | s là chu�i con c�a di }| / |D| Ví dụ :

s = <(a,b) c> Supp(s) = 2/4 = 50%s1 = <c (a,b)> s2 = <c a>s3 = <a b c>

Supp(s1) =?Supp(s2) =?

Supp(s3) =?

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

Page 6: Khai

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 s1 = <c (a,b)>, s2 = <c a>, s3 = <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ưỡngminsupp

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ủangười dùng.

KHÁI NIỆM CƠ BẢN

Page 7: Khai

7

13

5. NGHIÊN CỨU

Định nghĩa khái niệm và thuật toángiống thuật toán Apriori ( Apriori-All) - 1995.

GSP – Phương pháp khai thác dựatrê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

Page 8: Khai

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ácchuỗi tuần tự

16

1. BẢN CHẤTGSP : 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ỗiphổ biến chiều dài k (sử dụng Apriori)

Duyệt CSDL để đếm độ phổ biến của từng chuỗi ứngviê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

Page 9: Khai

9

17

VÍ 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

-> F1 = <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>

SupCandC1

18

VÍ DỤ THUẬT TOÁN GSP� T�o 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>

Page 10: Khai

10

19

VÍ DỤ THUẬT TOÁN GSP� T�o 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>

20

VÍ DỤ THUẬT TOÁN GSP

� Xác đ�nh t�p chu�i ph� bi�n F2

� Duyệt CSDL và xác định độ phổ biếncủ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 F2 gồm có19 chuỗi

Page 11: Khai

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>

Page 12: Khai

12

23

VÍ DỤ THUẬT TOÁN GSP

� T�o t�p �ng viên C3

� Dùng phép kết : F2 với F2

� Ví d� : <ab>, <aa> và <ba> : chuỗi phổ biếnchiề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 F3

� Duyệt CSDL và xác định độ phổ biếncủ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 F3 gồm 19 chuỗi

Page 13: Khai

13

25

VÍ DỤ THUẬT TOÁN GSP

1st scan: 8 cand. 6 length-1 seq. pat.

2nd scan: 51 cand. 19 length-2 seq. pat. 10 cand. not in DB at all

3rd scan: 46 cand. 19 length-3 seq. pat. 20 cand. not in DB at all

4th scan: 8 cand. 6 length-4 seq. pat.

5th 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 GSP2. Pseudo-Code

Input : CSDL chuỗi D, minsupp

Output : F - các chuỗi tuần tự phổ biến trong D

Ck : Tập chuỗi ứng viên chiều dài kFk : Tập chuỗi phổ biến chiều dài kF1 = Tìm_chuỗi_phổ_biến_chiều dài 1(D); // có dạng <x>for (k = 1; Fk ≠∅; k++) {

Ck+1 = apriori_gen(Lk); // Tạo tập chuỗi ứng viên chiều dài (k+1)

if Ck+1 ≠∅ then

{ Duyệt CSDL để tính Fk+1 = { s ∈ Ck+1 | supp(s)≥minsupp }

}}

return F = ∪k Fk;

Page 14: Khai

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 Fk 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 s1 k�t v�i chu�i s2 n�u

Chu�i s1 sau khi b� b�t đi 1 h�ng m�c đ�u tiên thìging như

Chu�i s2 b� b�t 1 h�ng m�c cui cùng

K�t qu� phép k�t = chuỗi s1 mở rộng thêm 1 hạngmục cuối cùng của chuỗi s2 . H�ng m�c thêm nàycó th� t�o thành m�t ph�n t m�i trong s1 n�u nólà ph�n t riêng bi�t thu�c s2, ngư�c l�i là m�tthành viên c�a ph�n t cui cùng c�a s1

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ử 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>

� Sau bước loại bớt :

� C4 = {<(1,2) (3,4)>}

vì <1 3 5> ∉ F3 nên <(1,2) 3 5> bị loại

Page 15: Khai

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ử F3 là tập gồm 7 chuỗi

• Xác định tập ứng viên C4

• Trình bày kết quả trước lớp

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

Page 16: Khai

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

Page 17: Khai

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ỗiphổ biến trên D .

2. Có thể áp dụng ý tưởng thuật toánFP-Growth vào bàitoán tìm chuỗi phổbiến không và nhưthế nào ?

10

2025

d,g,h

b,fa,g,h

40

4040

10a,b, f30

15

20

a, b,f

e

20

20

10

1520

25

a, d

a, b, ca, b,f

a,c,d,f

10

1010

10

Ngàymua

Mã hàngMãKH

Page 18: Khai

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. http://illimine.cs.uiuc.edu/demo/ : 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