Data Mining Sequential Pattern Mining Data Sequence Database
Data Mining Sequential Pattern Mining
Data Sequence Database Sequence: Object A A A B B C Timestamp 10 20 23 11 17 21 28 14 Events 2, 3, 5 6, 1 1 4, 5, 6 2 7, 8, 1, 2 1, 6 1, 8, 7
Contoh Data Sequence Database Sequence Elemen (Transaksi) Kejadian (Item) Customer Transaksi-transaksi penjualan yang dilakukan oleh konsumen tertentu Item – item yang dibeli konsumen dalam waktu t. Buku, diary Produk, CD, dll. Web Data Aktifitas browsing pada pengunjung web tertentu Sekumpulan File-file yang dilihat pengunjung web setelah melakukan proses single mouse click Home page, index page, contact info, dll Event data Kejadian – kejadian yang dihasilkan oleh sensor tertentu Kejadian-kejadi yang timbul dari sensor saat waktu t Jenis-jenis tanda(alarm) yang dihasilkan oleh sensor Genome sequences DNA sequence dari spesies tertentu Elemen dari DNA sequence Bases A, T, G, C Elemen (Transaksi) Sequence E 1 E 2 E 1 E 3 E 2 E 3 E 4 Kejadian (Item)
Definisi Sequence • Sebuah sequence adalah urutan dari elemen-elemen (transaksi) s = < e 1 e 2 e 3 … > – Setiap elemen terdiri dari kumpulan kejadian-kejadian (item) ei = {i 1, i 2, …, 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: //stellarone. 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 <a 1 a 2 … an> terdapat dalam sequence lain <b 1 b 2 … bm> (m ≥ n) jika terdapat integer i 1 < i 2 < … < in maka a 1 bi 1 , a 2 bi 1, …, 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, 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 k=4: Y_ <{a} _YY _ _ _Y {d e} {i}>
Contoh : Sequential Pattern Mining Minsup = 50% Contoh Frequent Subsequence: < {1, 2} > < {2, 3} > < {2, 4}> < {3} {5}> < {1} {2} > < {1} {2, 3} > < {2} {2, 3} > < {1, 2} {2, 3} > s=60% s=80% s=60%
Ekstraksi Sequential Pattern • Terdapat n kejadian: i 1, i 2, i 3, …, in • Candidate 1 -subsequence: <{i 1}>, <{i 2}>, <{i 3}>, …, <{in}> • Candidate 2 -subsequence: <{i 1, i 2}>, <{i 1, i 3}>, …, <{i 1}>, <{i 1} {i 2}>, …, <{in-1} {in}> • Candidate 3 -subsequence: <{i 1, i 2 , i 3}>, <{i 1, i 2 , i 4}>, …, <{i 1, i 2} {i 1}>, <{i 1, i 2} {i 2}>, …, <{i 1} {i 1 , i 2}>, <{i 1} {i 1 , i 3}>, …, <{i 1}>, <{i 1} {i 2}>, …
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 <{i 1}> dan <{i 2}> akan menghasilkan dua candidate 2 -sequences: <{i 1} {i 2}> dan <{i 1 i 2}> • Kasus Umum (k>2): – Sebuah frequent (k-1)-sequence w 1 digabungkan dengan frequent yang lain (k-1)-sequence w 2 untuk menghasilkan sebuah candidate k-sequence jika subsequence yang diperoleh dengan memindahkan event pertama di w 1 adalah sama dengan subsequence yang diperoleh dengan memindahkan event terakhir in w 2 • Hal ini menghasilkan candidate setelah penggabungan diberi oleh sequence w 1 diperluas sampai dengan event yang terakhir dari w 2 – Jika yang terakhir dua event didalam Cara lainnya, event yang terakhir di dalam w 2 menjadi suatu element terpisah dengan menambahkan pada ujung w 1 mempunyai element yang sama, kemudian peristiwa yang terakhir di dalam w 2 menjadi bagian dari element yang terakhir di dalam w 1 – Cara lainnya, event yang terakhir di dalam w 2 menjadi suatu element terpisah dengan menambahkan pada ujung w 1
Contoh : Candidate Generation • Penggabungan sequences w 1=<{1} {2 3} {4}> dan w 2 =<{2 3} {4 5}> akan menghasilkan candidate sequence < {1} {2 3} {4 5}> karena dua event yang terakhir didalam w 2 (4 and 5) merupakan element yang sama • Penggabungan sequences w 1=<{1} {2 3} {4}> dan w 2 =<{2 3} {4} {5}> akan menghasilkan candidate sequence < {1} {2 3} {4} {5}> karena dua event yang terakhir w 2 (4 and 5) bukan merupakan element yang sama • Tidak dapat dilakukan penggabungan sequence w 1 =<{1} {2 6} {4}> dan w 2 =<{1} {2} {4 5}> menghasilkan candidate < {1} {2 6} {4 5}> karena jika yang terakhir adalah viable candidate, lalu tersebut dapat diperoleh dari penggabungan w 1 dengan < {1} {2 6} {5}>
GSP Example
Timing Constraints (I) {A B} {C} <= xg {D E} >ng <= ms xg: max-gap ng: min-gap 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} {4, 5}> < {1, 2} {5} > No
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 Suppose: xg = 1 (max-gap) ng = 0 (min-gap) ms = 5 (maximum span) minsup = 60% <{2} {5}> support = 40% but <{2} {3} {5}> support = 60% Problem ada dikarenakan terdapat max-gap constraint Tidak terdapat problem jika max-gap tanpa batas
Contiguous Subsequences • s merupakan contiguous subsequence dari w = <e 1>< e 2>…< ek> jika memenuhi kriteria berikut ini : 1. s diperoleh dari w dengan menghapus suatu item dari e 1 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} {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) {A B} {C} <= xg {D E} >ng <= ws <= ms xg: max-gap ng: min-gap ws: window size 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 E 1 E 3 E 1 E 2 E 4 E 2 E 3 E 5 Pattern: <E 1> <E 3> E 2 E 1 E 2 E 3 E 1
Skema General Support Counting Asumsi: xg = 2 (max-gap) ng = 0 (min-gap) ws = 0 (window size) ms = 2 (maximum span)
- Slides: 23