36
1 Florian Spitzl „Mining top-K frequent itemsets from data streams“ „Mining top-K frequent itemsets from data streams“ R.C.-W. Wong A.W.-C. Fu Seminar: Maschinelles Lernen

„Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

1Florian Spitzl „Mining top-K frequent itemsets from data streams“

„Mining top-K frequent itemsets from data streams“

R.C.-W. Wong A.W.-C. Fu

Seminar: Maschinelles Lernen

Page 2: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

2Florian Spitzl „Mining top-K frequent itemsets from data streams“

Gliederung

1. Einleitung2. Chernoff-basierter Algorithmus3. top-K lossy counting Algorithmus4. Empirischer Vergleich5. Mining top-K itemsets in a sliding window6. Zusammenfassung7. Fragen / Diskussion

Page 3: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

3Florian Spitzl „Mining top-K frequent itemsets from data streams“

Definitionen

ItemsetEine Menge bestehend aus l Items (l-itemset)

K-th frequent itemsetl-itemset, das nach Sortierung der Frequenz des Auftretens auf Position k ist

Top K-frequent itemsetsalle l-itemsets die mindestens am k-häufigsten aufgetreten sind

Page 4: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

4Florian Spitzl „Mining top-K frequent itemsets from data streams“

Anwendungen

Das Wissen über frequent itemsets kann nützlich sein bei:

Click-StreamsNetzwerk-MonitoringFinanzmarkt-MonitoringAnalyse von Bestellungenund vieles mehr

Page 5: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

5Florian Spitzl „Mining top-K frequent itemsets from data streams“

Einleitung

Das Finden von frequent itemsets ist im Bereich Data Mining gut erforscht (→ statische Datenmenge)Aber:

Data Stream ist potentiell unendlich lang→ die Daten können nicht alle gespeichert werdenDie Ergebnisse werden in Real Time erwartet(Im Data Mining gibt es normalerweise Ergebnisse erst am Ende)

Es werden also neue Methoden gebraucht um frequent itemsets in Data Streams zu finden

Page 6: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

6Florian Spitzl „Mining top-K frequent itemsets from data streams“

Problem A

„Finde alle Pattern, die eine Frequenz größer als s haben“Problem:

Benutzer muss eine Grenze s setzens zu hoch: kaum frequent-pattern werden gefundens zu tief: zu viele frequent-pattern werden gefunden

Für jede Datenmenge muss ein neues s gefunden werden, das brauchbare Ergebnisse liefert

Alternative: Benutzer gibt an wie viele Ergebnisse er haben möchte → Problem B

Page 7: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

7Florian Spitzl „Mining top-K frequent itemsets from data streams“

Problem B

„Finde die K am häufigsten auftretenden l-Itemsets“In Datenströmen ist es i.a. nicht möglich die Frequenzen exakt zu bestimmen (→ Speicherplatz, Laufzeit)Frequenz der Itemsets muss geschätzt werdenEs muss eine Frequenz-Schranke geschätzt werden um weniger häufige Itemsets abschneiden zu können

Page 8: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

8Florian Spitzl „Mining top-K frequent itemsets from data streams“

Gliederung

1. Einleitung2. Chernoff-basierter Algorithmus3. top-K lossy counting Algorithmus4. Empirischer Vergleich5. Mining top-K itemsets in a sliding window6. Zusammenfassung7. Resumé

Page 9: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

9Florian Spitzl „Mining top-K frequent itemsets from data streams“

Chernoff-basierter Algorithmus

Wird gesteuert über 2 ParameterFehlerschranke (ε)Zuverlässigkeit (δ)

Grundversion geht von Unabhängigkeit der Daten ausBasiert auf der Chernoff-Schranke

Page 10: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

10Florian Spitzl „Mining top-K frequent itemsets from data streams“

Chernoff-Schranke (I)

Schranke für die Wahrscheinlichkeit, dass eine Zufallsvariable um einen bestimmten Wert vom erwarteten Wert abweichtVoraussetzung:Eine Folge von Beobachtungen einzelner Bernoulli-Experimente o

i

Page 11: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

11Florian Spitzl „Mining top-K frequent itemsets from data streams“

Chernoff-Schranke (II)

P ∣x−x∣≥x≤2e−nx 2

2

beobachtete rel. Häufigkeit

tatsächlicheWahrscheinlichkeit

Abweichungsfaktor

P ∣x−x∣≥≤2 e−n2

2x

:=x

=2 e−n2

2x= 2⋅x⋅ln 2/n

Page 12: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

12Florian Spitzl „Mining top-K frequent itemsets from data streams“

Verwendung der Chernoff-Schranke

Die Bernoulli-Experimente werden als Transaktionen interpretiertDas Ergebnis ist jeweils ob ein Itemset X in der Transaktion existiertx ist dann der erwartete Support von X(Support: Anteil der Transaktionen die X enthalten)

δ ist die Wahrscheinlichkeit, dass der Support über- oder unterschätzt wirdε gibt die Abweichung von erwarteten und beobachteten Support an

Page 13: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

13Florian Spitzl „Mining top-K frequent itemsets from data streams“

Chernoff-basierter Algorithmus (I)

Alle Itemsets werden in 2 Gruppen aufgeteilt:potential K-frequent itemsetsunpromising itemsets

Bedingung für potential K-frequent itemsets:s

k = beobachtete Support des k-th frequent itemsets

dann gilt: = beobachte Support eines Itemsets X → X ist potential K-frequent

sk= 2 sk ln 2 /n

sX

sX ≥sk−2⋅sk

Page 14: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

14Florian Spitzl „Mining top-K frequent itemsets from data streams“

Chernoff-basierter Algorithmus (II)

n = 0, Pl = , F

l =

for every Batch of R transactions don = n + Rfor all l such that 1 <= l <= L do

find potential K-frequent itemsets in the current batchand store them in P

l

Fl = and update the support of each entry in F

l

prune unpromising itemsets from Fl if |Fl| > n

0,l

endforendfor

∅ ∅

Pl∪Fl

Page 15: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

15Florian Spitzl „Mining top-K frequent itemsets from data streams“

Mathematische Analyse (I)

Aufgrund der Verwendung der Chernoff-Schranke können Garantien für die Güte des Alorithmus bewiesen werdenHier aber nur die Ergebnisse ohne Beweis:

Die Wahrscheinlichkeit, dass der beobachtete Support um mehr als ε vom tatsächlichen abweicht ist höchstens δWenn X zu den tatsächlichen top-K frequent itemsets gehört, dann wird X vom Algorithmus mit der Wahrscheinlichkeit von mind. 1-δ gefunden

Page 16: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

16Florian Spitzl „Mining top-K frequent itemsets from data streams“

Mathematische Analyse (II)

Speicherbedarf (für itemset der Größe l)

sK ist der Support des K-th frequent itemsetsC

lsT ist die Anzahl der Kombinationen von l

Objekten aus einer Menge von sT ObjektenDer Speicher ist also unabhängig von der Länge des Data Streams

O2 [C lS T4 ln 2/]

sk

Page 17: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

17Florian Spitzl „Mining top-K frequent itemsets from data streams“

Gliederung

1. Einleitung2. Chernoff-basierter Algorithmus3. top-K lossy counting Algorithmus4. Empirischer Vergleich5. Mining top-K itemsets in a sliding window6. Zusammenfassung7. Fragen / Diskussion

Page 18: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

18Florian Spitzl „Mining top-K frequent itemsets from data streams“

top-K lossy counting Algorithmus (I)

basiert auf dem „Lossy counting Algorithm“Der Data-Stream wird in Batches bestehend aus R Transaktionen eingeteiltJeder Batch wird in Buckets der Größe ω eingeteilt (mit ω = [1/ε])Itemsets werden in der Form (set, f, Δ)unpromising entry, wenn: f ≤[ n

]

Page 19: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

19Florian Spitzl „Mining top-K frequent itemsets from data streams“

top-K lossy counting Algorithmus (II)

n = 0, Pl = , F

l =

for every Batch of R transactions don = n + Rfor all l such that 1 <= l <= L do

find all itemsets of size l with frequency count greater than or equal to β and store them in P

l

Fl =

update the support of each entry stored in Fl

remove all unpromising entries just updated in Fl

Pl =

endforendfor

∅ ∅

Pl∪Fl

Page 20: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

20Florian Spitzl „Mining top-K frequent itemsets from data streams“

Gliederung

1. Einleitung2. Chernoff-basierter Algorithmus3. top-K lossy counting Algorithmus4. Empirischer Vergleich5. Mining top-K itemsets in a sliding window6. Zusammenfassung7. Fragen / Diskussion

Page 21: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

21Florian Spitzl „Mining top-K frequent itemsets from data streams“

Empirischer Vergleich

Verwendetes System:Pentium IV 2,2 GHz, 1 GB RAMVergleich der beiden vorgestellten Algorithmen mit:

BOMO algorithm (Alle Daten des Streams werden als ein Batch angesehen)Zipf-VerteilungSpace-Saving Algorithm

Tests wurden mit 2 synthetischen und einigen echten Datensets durchgeführt

Page 22: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

22Florian Spitzl „Mining top-K frequent itemsets from data streams“

Empirischer Vergleich (II)

Verwendete Qualitätsmaße:Recall ( )

Anteil der korrekt gefundenen frequent itemsets an allen wahren

Precision ( )Anteil der korrekten gefunden frequent itemsets an allen vom Algorithmus gefundenen

∣T∩O∣∣T∣

∣T∩O∣∣O∣

T = wahren frequent itemsets

O = vom Algorithmus bestimmtenfrequent itemsets

Page 23: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

23Florian Spitzl „Mining top-K frequent itemsets from data streams“

Empirischer Vergleich (III)

Unterschiedliche K (Anzahl der ges. itemsets)

Page 24: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

24Florian Spitzl „Mining top-K frequent itemsets from data streams“

Empirischer Vergleich (IV)

Unterschiedliche ε

Page 25: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

25Florian Spitzl „Mining top-K frequent itemsets from data streams“

Empirischer Vergleich (V)

Speicherbedarf des naiven (BOMO) Ansatzes war im Schnitt mindestens 11 mal so hoch wie bei allen anderen Algorithmen

spezielle Algorithmen für Data-Streams sind also wirklich notwendig

Chernoff-Algorithmus hat, wie erwartet, kleinere Probleme mit abhängigen Datentop-K lossy Counting Algorithmus arbeitet sehr genau, braucht aber (deutlich) mehr Speicher als ChernoffZipfverteilungsbasierter Algorithmus liefert ungenaue Ergebnisse, wenn sich die Datenreihenfolge ändert

Page 26: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

26Florian Spitzl „Mining top-K frequent itemsets from data streams“

Gliederung

1. Einleitung2. Chernoff-basierter Algorithmus3. top-K lossy counting Algorithmus4. Empirischer Vergleich5. Mining top-K itemsets in a sliding window6. Zusammenfassung7. Fragen / Diskussion

Page 27: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

27Florian Spitzl „Mining top-K frequent itemsets from data streams“

Gründe für sliding window Ansatz

In vielen Anwendungen sind alte Daten nicht mehr relevant oder nicht mehr von InteresseAnpassung der Algorithmen, damit nur die letzten m Transaktionen betrachtet werden

Page 28: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

28Florian Spitzl „Mining top-K frequent itemsets from data streams“

Anpassung der Algorithmen

Alle Batches die zum aktuellen window gehören müssen gespeichert werde:

„Ql,0

← Ql,1

← Ql,2

← Ql,3

← ... ← Ql,n-1

← Ql,n

“ (bei jedem neuen Batch der bearbeitet wird)

Veränderungen die im aktuellen Batch stattgefunden haben werden in Q

l,n gespeichert

Wenn ein Batch das window verlässt:globale Pool F

l wird um Q

l,0 gesenkt

Page 29: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

29Florian Spitzl „Mining top-K frequent itemsets from data streams“

Chernoff Algo. mit sliding window

∅ ∅

Pl∪Fl

n = 0, Pl = , F

l =

for every Batch of R transactions don = n + Rfor all l such that 1 <= l <= L do

find potential K-frequent itemsets in the current batchand store them in P

l

Fl = and update the support of each entry in F

l

prune unpromising itemsets from Fl if |Fl| > n

0,l

endforendfor

switch the batch storages

store all updated entries in Ql,n

if there is a batch leaving the windowdecrement F

l by Q

l,0

endif

Page 30: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

30Florian Spitzl „Mining top-K frequent itemsets from data streams“

Ergebnisse mit sliding window (I)

Page 31: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

31Florian Spitzl „Mining top-K frequent itemsets from data streams“

Ergebnisse mit sliding window (II)

Page 32: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

32Florian Spitzl „Mining top-K frequent itemsets from data streams“

Gliederung

1. Einleitung2. Chernoff-basierter Algorithmus3. top-K lossy counting Algorithmus4. Empirischer Vergleich5. Mining top-K itemsets in a sliding window6. Zusammenfassung7. Fragen / Diskussion

Page 33: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

33Florian Spitzl „Mining top-K frequent itemsets from data streams“

Zusammenfassung

Chernoff-bassierter Algorithmusbeweisbare Gütebenötigt nur begrenzt Speicherplatz unabhängig von der Stream Längeaber: Schwächen bei abhängigen Daten

Top-K lossy counting Algorithmusbenötigt O(1/ε log (εn)) Speicher

Beide Algorithmen auch mit einem sliding window Ansatz kombinierbar

Page 34: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

34Florian Spitzl „Mining top-K frequent itemsets from data streams“

Zusammenfassung (II)

„Our experiments shows perfect solutions in almost all cases“

Page 35: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

35Florian Spitzl „Mining top-K frequent itemsets from data streams“

Gliederung

1. Einleitung2. Chernoff-basierter Algorithmus3. top-K lossy counting Algorithmus4. Empirischer Vergleich5. Mining top-K itemsets in a sliding window6. Zusammenfassung7. Fragen / Diskusion

Page 36: „Mining top-K frequent itemsets from data streams“ · Florian Spitzl „Mining top-K frequent itemsets from data streams“ 2 Gliederung 1. Einleitung 2. Chernoff-basierter Algorithmus

36Florian Spitzl „Mining top-K frequent itemsets from data streams“

Fragen / Diskussion

FragenDiskussion

Quellen:„Mining top-K frequent itemsets from data streams“(Raymond Chi-Wing Wong, Ada Wai-Chee Fu)

„Mining top-K itemsets over a sliding window based on Zipfian Distribution“(Raymond Chi-Wing Wong, Ada Wai-Chee Fu)

„Approximate Frequency Counts over Streaming Data“(G. S. Manku, R. Motwani)