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-FirstSearch 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 = {A1, A2, …, Ad} is een set distincte spatiotemporal attributen Ij is een paar (Aj, Vj) Vb. (T, 90) IS = {I1, I2, …, Ik} Allen attributen Aj moeten verschillend zijn Hebben een locatie en een tijd Defenities (2) S = (IS1, IS2, …, ISn) Sequence met k items is een k-sequence S1 subsequence van S2 als i1<i2<…<in zodat ISi Isij voor alle Isi Vb. (T1P1T2) 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 ksequence te combineren met alle frequent items Ij welke in FreqItems, maar niet in S.Useless (voeg Ij 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+ Ij) 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