Anda di halaman 1dari 23

Data Mining

Sequential Pattern Mining


Data Sequence

Timeline
10 15 20 25 30 35
Database Sequence:

Object Timestamp Events Object A:


A 10 2, 3, 5 2 6 1
3 1
A 20 6, 1
5
A 23 1
B 11 4, 5, 6
B 17 2 Object B:
B 21 7, 8, 1, 2 4 2 7 1
B 28 1, 6 5 8 6
C 14 1, 8, 7 6 1
2

Object C:
1
7
8
Contoh Data Sequence
Database Sequence Elemen Kejadian
Sequence (Transaksi) (Item)
Customer Transaksi-transaksi penjualan Item – item yang dibeli Buku, diary Produk, CD,
yang dilakukan oleh konsumen konsumen dalam waktu t. dll.
tertentu
Web Data Aktifitas browsing pada Sekumpulan File-file yang Home page, index page,
pengunjung web tertentu dilihat pengunjung web contact info, dll
setelah melakukan proses
single mouse click
Event data Kejadian – kejadian yang Kejadian-kejadi yang timbul Jenis-jenis tanda(alarm)
dihasilkan oleh sensor tertentu dari sensor saat waktu t yang dihasilkan oleh
sensor
Genome DNA sequence dari spesies Elemen dari DNA sequence Bases A,T,G,C
sequences tertentu

Elemen
Kejadian
(Transaksi) E1 E1 E3 (Item)
E2 E2
E2 E3 E4
Sequence
Definisi Sequence
• Sebuah sequence adalah urutan dari elemen-elemen (transaksi)

s = < e 1 e2 e3 … >

– Setiap elemen terdiri dari kumpulan kejadian-kejadian (item)


ei = {i1, i2, …, ik}

– Setiap elemen merupakan atribut yang dihubungkan dengan suatu


lokasi atau waktu tertentu (spesifik)

• Panjang Sequence, |s|, adalah banyaknya unsur-unsur sequence


yang diberikan.

• A k-sequence adalah sebuah sequence yang terdiri dari k kejadian


(item)
Contoh Sequence
• Web sequence:
< {Homepage} {Electronics} {Digital Cameras} {Canon Digital
Camera} {Shopping Cart} {Order Confirmation} {Return to Shopping}
>

• Sequence kejadian kecelakaan yang disebabkan oleh ledakan nuklir


pada 3-mile Island:
(http://stellar-
one.com/nuclear/staff_reports/summary_SOE_the_initiating_event.ht
m)
< {clogged resin} {outlet valve closure} {loss of feedwater}
{condenser polisher outlet valve shut} {booster pumps trip}
{main waterpump trips} {main turbine trips} {reactor pressure
increases}>

• Sequence buku checked out pada perpustakaan:


<{Fellowship of the Ring} {The Two Towers} {Return of the King}>
Definisi Subsequence

• Sebuah sequence <a1 a2 … an> terdapat dalam sequence lain <b1 b2 … bm>
(m ≥ n) jika terdapat integer
i1 < i2 < … < in maka a1  bi1 , a2  bi1, …, an  bin

Data sequence Subsequence Contain?


< {2,4} {3,5,6} {8} > < {2} {3,5} > Yes
< {1,2} {3,4} > < {1} {2} > No
< {2,4} {2,4} {2,5} > < {2} {4} > Yes
• Support subsequence w didefinisikan sebagai bagian dari data sequence
yang berisi w
• Sequential pattern adalah subsequence yang sering muncul (yaitu, support
subsequence ≥ minsup)
Definisi :
Sequential Pattern Mining
• Terdapat:
– Database sequence

– Minimum menetapkan user yang mendukung(support), minsup

• Task:
– Menemukan semua subsequence dengan user yang mendukup
≥ minsup
Tantangan : Sequential Pattern Mining
• Diberikan sebuah sequence: <{a b} {c d e} {f} {g h i}>
– contoh subsequence:
<{a} {c d} {f} {g} >, < {c d e} >, < {b} {g} >, dll.

• Berapakah banyaknya k-subsequences yang dapat


diekstraksi dari n-sequence yang diberikan?

<{a b} {c d e} {f} {g h i}> n = 9

Answer :
k=4: Y_ _YY _ _ _Y n 9
      126
 k   4
<{a} {d e} {i}>
Contoh :
Sequential Pattern Mining
Object Timestamp Events
A 1 1,2,4 Minsup = 50%
A 2 2,3
A 3 5 Contoh Frequent Subsequence:
B 1 1,2
B 2 2,3,4 < {1,2} > s=60%
< {2,3} > s=60%
C 1 1, 2
< {2,4}> s=80%
C 2 2,3,4
< {3} {5}> s=80%
C 3 2,4,5 < {1} {2} > s=80%
D 1 2 < {2} {2} > s=60%
D 2 3, 4 < {1} {2,3} > s=60%
D 3 4, 5 < {2} {2,3} > s=60%
E 1 1, 3 < {1,2} {2,3} > s=60%
E 2 2, 4, 5
Ekstraksi Sequential Pattern
• Terdapat n kejadian: i1, i2, i3, …, in

• Candidate 1-subsequence:
<{i1}>, <{i2}>, <{i3}>, …, <{in}>

• Candidate 2-subsequence:
<{i1, i2}>, <{i1, i3}>, …, <{i1} {i1}>, <{i1} {i2}>, …, <{in-1} {in}>

• Candidate 3-subsequence:
<{i1, i2 , i3}>, <{i1, i2 , i4}>, …, <{i1, i2} {i1}>, <{i1, i2} {i2}>, …,
<{i1} {i1 , i2}>, <{i1} {i1 , i3}>, …, <{i1} {i1} {i1}>, <{i1} {i1} {i2}>,

Generalisasi Sequential Pattern
(GSP)
• Step 1:
– Langkah pertama mengabaikan database sequence D untuk
menghasilkan semua 1-element frequent sequence
• Step 2:
Ulangi sampai tidak (ada) frequent sequences baru yang ditemukan
– Candidate Generation:
• Gabungkan frequent subsequences yang ditemukan ( k-1)th
untuk menghasilkan candidate sequence yang berisi k item
– Candidate Pruning:
• Prune candidate k-sequence yang berisikan infrequent(k-1)-
subsequences
– Support Counting:
• Mencari hal yang baru dalam sequence database D untuk
menemukan support pada candidate sequence tersebut.
– Candidate Elimination:
• Meng-eliminasi candidate k-sequences yang actual support
kurang dari minsup
Generalisasi Candidate
• Kasus Dasar (k=2):
– Penggabungan dua frequent 1-sequences <{i1}> dan <{i2}> akan
menghasilkan dua candidate 2-sequences: <{i1} {i2}> dan <{i1 i2}>

• Kasus Umum (k>2):


– Sebuah frequent (k-1)-sequence w1 digabungkan dengan frequent yang lain
(k-1)-sequence w2 untuk menghasilkan sebuah candidate k-sequence jika
subsequence yang diperoleh dengan memindahkan event pertama di w1
adalah sama dengan subsequence yang diperoleh dengan memindahkan
event terakhir in w2

• Hal ini menghasilkan candidate setelah penggabungan diberi oleh


sequence w1 diperluas sampai dengan event yang terakhir dari w2
– Jika yang terakhir dua event didalam Cara lainnya, event yang
terakhir di dalam w2 menjadi suatu element terpisah dengan
menambahkan pada ujung w1 mempunyai element yang sama,
kemudian peristiwa yang terakhir di dalam w2 menjadi bagian dari
element yang terakhir di dalam w1
– Cara lainnya, event yang terakhir di dalam w2 menjadi suatu
element terpisah dengan menambahkan pada ujung w1
Contoh :
Candidate Generation
• Penggabungan sequences
w1=<{1} {2 3} {4}> dan w2 =<{2 3} {4 5}>
akan menghasilkan candidate sequence < {1} {2 3} {4 5}> karena
dua event yang terakhir didalam w2 (4 and 5) merupakan element
yang sama

• Penggabungan sequences
w1=<{1} {2 3} {4}> dan w2 =<{2 3} {4} {5}>
akan menghasilkan candidate sequence < {1} {2 3} {4} {5}> karena
dua event yang terakhir w2 (4 and 5) bukan merupakan element
yang sama

• Tidak dapat dilakukan penggabungan sequence


w1 =<{1} {2 6} {4}> dan w2 =<{1} {2} {4 5}>
menghasilkan candidate < {1} {2 6} {4 5}> karena jika yang terakhir
adalah viable candidate,lalu tersebut dapat diperoleh dari
penggabungan w1 dengan < {1} {2 6} {5}>
GSP Example
Frequent
3-sequences

< {1} {2} {3} >


Candidate
< {1} {2 5} > Generation
< {1} {5} {3} >
< {1} {2} {3} {4} >
Candidate
< {2} {3} {4} >
< {2 5} {3} > < {1} {2 5} {3} > Pruning
< {3} {4} {5} > < {1} {5} {3 4} >
< {5} {3 4} > < {2} {3} {4} {5} >
< {1} {2 5} {3} >
< {2 5} {3 4} >
Timing Constraints (I)
{A B} {C} {D E} xg: max-gap
<= xg >ng ng: min-gap

<= ms ms: maximum span

xg = 2, ng = 0, ms= 4

Data sequence Subsequence Contain?


< {2,4} {3,5,6} {4,7} {4,5} {8} > < {6} {5} > Yes
< {1} {2} {3} {4} {5}> < {1} {4} > No
< {1} {2,3} {3,4} {4,5}> < {2} {3} {5} > Yes
< {1,2} {3} {2,3} {3,4} {2,4} < {1,2} {5} > No
{4,5}>
Mining Sequential Pattern Dengan
Timing Constraints
• Pendekatan 1:
– Menemukan sequential pattern tanpa timing constraints
– Postprocess menentukan pattern

• Pendekatan 2:
– Memodifikasi GSP untuk langsung menjadi prune candidates
namun melanggar timing constraints
– Question:
• Apa apriori prinsip masih dipegang ?
Apriori Principle Untuk Data Sequence

Object Timestamp Events Suppose:


A 1 1,2,4 xg = 1 (max-gap)
A 2 2,3
A 3 5 ng = 0 (min-gap)
B 1 1,2 ms = 5 (maximum span)
B 2 2,3,4
minsup = 60%
C 1 1, 2
C 2 2,3,4
C 3 2,4,5 <{2} {5}> support = 40%
D 1 2
D 2 3, 4 but
D 3 4, 5 <{2} {3} {5}> support = 60%
E 1 1, 3
E 2 2, 4, 5

Problem ada dikarenakan terdapat max-gap constraint


Tidak terdapat problem jika max-gap tanpa batas
Contiguous Subsequences

• s merupakan contiguous subsequence dari


w = <e1>< e2>…< ek>
jika memenuhi kriteria berikut ini :
1. s diperoleh dari w dengan menghapus suatu item dari e1 or ek
2. s diperoleh w dengan menghapus sebuah item dari elemen ei
yang terdiri lebih dari 2 item.
3. s dikatakan contiguous subsequence dari s’ dan s’ dikatakan a
contiguous subsequence dari w (recursive definition)

• Contoh: s = < {1} {2} >


– contiguous subsequence
< {1} {2 3}>, < {1 2} {2} {3}>, dan < {3 4} {1 2} {2 3} {4} >
– BUKAN contiguous subsequence
< {1} {3} {2}> and < {2} {1} {3} {2}>
Langkah Modifikasi Candidate Pruning

• Without maxgap constraint:


– Candidate k-sequence dikatakan pruned jika
salah satunya (k-1)-subsequences adalah
infrequent

• With maxgap constraint:


– Candidate k-sequence dikatakan pruned jika
salah satunya contiguous (k-1)-
subsequences adalah infrequent
Timing Constraints (II)
xg: max-gap
{A B} {C} {D E} ng: min-gap
<= xg >ng <= ws
ws: window size
<= ms
ms: maximum span

xg = 2, ng = 0, ws = 1, ms= 5

Data sequence Subsequence Contain?


< {2,4} {3,5,6} {4,7} {4,6} {8} > < {3} {5} > No
< {1} {2} {3} {4} {5}> < {1,2} {3} > Yes
< {1,2} {2,3} {3,4} {4,5}> < {1,2} {3,4} > Yes
Langkah Modifikasi Support Counting Step

• Candidate pattern: <{a, c}>


– Beberapa data sequences terdiri dari
<… {a c} … >,
<… {a} … {c}…> ( dimana time({c}) –
time({a}) ≤ ws)
<…{c} … {a} …> (dimana time({a}) –
time({c}) ≤ ws)
yang digunakan dalam menentukan
candidate pattern
Formula Lain
• Dalam beberapa domain, kita hanya mempunyai satu very long time
series
– Contoh:
• monitoring network traffic events for attacks
• Monitoring siatuasi network traffic untuk mencari penyelesaian
suatu masalah
• monitoring telecommunication alarm signals
• Memonitor sinyal telecommunication
• Bertujuan untuk menemukan kejadian- kejadian frequent sequences
dalam time series
– Masalah ini juga untuk mengetahui frequent episode mining
E1 E3 E1 E1 E2 E4 E1 E2 E1
E2 E4 E2 E3 E4 E2 E3 E5 E2 E3 E5 E2 E3 E1

Pattern: <E1> <E3>


Skema General Support Counting
Object's Timeline
Sequence: (p) (q)
p p p
p p q q q q q Method Support
Count
1 2 3 4 5 6 7

COBJ 1

CWIN 6 Asumsi:
xg = 2 (max-gap)
ng = 0 (min-gap)
CMINWIN 4
ws = 0 (window size)
ms = 2 (maximum span)

CDIST_O 8

CDIST 5

Anda mungkin juga menyukai