• Keine Ergebnisse gefunden

Häufige Mengen ohneKandidatengenerierung

N/A
N/A
Protected

Academic year: 2022

Aktie "Häufige Mengen ohneKandidatengenerierung"

Copied!
8
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

1 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Häufige Mengen ohne Kandidatengenerierung

Jiawei Han, Micheline Kamber 2006 (2nd ed.)

! Ziel 1: Kompression der Datenbank in eine Frequent-Pattern Tree Struktur (FP-Tree)

! Stark komprimiert, vollständig bzgl. des Findens häufiger Mengen

! Vermeidung von aufwändigen Datenbankdurchläufen

! Ziel 2: Entwicklung einer effizienten Methode zur Suche nach häufigen Mengen auf Basis von FP-Trees

! Divide-and-conquer: Zerlegung der Aufgaben in kleinere Teilaufgaben

! Ohne Kandidatengenerierung

2 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

FP-Tree: Transaktionen

! Ein FP-Tree fasst Transaktionen als Wörter auf und stellt gemeinsame Präfixe verschiedener Wörter dar.

! Für jede Transaktion wird ein Pfad im FP-Tree angelegt:

! Pfade mit gemeinsamem Präfix

" Häufigkeit aller Knoten auf dem Weg + 1 und Suffix darunter hängen

! Kein gemeinsamer Präfix vorhanden

" neuen Zweig anlegen

3 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Fakultät für Informatik LS 8

technische universität dortmund

FP-Tree: Items

! Einfügen der Items in den Transaktionen nach Häufigkeiten sortiert,

nicht-häufige Items werden nicht eingetragen

! Parallel anlegen: Header Table verweist auf das Vorkommen der items im Baum. Auch die Tabelle ist nach Häufigkeit geordnet.

! Zu jedem Eintrag wird eine Liste von zugehörigen Knoten im Baum gespeichert

4 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Fakultät für Informatik LS 8

technische universität dortmund

TID Items (ordered) frequent items 100 {f, a, c, d, g, i, m, p} {f, c, a, m, p}

200 {a, b, c, f, l, m, o} {f, c, a, b, m}

300 {b, f, h, j, o} {f, b}

400 {b, c, k, s, p} {c, b, p}

500 {a, f, c, e, l, p, m, n} {f, c, a, m, p}

Schritt 1 und 2:

Bestimmung der häufigen 1-Mengen für s

min

= 0.5 und Ordnung nach Häufigkeit Schritte:

1. Finde häufige 1-Mengen 2. Ordnung nach

absteigender Häufigkeit 3. Konstruiere FP-Tree und

Header Table während eines 2.

Datenbankdurchlaufs

Konstruktion eines FP-Trees

(2)

5 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

dortmund LS 8

{}

f:4 c:1 b:1 p:1 b:1 c:3 a:3

b:1 m:2

p:2 m:1 Header Table

Item frequency head

f 4

c 4

a 3

b 3

m 3

p 3

Schritt 3: Konstruktion des FP-Trees und der Header Table

Schritte:

1. Finde häufige 1-Mengen 2. Ordnung nach

absteigender Häufigkeit 3. Konstruiere FP-Tree und

Header Table während eines 2.

Datenbankdurchlaufs

Konstruktion eines FP-Trees

6 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

dortmund LS 8

Vorteile von FP-Trees

! Vollständigkeit:

! Es wird niemals ein langes Pattern einer Transaktion geteilt

! Die notwendigen Informationen zum Finden der Frequent Itemsets bleiben vollständig erhalten

! Kompaktheit:

! Reduktion irrelevanter Informationen – nicht-häufige Items werden nicht gespeichert.

! Durch die Ordnung nach absteigender Häufigkeit werden häufigere Items wahrscheinlicher mehrfach verwendet.

! Speicheraufwand ist niemals größer als für die Originaldatenbank.

Beispiel: Für Connect-4 DB ist die Kompressionsrate größer als 100!

7 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Fakultät für Informatik LS 8

technische universität dortmund

Finden häufiger Mengen mit FP- Trees

! Grundidee (divide-and-conquer)

! Rekursives Anwachsen häufiger Mengen unter Ausnutzung des FP-Trees

! Methode

! Konstruiere die Conditional Pattern Base (Schritt 1) für jedes Item und berechne auf dieser dann den Conditional FP-Tree (Schritt 2)

! Wiederhole diesen Prozess für jeden neuen Conditional FP- Tree…

! …bis der resultierende FP-Tree leer ist.

8 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Fakultät für Informatik LS 8

technische universität dortmund

Schritt 1: FP-Tree zu Conditional Pattern Base

! Die Header Tabelle durchgehen. Die Verweise führen zu den Pfaden, in denen das Item vorkommt.

! Das Item wird als Suffix betrachtet und alle Präfixe davon als Bedingungen für dieses Suffix. Die Präfixe werden in die Conditional Pattern Base eingetragen.

! Die Häufigkeiten der Präfixe werden im Knoten selbst

abgelesen und ebenfalls eingetragen.

(3)

9 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Conditional pattern bases item cond. pattern base

c f:3

a fc:3

b fca:1, f:1, c:1 m fca:2, fcab:1

p fcam:2, cb:1

{}

f:4 c:1 b:1 p:1 b:1 c:3 a:3

b:1 m:2

p:2 m:1 Header Table

Item frequency head

f 4

c 4

a 3

b 3

m 3

p 3

Schritt 1: Conditional Pattern Base

10 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Conditional pattern bases item cond. pattern base

c f:3

a fc:3

b fca:1, f:1, c:1 m fca:2, fcab:1 p fcam:2, cb:1 {}

f:4 c:1 b:1 p:1 b:1 c:3 a:3

b:1 m:2 p:2 m:1 Header Table

Item frequency head

f 4

c 4

a 3

b 3

m 3

p 3

Schritt 1: Conditional Pattern Base

11 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Fakultät für Informatik LS 8

technische universität dortmund

Conditional pattern bases item cond. pattern base

c f:3

a fc:3

b fca:1, f:1, c:1 m fca:2, fcab:1

p fcam:2, cb:1

{}

f:4 c:1 b:1 p:1 b:1 c:3 a:3

b:1 m:2

p:2 m:1 Header Table

Item frequency head

f 4

c 4

a 3

b 3

m 3

p 3

Schritt 1: Conditional Pattern Base

12 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Fakultät für Informatik LS 8

technische universität dortmund

Schritt 2: Conditional Pattern Base zu Conditional FP Tree

! Präfixpfade eines Suffixes bilden die bedingte Basis, d.h. sie werden im Prinzip wie Transaktionen einer ursprünglichen Datenbank behandelt.

! Diejenigen Präfixpfade, die häufiger als smin sind, bilden den bedingten FP-Tree (wie zuvor).

! Es kann mehrere Pfade im bedingten Baum geben!

(4)

13 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

dortmund LS 8

m-conditional pattern base:

fca:2, fcab:1

{} | m

f:3 c:3 a:3 m-conditional FP-tree

Rekursive Aufrufe liefern alle häufigen Mengen mit m m,

fm, cm, am, fcm, fam, cam, fcam

Schritt 2: Conditional FP-Tree

! Benutze jeden Eintrag in der Conditional Pattern Base als

“Transaktion” einer Datenbank (hier: 2 Transaktionen mit fca und eine Transaktion mit fcab)

! Generiere hieraus den zugehörigen Conditional FP-Tree

14 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

dortmund LS 8

TID Items (ordered) frequent items

100 {b, c, f} {f, b, c}

200 {a, b, c} {b, c}

300 {d, f} {f}

400 {b, c, e, f} {f, b, c}

500 {f, g} {f}

Entferne alle nicht- häufigen Mengen (s min = 0,4 ) und ordne Transaktionen nach Häufigkeit.

Header Table Item frequency

f 4

c 3

b 3

f:4 b:2 c:2

{}

b:1 c:1

Initialisiere Header Table und baue den ersten FP-Tree auf.

Vollständiges Beispiel

15 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Fakultät für Informatik LS 8

technische universität dortmund

f:4 b:2 c:2

{}

b:1 c:1

Für P-bedingten Baum:

• Alle Vorfahren von P-Knoten in neuen Baum übernehmen

• Update aller Counts durch Summe der ursprünglichen P - Nachfahren Header Table 1

Item frequency

f 4

c 3

b 3

Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008 16

Fakultät für Informatik LS 8

technische universität dortmund

f:4 b:2 c:2

{}

b:1 c:1 {f}:4

Für P-bedingten Baum:

• Alle Vorfahren von P-Knoten in neuen Baum übernehmen

• Update aller Counts durch Summe der ursprünglichen P - Nachfahren Header Table 1

Item frequency

f 4

c 3

b 3

(5)

17 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

f:4 b:2 c:2

{}

b:1 c:1

f:2 b:2

{}|c b:1 {c}:3

{f}:4

Für P-bedingten Baum:

• Alle Vorfahren von P-Knoten in neuen Baum übernehmen

• Update aller Counts durch Summe der ursprünglichen P - Nachfahren Header Table 1

Item frequency

f 4

c 3

b 3

Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008 18

f:4 b:2 c:2

{}

b:1 c:1

f:2 b:2

{}|c b:1 {c}:3

{f}:4

Für P-bedingten Baum:

• Alle Vorfahren von P-Knoten in neuen Baum übernehmen

• Update aller Counts durch Summe der ursprünglichen P - Nachfahren Header Table 2

Item frequency

b 3

f 2

19 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Fakultät für Informatik LS 8

technische universität dortmund

f:4 b:2 c:2

{}

b:1 c:1

f:2 b:2

{}|c b:1

{c}:3 {bc}:3

f:2 {}|bc {f}:4

Für P-bedingten Baum:

• Alle Vorfahren von P-Knoten in neuen Baum übernehmen

• Update aller Counts durch Summe der ursprünglichen P - Nachfahren Header Table 3

Item frequency

f 2

Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008 20

Fakultät für Informatik LS 8

technische universität dortmund

f:4 b:2 c:2

{}

b:1 c:1

f:2 b:2

{}|c b:1

{c}:3 {bc}:3

{fbc}:2 f:2

{}|bc {f}:4

Für P-bedingten Baum:

• Alle Vorfahren von P-Knoten in neuen Baum übernehmen

• Update aller Counts durch Summe der ursprünglichen P - Nachfahren Header Table 3

Item frequency

f 2

(6)

21 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

dortmund LS 8

f:4 b:2 c:2

{}

b:1 c:1

f:2 b:2

{}|c b:1

{c}:3 {bc}:3

{fbc}:2 f:2

{}|bc

{fc}:2 {f}:4

Für P-bedingten Baum:

• Alle Vorfahren von P-Knoten in neuen Baum übernehmen

• Update aller Counts durch Summe der ursprünglichen P - Nachfahren Header Table 2

Item frequency

b 3

f 2

Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008 22

dortmund LS 8

f:4 b:2 c:2

{}

b:1 c:1

f:2 b:2

{}|c b:1

f:2 {}|b

{c}:3 {bc}:3

{fbc}:2 f:2

{}|bc

{b}:3

{fc}:2 {f}:4

Für P-bedingten Baum:

• Alle Vorfahren von P-Knoten in neuen Baum übernehmen

• Update aller Counts durch Summe der ursprünglichen P - Nachfahren Header Table 1

Item frequency

f 4

c 3

b 3

23 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Fakultät für Informatik LS 8

technische universität dortmund

f:4 b:2 c:2

{}

b:1 c:1

f:2 b:2

{}|c b:1

f:2 {}|b

{c}:3 {bc}:3

{fbc}:2 f:2

{}|bc

{b}:3

{fb}:2

{fc}:2 {f}:4

Für P-bedingten Baum:

• Alle Vorfahren von P-Knoten in neuen Baum übernehmen

• Update aller Counts durch Summe der ursprünglichen P - Nachfahren Header Table 2’

Item frequency

f 2

Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008 24

Fakultät für Informatik LS 8

technische universität dortmund

Grundlagen Frequent Pattern Growth

! Pattern Growth Property

! Sei ! ein häufiges Item Set und B sei die Conditional Pattern Base von !. Sei weiter " ein Item Set in B.

! # " ist ein häufiges Item Set gdw. " häufig ist in B.

! “abcdef ” is ein häufiges Item Set gdw.

! “abcde ” häufig ist und

! “f ” häufig ist in der Menge von Transactionen, die “abcde ”

enthalten

(7)

25 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Algorithmus FP-growth

! Input: D eine Transaktionsdatenbank, smin ein Schwellwert der Häufigkeit

! Scan von D, Erstellen der Menge F häufiger items und ihrer Häufigkeiten, Ordnen von F in absteigender Häufigkeit.

! Wurzel des FP Trees ist Null. Für jede Transaktion Trans in D:

! nach Häufigkeit gemäß F geordnete items in Trans werden zur Liste [p|P], wobei p das erste item und P die restlichen sind.

insert_tree([p|P],T)

! FP-growth(FP_tree, null)

26 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Routine: insert_tree([p|P],T)

! Wenn T ein Kind N hat mit N.item_name = p.item_name dann erhöhe Häufigkeit von N +1.

! Sonst bilde neuen Knoten N mit Häufigkeit = 1 direkt unter T und füge Knotenverweise zu den Knoten i mit dem selben i.item_name ein.

! Solange P nicht {} ist, insert_tree(P,N).

27 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Fakultät für Informatik LS 8

technische universität dortmund

FP-growth(Tree, a)

! Wenn Tree ein einziger Pfad P ist,

! dann generiere für jede Kombination " von Knoten in P Muster "#! mit support = min { support eines items in " }.

! Sonst für jedes a

i

in header von Tree

! generiere Muster " = a

i

# ! mit support = a

i

.support;

! konstruiere Conditional Pattern Base von " und daraus den Conditional FP-Tree von " : Tree"

! Wenn Tree" noch nicht {}, dann FP-growth(Tree", ")

! EINFACH rekursiv bis leer

28 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

Fakultät für Informatik LS 8

technische universität dortmund

Wie schnell ist FP-growth?

! Empirische Performanzanalysen zeigten, dass FP-growth etwa eine Größenordnung schneller ist als Apriori

! Begründung

! Keine Kandidatengenerierung, keine Kandidatentests

! Wesentlich kompaktere Datenstruktur

! Keine wiederholten Datenbankscans

! Basisoperationen sind Zählen und Aufbau der FP -Trees

(8)

29 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

dortmund LS 8

FP-growth vs. Apriori: Einfluss von s min

0 10 20 30 40 50 60 70 80 90 100

0 0.5 1 1.5 2 2.5 3

Support threshold(%)

R un ti m e( se c. )

D1 FP-grow th runtime D1 Apriori runtime

Datensatz T25I20D10K

30 Prof. Dr. Katharina Morik | Wissensentdeckung in Datenbanken SoSe 2008

dortmund LS 8

Was wissen wir jetzt?

! FP-growth als Alternative zu Apriori

! Schneller, weil keine Kandidaten generiert werden

! Kompaktes Speichern

! Basisoperation ist einfach Zählen

! Der FP-Tree gibt Präfixbäume für ein Suffix an

! Die Ordnungsrelation ist die Häufigkeit der Items

! Der Baum wird vom häufigsten zum seltensten gebaut

Referenzen

ÄHNLICHE DOKUMENTE

Hier werden Entschei dun - Andersen-Grundschule, Kattegatstraße 26 Carl-Kraemer-Grundschule, Zechliner Straße 4 Wilhelm-Busch-Schule(Grundschule und Schule mit Sekundarstufe I

„Ist das nicht toll, ganz genau sind hier sogar die Nieten eingezeichnet, mit denen die Rüstung zu - sammenhält – und das sind nicht wenige!“ Zu sehen sind außerdem Fotos, die

„Es soll sich auch für die Menschen, die weniger Geld haben, lohnen, hier im Kiez zu leben.“. In Kooperation mit der Nachbar- schaftsEtage Fabrik Osloer Straße gibt sie

Ab sofort können Ideen für Projekte im Quartiersfonds 3 (QF 3), die in den Jahren 2010, 2011 und 2012 im Quartiersmanagementgebiet (QM-Gebiet) Soldiner Straße umgesetzt werden

Der Künstler hat das Banner ent- worfen, die Dopplung des Turms der Stephanuskirche mit der Aufstiegstreppe auf dem Stoff und real vermittelt für ihn etwas, das für den Soldiner Kiez

Für mich ist es so – und es gibt da sicher auch unter- schiedliche Betrachtungsweisen – dass die heute Aktiven im Jahr 2007 auf die eine oder andere Art zusammen gefunden haben..

Seit dreißig Jahren bietet die NachbarschaftsEtage Angebote für Fami- lien, Räume für Veranstaltungen und Aktivitäten, Kindertheater, Nach- barschaftsfeste,

Und weil das nicht nur der Kalender vom Seniorendomizil, sondern auch der der Hotelgruppe Adina ist, werden die Soldiner Senioren Hotels in der ganzen Welt verschönern: „Das ist