chapter 08 01
TRANSCRIPT
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
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
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
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!!!
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?
Các ứng dụng
o Tóm tắt thông tin cuộc gọi của khách hàng
BILLS
Các ứng dụngo Thông tin thị trường chứng khoán
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…
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…
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
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
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
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]
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
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]
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”
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
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 đó.
Áp dụng mô hình Hình khối dữ liệu(Data Cube) ???
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
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 đó.
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)
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 ???
Đế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
Đế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) +
Đế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
+
Đế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
Đế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
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
Đế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) ???
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.
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.
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).
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
Cây quyết định
yes no
Protocol = http
Protocol = ftp
yes
yes no
Packets > 10
Bytes > 60K
Protocol = http
Data Stream
Data Stream
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
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)
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>
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
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
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
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
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
<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
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
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>
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
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)>
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>
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>
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>
… …
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
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
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
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
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ỳ
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ỳ
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
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
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
Các ứng dụng
o Lĩnh vực sản xuấto Dự đoán khả năng tiêu dùng
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ả
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
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
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
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
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
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
Thanks for your attention!