Effiecient Mining of Spatiotemporal Patterns GDM 2003 Dènis de Keijzer
Inhoud Introductie Definities The Lattice-Based Approach DFS_MINE Mining Frequent Spatiotemporal Sequences with Various Spatial Granularities Experimental Results Conclusions
Introductie (1) Probleem Het vinden van frequente veranderingspatronen in spatiotemporal datasets Erg uitdagend Grote zoekruimte Lange sequences
Introductie (2) Nog weinig gedaan op dit gebied Associatie regels Clustering Beantwoorden van statistische queries Meeste algoritmen gebruiken Breadth-First- Search Nadeel: kijkt eerst naar alle patronen van lengte k, voordat er naar sequences van lengte k+1 gekeken wordt Gebruikt veel geheugen
Introductie (3) DFS_MINE Gebruikt Lattice-theorie Depth-First-Search Zoekt snel de ‘maximal frequent sequence’ Gebruikt weinig ruimte Maximal frequent sequences Minimal non frequent sequences
Defenities (1) A = {A 1, A 2, …, A d } is een set distincte spatiotemporal attributen I j is een paar (A j, V j ) Vb. (T, 90) IS = {I 1, I 2, …, I k } Allen attributen A j moeten verschillend zijn Hebben een locatie en een tijd
Defenities (2) S = (IS 1, IS 2, …, IS n ) Sequence met k items is een k-sequence S1 subsequence van S2 als i 1 <i 2 <…<i n zodat ISi Isi j voor alle Isi Vb. (T1 P1T2) subsequence van (H1T1 P2 H2P1T2), want T1 H1T1 en P1T2 H2P1T2 S1 supersequence van S2 als S2 is subsequence van S1
Defenities (3) Locatie-id op reverse-z manier Elke locatie heeft een location-sequence L Frequency van een sequence is het aantal keer dat een sequence voorkomt Een sequence is frequent als deze tenminste min_sup keer voorkomt.
The Lattice-based Approach (1) Zij P een partieel geordende set Reflexive: (X X) Anti-symmetric: (X Y en Y X X=Y) Transitive: (X Y en Y Z X Z) P is een Lattice, als de binaire operaties meet en join voor alle X,Y P gelden P is een complete Lattice als join en meet gelden voor elke willekeurige subset van P
The Lattice-based Approach (2) Theorem 1 Given a set E of events, the ordered set S of all possible sequences on the items is a complete latice in which join and meet are given by union and intersection. Alle subsequences van een frequent sequentce zijn ook frequent
DFS_MINE General Input: min_sup 1 database scan Frequent items opslaan in FreqItems Genereer candidaat 2-sequences Scan deze in de database Frequent: insert in MaxFreqList (gebruikt om verder te minen) Nonfrequent: insert in MinNonFreqList (gebruikt om the prunen)
DFS_MINE Maximal Frequent Sequence List (1) Maximal Frequent Sequence Alle subsequences frequent Alle supersequences non-frequent Sequence S in MaxFreqList als: S nog niet in MaxFreqList S geen subsequence van een sequence in MaxFreqList S is frequent
DFS_MINE Maximal Frequent Sequence List (2) Na toevoeging van een sequence S worden alle subsequences van S verwijderd uit MaxFreqList Langste sequences aan het begin van de lijst Grootste kans een supersequence van een kandidaat sequence te zijn Bespaart ruimte door alleen maximal frequent sequences op te slaan
DFS_MINE Minimal Non-frequent Sequence List (1) Minimal Non-frequent Sequence Non-frequent Alle subsequences frequent Sequence S in MinNonFreqList als: S nog niet in MinNonFreqList S geen supersequence van een sequence in MinNonFreqList S is non-frequent
DFS_MINE Minimal Non-frequent Sequence List (2) Na toevoeging van S worden alle supersequences van S verwijderd uit MinNonFreqList Kortste sequences aan het begin van de lijst Grootste kans een subsequence van S te zijn
DFS_MINE Generating Sequences Genereert een k+1-sequence door een k- sequence te combineren met alle frequent items I j welke in FreqItems, maar niet in S.Useless (voeg I j op alle plekken in in S) Set van kandidaat sequences heet SET(S+ I j ) Voorkom duplicaten door speciale invoegingstrategie
DFS_MINE Examining the Candidate Sequences Check met MinNonFreqList Om te kijken of non-frequent Check met MaxFreqList Om te kijken of frequent Scan in database Als sequence is frequent: Blijft in SET(S+ I j )
DFS_MINE S.Useless Alle Items waarmee S gecombineerd wordt, worden toegevoegd aan S.Useless Inheriting the Useless Set Avoid generating duplicates Avoid generating sequences that are certain to be non-frequent
DFS_MINE Example 3 frequent items (A, B, C) k-sequence S met S.Useless = Aanname: alle sequences in SET(S+ C) zijn non-frequent Update Useless set Enz.
Mining Frequent Spatiotemporal Sequences with Various Spatial Granularities (1) Spatial Granularities Steden US (level 0) Counties US (level 1) Staten US (level 2) Joining Subregions (dubbele atributen, wel verschillende waarden) Non-frequent items kunnen frequent worden
Mining Frequent Spatiotemporal Sequences with Various Spatial Granularities (2) Begin op level 0 Neem MaxFreqList en MinNonFreqList mee naar volgende level Scan MinNonFreqList in database Sequences kunnen frequent geworden zijn Enz.
Experimental Results DFS_MINE Vs. SPADE SPADE: Snelste tot nu toe DFS_MINE aanzienlijk sneller DFS_MINE gebruikt véél minder geheugen
Conclusions Snel Door Depth-First-Search Alleen maximal frequent sequences Sneller + minder geheugen Geschikt voor verschillende spatial granularities Werkt ook goed met grote databases