chapter 08 01

71
Khai thác dữ liệu dòng, dữ liệu chuỗi thời gian và tập phổ biến dạng chuỗi Data Mining: Concepts and Techniques Jiawei Han - Micheline Kamber GVHD: PGS. TS. Lê Hoài Bắc SVTH: Lê Hà Minh – 1012019 Đinh Xuân Thông – 1011055

Upload: minhhuy0202

Post on 24-Jul-2015

31 views

Category:

Documents


3 download

TRANSCRIPT

Page 1: Chapter 08 01

Khai thác dữ liệu dòng, dữ liệu chuỗi thời gian

và tập phổ biến dạng chuỗiData Mining: Concepts and Techniques

Jiawei Han - Micheline Kamber

GVHD: PGS. TS. Lê Hoài Bắc

SVTH: Lê Hà Minh – 1012019 Đinh Xuân Thông – 1011055

Page 2: Chapter 08 01

Nội dung

o Khai thác dữ liệu dòngo Khai thác tập phổ biến trong cơ sở dữ liệu

giao dịcho Khai thác dữ liệu chuỗi thời gian

Page 3: Chapter 08 01

Khai thác dữ liệu dòng

o Dữ liệu dòng là gì?o Dữ liệu liên tục, có thứ tự, thay đổi nhanh chóng,

có khối lượng lớn

Stock Market

Page 4: Chapter 08 01

Khai thác dữ liệu dòng

o Hệ quản trị CSDL truyền thốngo Khả năng lưu trữ giới hạn

o Lưu trữ toàn bộ dòng dữ liệu?o Dòng dữ liệu lớn và dường như vô hạno Thay đổi nhanh chóng

o Truy cập nhiều lần dữ liệu trên dòng?o Truy cập ngẫu nhiên: quá tốn kém!o Người dùng quan tâm đến những dữ liệu mới vừa cập

nhậto BẤT KHẢ THI!!!

Page 5: Chapter 08 01

Các ứng dụng

o Mining query stream:o Google muốn biết từ khóa nào phổ biến trong

ngày hôm nay hơn ngày hôm qua

o Mining click stream:o Yahoo muốn biết trang nào

của họ ít được quan tâm trong 1 giờ qua?

Page 6: Chapter 08 01

Các ứng dụng

o Tóm tắt thông tin cuộc gọi của khách hàng

BILLS

Page 7: Chapter 08 01

Các ứng dụngo Thông tin thị trường chứng khoán

Page 8: Chapter 08 01

Các ứng dụng

o Theo dõi các IP packet tại switcho Thu thập thông tin phục vụ cho tối ưu định tuyến

o v.v…

Page 9: Chapter 08 01

Phương pháp khai thác dữ liệu dòng

o Lấy mẫu ngẫu nhiên (Random Sampling)o Cửa sổ trượt (Sliding Windows)o Histogramso Waveletso Sketcheso v.v…

Page 10: Chapter 08 01

Lấy mẫu ngẫu nhiên (Random Sampling)

o Lấy mẫu ngẫu nhiên và không biết trước chiều dài của dòng dữ liệuo Chọn s ứng viên và lưu trong một “bể chứa”o s ứng viên này được lấy ngẫu nhiên từ N phần tử

đã thu thập được từ dòngo Phần tử mới đến sẽ có xác suất thay thế phần tử

cũ là s/NData stream: 9 3 5 2 7 1 6 5 8 4 9 1

(N = 12)

Sample S: 9 5 1 8

Page 11: Chapter 08 01

Cửa sổ trượt (Sliding Windows)

o Dựa trên những dữ liệu mới (recent data)o Dữ liệu tới tại thời điểm t sẽ hết hiệu lực tại thời

điểm (t + w), w là kích thước của window.o Áp dụng: o Thông tin chứng khoán, …o Nơi “thông tin mới” mới thực sự quan trọng

0 1 1 0 0 0 0 1 1 1 0 0 0 0 0 1 0 1 0 1 0

Page 12: Chapter 08 01

Cửa sổ trượt (Sliding Windows)

q w e r t y u i o p a s d f g h j k l z x c v b n m

q w e r t y u i o p a s d f g h j k l z x c v b n m

q w e r t y u i o p a s d f g h j k l z x c v b n m

q w e r t y u i o p a s d f g h j k l z x c v b n m

Past Future

Page 13: Chapter 08 01

Histograms

o Tính gần đúng phân phối tần số giá trị các phần tử trên dòng và chia dữ liệu thành từng “thùng” (bucket) kề nhau.

o Hai loại histogram được áp dụng:o Equi-Depth Histogramso V-Optimal Histograms [IP95] [JKM98]

Page 14: Chapter 08 01

Hai loại histogramo Equi-Depth Histograms

o V-Optimal Histograms [IP95] [JKM98]

Count forbucket

Domain values1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Count forbucket

Domain values1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

2)( minimizeB

BB Bv v V

Cf

Page 15: Chapter 08 01

Waveletso Phương pháp toán học để phân tích phân cấp dữ

liệu o Ví dụ:

o Harr wavelets Resolution Averages Detail Coefficients

[2, 2, 0, 2, 3, 5, 4, 4]

[2, 1, 4, 4] [0, -1, -1, 0]

[1.5, 4] [0.5, 0]

[2.75] [-1.25]

----3

2

1

0

Kết quả phân tích: [2.75, -1.25, 0.5, 0, 0, -1, -1, 0]

Page 16: Chapter 08 01

Các hệ số của Harr Wavelet

o “Error tree”

2 2 0 2 3 5 4 4

-1.25

2.75

0.5 0

0 -1 0 -1

+

-+

+

+ + +

+

+

- -

- - - -

Phân phối tần số ban đầu

-1

-1

0.5

0

2.75

-1.25

0

0

+

+ -+ -

- -+

+-++

--

+ -

-

-

Độ tin cậy “Supports”

Page 17: Chapter 08 01

Sketches

o Giả sử có v giá trị cần theo dõi U = {1, 2, …, v} và dòng dữ liệu A = {a1, a2, …, aN}

o Tần số tức thời của dòng dữ liệu A: o mi : tần số của giá trị i trong U

v

i

kik mF

1

Data stream: 2, 0, 1, 3, 1, 2, 4, . . .m(0) m(1) m(2) m(3) m(4)

11 1

2 2

Page 18: Chapter 08 01

Stream Online Analysis ProcessingStream Data Cubeso Dữ liệu dòng được phát sinh liên tục, có nhiều

mức hoặc nhiều chiều Cần phương pháp xử lý đa mức, đa chiềuo Nhu cầu phân tích cần:o Phân tích xu hướng đa chiều và các mẫu không phổ

biếno Bắt được những thay đổi quan trọng tại nhiều mức,

nhiều chiềuo Phát hiện nhanh chóng, thời gian thực (real-time)

và đáp ứng kịp thời với những thay đổi đó.

Page 19: Chapter 08 01

Áp dụng mô hình Hình khối dữ liệu(Data Cube) ???

Page 20: Chapter 08 01

A tilted time frameo Phân chia khoảng thời gian theo tự nhiên (Natural

tilted time frame): ¼ giờ, sau đó là 1 giờ, 24 giờ (1 ngày), …

o Phân chia khoảng thời gian theo logaric (Logarithmic tilted time frame): 1 phút, 2 phút, 4, 8, 16, 32 phút, …

4 q tr s2 4 h o u r s3 1 d ay s1 2 m o n th stim e

Tim et8 t 4 t 2 t t1 6 t3 2 t6 4 t

Page 21: Chapter 08 01

A tilted time frame

o Phân chia thời gian theo mô hình Kim tự tháp (Pyramidal tilted time frame):

Frame no. Snapshots (by clock time)

1 70 66 62

2 68 60 52

3 56 40 24

4 48 16

5 64 32

• Có 5 frame, mỗi frame chỉ nhận 3 snapshot.

• Cho trước snapshot thứ N.

• Nếu N mod 2d = 0 thì thêm snapshot này vào frame thứ d.

• Nếu frame nào có nhiều hơn 3 snapshot thì loại bỏ snapshot cũ nhất trong frame đó.

Page 22: Chapter 08 01

Phân chia dữ liệu nhiều chiều thành nhiều tầng

(*, city, quarter)

(user-group, street-block, minute)

m-layer (minimal interest)

(individual-user, street_address, second)

(primitive) stream data layer

o-layer (observation)

Page 23: Chapter 08 01

Khai thác tập phổ biến từ dòng dữ liệu

o Rất có giá trị trong các ứng dụng dòng dữ liệuo Khai thác một cách chính xác tập phổ biến từ

dữ liệu dòng o Không thực tếo Bất khả thio FPTree ???

Page 24: Chapter 08 01

Đếm mất mátLossy Counting for Frequent Itemso Phân chia dòng dữ liệu thành các “thùng chứa”

(bucket)Bucket 1 Bucket 2 Bucket 3

Page 25: Chapter 08 01

Đếm mất mátLossy Counting for Frequent Itemso Tại bước đầu tiên của quá trình khai thác, ta giảm

số lượng các phần tử đếm được theo loại xuống 1

Empty(summary) +

Page 26: Chapter 08 01

Đếm mất mátLossy Counting for Frequent Itemso Bước tiếp theo ta cũng tiếp tục giảm số lượng

các phần tử đếm được theo loại xuống 1

+

Page 27: Chapter 08 01

Đếm mất mátLossy Counting For Frequent Itemsetso Chia dòng dữ liệu thành các thùng chứa (bucket)o Đổ đầy dữ liệu vào các thùng chứa đến mức bộ

nhớ cho phép.

o Nếu bộ nhớ chứa 3 bucket giảm tần số đếm các phần tử xuống 3

Bucket 1 Bucket 2 Bucket 3

Page 28: Chapter 08 01

Đếm mất mátLossy Counting For Frequent Itemsets

o Itemset ( ) bị xóao Chọn số lượng “thùng chứa” (bucket) càng

nhiều xóa càng nhiều

2

2

1

2

11

1

summary data 3 bucket datain memory

4

4

10

22

0

+

3

3

9

summary data

Page 29: Chapter 08 01

Tỉa Itemsets – Luật Apriori

o Nếu tìm thấy itemset ( ) không là tập phổ biến Không cần xem xét superset nữa

3 bucket datain memory

1

+

summary data

2

Page 30: Chapter 08 01

Đếm mất mátLossy Counting For Frequent Itemsets

o Ưu điểm:o Đơn giảno Có thể mở rộng khai thác tập phổ biến trong dữ

liệu dòngo Khuyết điểm:o Tốn không gian lưu trữ, có thể quét bộ nhớ nhiều

lần.o Dựa vào những dữ liệu “cũ” đã thu thập được

trước đóo Khai thác những dữ liệu “mới” (recent data) ???

Page 31: Chapter 08 01

Kết hợp 2 cấu trúc dữ liệu cho việc khai thác tập phổ biến trong dòng dữ liệuo Thu thập dữ liệu được dựa trên Tilted-Time

Window. o Mỗi Tilted-Time Window ứng với một tập phổ biến

o Thể hiện tập dữ liệu thu thập được bằng FP-Tree o Mỗi FP-Tree sẽ lưu trữ tập phổ biến tại một thời

điểmo Tiến hành khai thác giống như khai thác với một

tập phổ biến thông thường.

Page 32: Chapter 08 01
Page 33: Chapter 08 01

Kết hợp 2 cấu trúc dữ liệu cho việc khai thác tập phổ biến trong dòng dữ liệuo Thu thập dữ liệu được dựa trên Tilted-Time

Window. o Mỗi Tilted-Time Window ứng với một tập phổ biến

o Thể hiện tập dữ liệu thu thập được bằng FP-Tree o Mỗi node của FP-Tree sẽ lưu trữ một tập phổ biến

o Tiến hành khai thác giống như khai thác với một tập phổ biến thông thường.

Page 34: Chapter 08 01
Page 35: Chapter 08 01

Phân loại dữ liệu dòngStream classificationo Cây quyết địnho Hoeffding Tree, VFDT (Very Fast Decision

Tree)/CVFDT (Domingos, Hulten, Spencer, KDD00/KDD01).

Page 36: Chapter 08 01

Hoeffding Treeo Đầu vào:

o S: Tập dữ liệu dòng (sequence of examples)o X: Các thuộc tính của dữ liệu (attributes)o G( ): Hàm lượng giá (evaluation function)o d: Độ chính xác mong muốn (desired accuracy)

o Thuật toán:for each example in S

retrieve G(Xa) and G(Xb) //two highest G(Xi)

if ( G(Xa) – G(Xb) > ε )split on Xa

recurse to next nodebreak

Page 37: Chapter 08 01

Cây quyết định

yes no

Protocol = http

Protocol = ftp

yes

yes no

Packets > 10

Bytes > 60K

Protocol = http

Data Stream

Data Stream

Page 38: Chapter 08 01

Nội dung

Khai thác dữ liệu dòngo Khai thác tập phổ biến trong cơ sở dữ liệu

giao dịcho Khai thác dữ liệu chuỗi thời gian

Page 39: Chapter 08 01

Khai thác tập phổ biến trong CSDL giao dịch

o Khai thác tập phổ biến dạng chuỗi (Sequential Pattern)

Page 40: Chapter 08 01

Khai thác tập phổ biến dạng chuỗi?o Cho trước một chuỗi, tìm tập các chuỗi con phổ biến

A sequence database A sequence : < (ef) (ab) (df) c b >

Mỗi phần tử (element) chứa một tập các item.Các item trong mỗi element được sắp xếp theo thứ tự từ điển.

<a(bc)dc> là một chuỗi con ( subsequence) của

<a(abc)(ac)d(cf)>

Cho trước min_sup =2, <(ab)c> là một tập phổ biến dạng chuỗi (sequential pattern )

SID sequence10 <a(abc)(ac)d(cf)>20 <(ad)c(bc)(ae)>30 <(ef)(ab)(df)cb>40 <eg(af)cbc>

Page 41: Chapter 08 01

Các vấn đề trong khai thác

o Các tập phổ biến dạng chuỗi ẩn trong CSDL với số lượng lớn

o Thuật toán khai thác phảio Tìm được tập phổ biến thoả min_supo Hiệu quả cao, giảm số lần quét CSDL

Page 42: Chapter 08 01

Tính chất Apriori đối với tập phổ biến dạng chuỗio Apriori (Agrawal & Sirkant’94)

o Nếu một tập S không phổ biếno Thì không có tập cha nào của S phổ biếno Ví dụ: <hb> không phổ biến do đó <hab> và

<(ah)b> cũng không phổ biến

<a(bd)bcb(ade)>50

<(be)(ce)d>40

<(ah)(bf)abf>30

<(bf)(ce)b(fg)>20

<(bd)cb(ac)>10

SequenceSeq. ID Cho trước min_sup =2

Page 43: Chapter 08 01

Thuật toán GSPGeneralized Sequential Pattern Mining

o Do Agrawal and Srikant đề xuất, EDBT’96o Thuật toán:

o Khởi tạo: Mỗi item trong CSDL là một ứng viên với chiều dài bằng 1 (length-1)

o Với mỗi chuỗi có length-k oQuét CSDL để đếm độ support cho mỗi ứng viêno Tạo ứng viên có chiều dài bằng k+1 (length-(k+1) từ các

chuỗi tuần tự có chiều dài bằng k (length-k) o Lặp lại cho đến khi không còn tập phổ biến dạng

chuỗi hoặc không còn tìm thấy ứng viên nào

Page 44: Chapter 08 01

Thuật toán GSP: Tìm các tập phổ biến dạng chuỗi có chiều dài bằng 1 (Length-1)o Các ứng viên ban đầu:

o <a>, <b>, <c>, <d>, <e>, <f>, <g>, <h>o Quét dữ liệu 1 lần và

tìm độ support cho các ứng viên

<a(bd)bcb(ade)>50

<(be)(ce)d>40

<(ah)(bf)abf>30

<(bf)(ce)b(fg)>20

<(bd)cb(ac)>10

SequenceSeq. IDmin_sup =2

Cand Sup<a> 3<b> 5<c> 4<d> 3<e> 3<f> 2<g> 1<h> 1

Page 45: Chapter 08 01

Thuật toán GSP: Tạo tập ứng viên có chiều dài bằng 2 (length-2)

<a> <b> <c> <d> <e> <f>

<a> <aa> <ab> <ac> <ad> <ae> <af>

<b> <ba> <bb> <bc> <bd> <be> <bf>

<c> <ca> <cb> <cc> <cd> <ce> <cf>

<d> <da> <db> <dc> <dd> <de> <df>

<e> <ea> <eb> <ec> <ed> <ee> <ef>

<f> <fa> <fb> <fc> <fd> <fe> <ff>

<a> <b> <c> <d> <e> <f>

<a> <(ab)> <(ac)> <(ad)> <(ae)> <(af)>

<b> <(bc)> <(bd)> <(be)> <(bf)>

<c> <(cd)> <(ce)> <(cf)>

<d> <(de)> <(df)>

<e> <(ef)>

<f>

Tỉa Apriori

Page 46: Chapter 08 01

<a> <b> <c> <d> <e> <f> <g> <h>

<aa> <ab> … <af> <ba> <bb> … <ff> <(ab)> … <(ef)>

<abb> <aab> <aba> <baa> <bab> …

<abba> <(bd)bc> …

<(bd)cba>Ứng viên không thỏa min_sup

Ứng viên không có trong CSDL

<a(bd)bcb(ade)>50

<(be)(ce)d>40

<(ah)(bf)abf>30

<(bf)(ce)b(fg)>20

<(bd)cb(ac)>10

SequenceSeq. ID

min_sup =2

Thuật toán GSP

Page 47: Chapter 08 01

Thuật toán SPADE

o SPADE (Sequential PAttern Discovery using Equivalent Class) o Phát triển bởi Zaki năm 2001

o Ý tưởng: oMỗi item có 2 giá trị định danh: SID, EID

o SID: sequence IDo EID: element ID

Page 48: Chapter 08 01

Thuật toán SPADESID sequence1 <a(abc)(ac)d(cf)>2 <(ad)c(bc)(ae)>3 <(ef)(ab)(df)cb>4 <eg(af)cbc>

Page 49: Chapter 08 01

Hiện tượng thắt cổ chai trong GSP và SPADE

o Số lượng ứng viên phát sinh quá lớno CSDL bị quét nhiều lầno Hiện tượng thắt cổ chai

Page 50: Chapter 08 01

Phương pháp chiếu tiền tố và hậu tốPrefix and Suffix (Projection)

o <a>, <aa>, <a(ab)> và <a(abc)> là tiền tố (prefixes) của chuỗi <a(abc)(ac)d(cf)>

o Cho trước chuỗi <a(abc)(ac)d(cf)>

Prefix Suffix (Prefix-Based Projection)<a> <(abc)(ac)d(cf)><aa> <(_bc)(ac)d(cf)><ab> <(_c)(ac)d(cf)>

Page 51: Chapter 08 01

Khai thác tập phổ biến dạng chuỗi bằng phép chiếu tiền tốo Bước 1: Tìm các tập phổ biến dạng chuỗi có

length-1o <a>, <b>, <c>, <d>, <e>, <f>

o Bước 2: Phân chia không gian tìm kiếm. Theo ví dụ trên ta sẽ chia thành 6 tập con:o Tập có tiền tố là <a>o Tập có tiền tố là <b>o…o Tập có tiền tố là <f>

SID sequence

10 <a(abc)(ac)d(cf)>

20 <(ad)c(bc)(ae)>

30 <(ef)(ab)(df)cb>

40 <eg(af)cbc>

Page 52: Chapter 08 01

Tìm tập phổ biến có tiền tố <a>

o Chiếu theo tiền tố <a>: <(abc)(ac)d(cf)>, <(_d)c(bc)(ae)>, <(_b)(df)cb>, <(_f)cbc>

o Tìm các tập phổ biến có length-2 và có tiền tố là <a>: <aa>, <ab>, <(ab)>, <ac>, <ad>, <af>

o Tập có tiền tố <aa>o…o Tập có tiền tố <af>

SID sequence

10 <a(abc)(ac)d(cf)>

20 <(ad)c(bc)(ae)>

30 <(ef)(ab)(df)cb>

40 <eg(af)cbc>

Page 53: Chapter 08 01

SID sequence

10 <a(abc)(ac)d(cf)>

20 <(ad)c(bc)(ae)>

30 <(ef)(ab)(df)cb>

40 <eg(af)cbc>

CSDL

Tập phổ biến Length-1<a>, <b>, <c>, <d>, <e>, <f>

Chiếu theo <a><(abc)(ac)d(cf)><(_d)c(bc)(ae)><(_b)(df)cb><(_f)cbc>

Tập phổ biến Length-2<aa>, <ab>, <(ab)>,<ac>, <ad>, <af>

Tiền tố <a>

Tiền tố <aa>

<aa>-proj. db … <af>-proj. db

Tiền tố <af>

Chiếu theo <b> …Tiền tố <b>

Tiền tố <c>, …, <f>

… …

Page 54: Chapter 08 01

Tìm tập phổ biến theo tiền tố

o Ưu điểm:o Không phát sinh tập ứng viêno Sử dụng phép chiếu CSDLo Chi phí chủ yếu ở khâu tiền xử lý để thực hiện

phép chiếu CSDL

Page 55: Chapter 08 01

Nội dung

Khai thác dữ liệu dòng Khai thác tập phổ biến trong cơ sở dữ liệu

giao dịcho Khai thác dữ liệu chuỗi thời gian

Page 56: Chapter 08 01

Khai thác dữ liệu chuỗi thời gian

o Dữ liệu chuỗi thời gian là gì?o Biểu diễn giá trị các sự kiện xảy ra tại những

khoảng thời gian khác nhau (ngày, tháng, năm…)

Stock Market Analysis

Page 57: Chapter 08 01

Khai thác dữ liệu chuỗi thời gian

o Sự biến đổi của dữ liệu theo chuỗi thời giano Khuynh hướng (Xu hướng)

Stock Market Analysis

Page 58: Chapter 08 01

Khai thác dữ liệu chuỗi thời gian

o Sự biến đổi của dữ liệu theo chuỗi thời giano Chu kỳ

Page 59: Chapter 08 01

Khai thác dữ liệu chuỗi thời gian

Seasonal Index

0

20

40

60

80

100

120

140

160

1 2 3 4 5 6 7 8 9 10 11 12

Month

o Sự biến đổi của dữ liệu chuỗi thời giano Định kỳ

Page 60: Chapter 08 01

Khai thác dữ liệu chuỗi thời gian

o Sự biến đổi của dữ liệu theo chuỗi thời giano Bất quy tắc

Page 61: Chapter 08 01

Các ứng dụng

o Lĩnh vực kinh tế:o Phân tích thông tin thị trường chứng khoán

Page 62: Chapter 08 01

Các ứng dụng

o Lĩnh vực kinh tế:o Phân tích và dự đoán mức độ lạm phát

Page 63: Chapter 08 01

Các ứng dụng

o Lĩnh vực sản xuấto Dự đoán khả năng tiêu dùng

Page 64: Chapter 08 01

Các ứng dụngo Lĩnh vực khoa học kỹ thuậto Dự đoán và phân tích các kết quả

Page 65: Chapter 08 01

Các ứng dụng

o Lĩnh vực khí tượng họco Dự đoán và phân tích các hiện tượng tự nhiên

Page 66: Chapter 08 01

Khai thác dữ liệu chuỗi thời gian

o Tìm kiếm tương tự trong chuỗi dữ liệu thời gian

Page 67: Chapter 08 01

Khai thác dữ liệu chuỗi thời giano Tìm kiếm tương tự trong chuỗi dữ liệu thời gian

Page 68: Chapter 08 01

Khai thác dữ liệu chuỗi thời giano Các ứng dụng của tìm kiếm tương tựo Xác định những chứng khoán có giá biến động theo một

kiểu cách giống nhauVanEck International Fund Fidelity Selective Precious Metal and Mineral Fund

Chứng khoán hai quỹ đầu tư khác nhau nhưng có mô hình phát triểntương đối giống nhau từ thời điểm 300

Page 69: Chapter 08 01

Khai thác dữ liệu chuỗi thời giano Các ứng dụng của tìm kiếm tương tựo Nhận dạng những công ty có kiểu mẫu tăng trưởng giống nhau

Page 70: Chapter 08 01

Khai thác dữ liệu chuỗi thời giano Các ứng dụng của tìm kiếm tương tựo Xác định những sản phẩm trong công ty có những

kiểu mẫu doanh số bán hàng giống nhau

Page 71: Chapter 08 01

Thanks for your attention!