• Keine Ergebnisse gefunden

FernUniversität in Hagen Seminar 01912 „Data Mining“ im Sommersemester 2008 „Häufige Muster und Assoziationsregeln“ Thema 1.1.1 Der Apriori-Algorithmus

N/A
N/A
Protected

Academic year: 2021

Aktie "FernUniversität in Hagen Seminar 01912 „Data Mining“ im Sommersemester 2008 „Häufige Muster und Assoziationsregeln“ Thema 1.1.1 Der Apriori-Algorithmus"

Copied!
43
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

FernUniversität in Hagen

Seminar 01912 „Data Mining“

im Sommersemester 2008

„Häufige Muster und Assoziationsregeln“

Thema 1.1.1

Der Apriori-Algorithmus

Referentin: Olga Riener

(2)

1. Einführung ...3

2. Formale Notationen ...8

3. Def: Assoziationsproblem...14

4. Basisalgorithmen zur Entdeckung von Assoziationsregeln...16

5. Apriori-Algorithmus ...18

6. Apriori-Erweiterungen ...29

7. Sonstige Ansätze zur Effizienzsteigerung von Apriori ...34

8. Fazit ...41

(3)

1. Einführung

(4)

Was ist Data Mining?

Erfolgsrezept in vielen Bereichen = Information + richtige Auswertung dieser Information.

 Datenbanken nehmen große Datenbestände auf.

(Lagerbestände, Auftragsdaten, Verkaufs- und Umsatzdaten, Personendaten, usw.)

 Der KDD-Einsatz („Knowledge Discovery in Databases“) entdeckt und interpretiert das nützliche Wissen aus diesen Daten.

Data Mining ist das Herzstück des KDD-Prozesses.

„Unter Data Mining versteht man das systematische (in der Regel automatisierte oder halbautomatische) Entdecken und Extrahieren von Strukturen und Beziehungen in großen Datenmengen.“

(5)

Anwendungsbeispiel des Data Mining

Die Warenkorbanalyse ist einer der geläufigsten Anwendungsbeispiele des Data Mining.

Hier geht es um die Frage: „Welche Produkte werden häufig zusammen gekauft?“

Erkenntnisse:

“Kauft ein Kunde Milch und Butter, besteht eine große Wahrscheinlichkeit, dass er sich auch noch für Brot entscheidet.”

Hm-m-m, welche Produkte werden bei uns häufig zusammen gekauft?

Kunde 1: Brot, Milch, Butter Kunde 2: Brot, Zucker, Milch

Kunde 3: Brot, Milch, Butter, Mehl

Kunde 4: Zucker, Sahne

(6)

Aufgabenbereiche und Methoden des Data Mining

Aufgabe Aufgabenstellung Wesentliche Methoden

Segmentierung Bildung von Klassen aufgrund von Ähnlichkeiten der Objekte.

- Clusteranalyse - Neuronale Netze

Klassifikation Identifikation der Klassenzugehörigkeit von Objekten auf der Basis gegebener Merkmale.

- Diskriminanzanalyse - Neuronale Netze - Entscheidungsbäume

Vorhersage

Prognose der Werte einer abhängigen kontinuierlichen Variable auf Basis einer funktionalen Beziehung.

- Regressionsanalyse - Neuronale Netze - Entscheidungsbäume

Assoziation Aufdecken von strukturellen Zusammenhängen in Datenbasen mit Hilfe von Regeln.

- Assoziationsanalyse

(7)

Einsatzgebiete des Data Mining

Marketing

 Kundensegmentierung

 Responseanalyse von Werbemitteln

 Warenkorbanalyse

 Storno-/Reklamations-/Kündigungsanalyse

Finanzdienstleistungen

 Kreditrisikobewertung

 Prävention des Kreditkartenmissbrauchs

 Bildung von Versicherungsrisikoklassen

Beschaffung/Produktion

 Materialbedarfsplanung

 Qualitätssicherung und Kontrolle

Controlling

 Ergebnisabweichungsanalyse

 Entdecken von Controlling-Mustern

(8)

2. Formale Notationen

(9)

Gegeben:

Definition Beispiel

F: Menge von eindeutigen Transaktionsbezeichnern ID-Nummern der Kaufvorgänge O: Menge von Objektbezeichnern (items) Alle zum Verkauf stehenden Waren T = (TID, I): Transaktion, wo TID  F und I  O Kaufvorgang eines Kunden

I = {i1 , i2 , ... , ik}: Elemente (items) einer Transaktion Gekaufte Waren bei einem Einkauf D = T : Menge aller Transaktionen Verkaufsdatenbank

Assoziationsregel

 eine Aussage der Form: „Wenn ein Ereignis X eingetreten ist, dann besteht eine hohe Wahrscheinlichkeit, dass auch Ereignis Y eintritt“.

 Für X,Y O, X  Y=  ist X Y eine Assoziationsregel.

 Eine Transaktion T=(TID,I) erfüllt eine Transaktionsregel R: X Y gdw. (X Y) .

Notation: T  R.

 Arten der Assoziationsregeln:

- nützliche Assoziationsregeln - syntaktisch triviale Assoziationsregeln - semantisch triviale Assoziationsregeln - unerklärliche Assoziationsregeln

(10)

Unterstützungsgrad (Support)

Seien F, O und D wie oben definiert.

Für ein itemset X O ist der Unterstützungsgrad (support) von X in D wie folgt definiert:

|{ TD| T=(TID,I), X  I }|

supportD(X) = 

|D|

Somit misst supportD(X) den (prozentualen) Anteil der Transaktionen mit X in der Menge aller Transaktionen D an.

Der Unterstützungsgrad (support) einer Assoziationsregel R: (A B) in D ist wie folgt definiert:

|{T D | T=(TID,I), (A ) I }|

supportD(A  =  = support D(A 

|D|

Offensichtlich misst supportD(A  die statistische Signifikanz der Regel R und wird als der (prozentuale) Anteil der Transaktionen mit (A B) in der Menge aller Transaktionen D berechnet.

(11)

Vertrauensgrad (confidence)

Die Konfidenz misst die Sicherheit der entdeckten Assoziationsregel und präsentiert somit die Stärke bzw. den Vertrauensgrad für dieser Regel.

Die Konfidenz ist der (prozentuale) Anteil der Transaktionen mit (X Y) in der Menge der Transaktionen D, deren Itemsets X enthalten :

|{T D | T=(TID,I), (X Y) I }| supportD(X Y)

confidenceD(X Y) =  = 

|{T D | T=(TID,I), X I }| supportD(X)

Attributwertmenge (itemset)

Eine Menge aus einem oder mehreren items einer Transaktion wird als Muster oder als Attributwertmenge (itemset) bezeichnet

Z.B. Muster ({Milch, Brot}) in einer Kauftransaktion.

(12)

k-Attributwertmenge (k-itemset)

Eine aus k items bestehende Attributwertmenge

Häufiges Muster

Ein häufiges Muster ist eine Attributwertmenge M O mit einem Unterstützungsgrad größer als eine vorgegebene minimale Unterstützung min_sup. D.h. der Anteil der Transaktionen in D mit dieser Attributwertmenge muss mindestens min_sup sein:

supportD(X) ≥ min_sup

(13)

Beispiel: Formale Notationen

Assoziationsregel

„Kauft ein Kunde Brot und Butter, so kauft er auch Milch“

Regel: {Brot, Butter } {Milch}

Unterstützunggrad (support)

support({Brot}) = 5/6 = 83.3%

support({Milch},{Butter}) = 3/6 = 50%

support({Brot},{Milch}) = 4/6 = 66,6 %

Einkaufstransaktionen

TID Attribute

100 Brot, Milch, Butter 200 Brot, Milch, Käse 300 Brot, Marmelade 400 Milch, Butter, Brot

500 Brot, Milch, Butter, Käse 600 Marmelade

Vertrauensgrad (confidence)

support({Brot}{Milch}) 2/3

confidence(Brot Milch) =  =  = 80%

support({Brot}) 5/6 Häufige Muster (min_sup=45%)

Die Attributwertmengen ({Brot}), ({Milch},{Butter}), ({Brot},{Milch}) sind häufige Muster.

Die Attributwertmengen ({Butter, Käse}),(Marmelade}) sind keine häufigen Muster.

(14)

3. Def: Assoziationsproblem

(15)

Die Entdeckung interessanter Zusammenhänge in größeren Datenbeständen erfolgt durch die Suche nach allen Assoziationsregeln.

Gegeben:

 Menge D der Transaktionen

 ein minimaler Unterstützungsgrad (support) min_sup;

 ein minimaler Vertrauensgrad (confidence) min_conf.

Gesucht:

alle Assoziationsregel X Y, so dass

 support(X Y)  min_sup

 confidence(X Y)  min_conf

(16)

4. Basisalgorithmen zur Entdeckung von

Assoziationsregeln

(17)

AIS-Algorithmus

(Agrawal, Imielinski and Swami, 1993)

 Der erste Algorithmus zur Generierung von einfachen Assoziationsregeln.

 Die potentiellen häufigen Attributwertmengen werden beim Scannen der Datenbank „on the fly" generiert und gezählt (sehr rechenintensiv).

SETM-Algorithmus

(Houtsma und Swami, 1993)

 Motivation: SQL-Nutzung für die Suche nach Assoziationsregeln.

 Die potentiellen häufigen Attributwertmengen (analog dem AIS-Algorithmus) werden basierend auf Transformationen der Datenbank sozusagen „on the fly" generiert.

 Die Aufzählung der Kandidaten ist ein separater Schritt.

Nachteile von AIS und SETM

 Das überflüssige Generieren und Aufzählen der Kandidaten, die sich später als nicht häufig erweisen.

(18)

5. Apriori-Algorithmus

(19)

Apriori-Vorgehen

(Rakesh Agrawal und Ramakrishnan Srikant, 1994)

Erste Phase:

 Die Suche nach häufigen Mustern (Attributwertmengen) mit dem eigentlichen Apriori- Algorithmus.

Zweite Phase:

 In der zweiten Phase werden aus diesen häufigen Mustern Regeln gebildet.

(20)

Apriori- Grundidee

Bei der Ermittlung der häufigen Muster (Attributwertmengen) wird „a priori“ gesetztes Wissen (vorausgesetztes Wissen) verwendet:

Jede nichtleere Teilmenge einer häufigen Attributwertmenge muss auch eine häufige Attributwertmenge sein.

Dieses „a priori“-Wissen wird als nicht-monotone Eigenschaft des Unterstützungsgrads aufgefasst:

 X,Y : ( X  Y )  support(X)  support(Y)

Diese Eigenschaft hilft im Apriori-Algorithmus den Suchraum zu verkleinern und alle Obermengen der aussichtslosen k-elementigen Attributwertmengen für weitere Iteration zu ignorieren.

(21)

Konventionen

 Ck (k  1) - die Menge aller k-elementigen potentiell häufigen Attributwertmengen.

 Lk (k  1) - die Menge aller k-elementigen häufigen Attributwertmengen.

(22)

Apriori-Algorithmus: Aufbau

Initialisiere die Menge der häufigen 1-elementigen Attributwertmengen

1. Join-Phase, die Ck–Menge wird erzeugt, indem die (k-1)-Attributwertmenge Lk-1 mit sich selbst vereinigt wird.

2. Pruning-Phase, aus Ck–Menge werden alle k-elementigen Attributwertmengen entfernt, die eine Teilmenge enthalten, welche nicht häufig ist. (Apriori-Eigenschaft)

3. Die übrig gebliebenen Kandidaten aus Ck werden an Hand der Datenbasis überprüft, ob diese wiederum häufig sind. Die Kandidaten, die diesen Test bestehen, werden in die Menge Lk aufgenommen.

Wiederhole 1-3 so oft, bis keine weitere häufige Attributwertmenge gefunden werden kann.

(23)

Der Apriori-Algorithmus: Pseudo-Code

( 1) L1 = {häufige 1-Attributenwertmenge};

( 2) for ( k=2 ; Lk-1 ≠ { } ; k++ ) do begin

( 3) Ck= apriori-gen(Lk-1 ); // Berechnung neuer Kandidaten ( 4) for all Transaktionen t  D do begin

( 5) Ct = subset(Ck,t) ; // Berechnung aller in t enthaltene Kandidaten ( 6) for all Kandidaten c  Ct do

( 7) c.count++; //

( 8) end

( 9) Lk = {c  Ck | c.count >= minsup}

(10) end

(11) return: k Lk

(24)

Prozedur Apriori-gen: Kandidat-Generierung

Berechnet k-elementigen potentiell häufigen Attributwertmengen procedure apriori-gen(Lk-1: (k-1)-Attributenwertmenge)

//Join-Schritt ( 1) insert into Ck

( 2) select p.item1 , p.item2 , …p.itemk-1 , q.itemk-1 ( 3) from Lk-1 p , Lk-1 q

( 4) where p.item1=q.item1 ,….,.p.item k-2=q. item k-2 , p.item k-1<q. item k-1

// Prune-Schritt

( 5) for all itemsets c Ck do

( 6) for all (k-1)–subset s of c do ( 7) if ( s Lk-1) then

( 8) delete c from Ck end procedure

(25)

Subroutine subset

 Testet ob die übrig gebliebenen Kandidaten aus Ck auch den vorgegebenen Unterstützungsgrad min_sup besitzen.

 Erfordert einen kompletten DB-Durchlauf.

 Effiziente Implementierung ist sehr wichtig.

 Hierfür wird ein Hashverfahren angewendet und die k-elementigen Kandidatmengen Ck in einem Hash-Tree gespeichert.

(26)

Der Apriori-Algorithmus: Beispiel

Geforderte minimale Unterstützungsgrad für eine häufige Attributwertmenge ist min_sup=50%

Transaktionen 1. Iteration

TID Gekaufte Artikel C1 – Menge

100 {a, b, c} Itemset Support

200 {a, b, d} {a} 5/6 = 83,3 % L1 – Menge

300 {a, e} {b} 4/6 = 66,6 % Itemset Support

400 {a, b, c} {c} 3/6 = 50 % {a} 5/6 = 83,3 %

500 {a, b, c, d} {d} 2/6 = 33,3 % {b} 4/6 = 66,6 %

600 {e} {e} 2/6 = 33,3 % {c} 3/6 = 50 %

2. Iteration 3. Iteration

C2 – Menge L2 – Menge

Itemset Support Itemset Support

{a, b} 4/6 = 66,6 % {a, b} 4/6 = 66,6 % C3 – Menge L3 – Menge

{a, c} 3/6 = 50 % {a, c} 3/6 = 50 % Itemset Support Itemset Support

{b, c} 3/6 = 50 % {b, c} 3/6 = 50 % {a, b, c} 3/6 = 50 % {a, b, c} 3/6 = 50 %

4. Iteration

C4 – Menge L4 – Menge

Itemset Support Itemset Support

{} {}

(27)

Erkennung der Assoziationsregeln

Gegebenen (II Phase des Apriori-Verfahrens):

 sämtliche häufige Muster (X Y) eines Datenbestandes, wo support(X Y)  min_sup

Gesucht:

 die Regeln (X Y) mit confidence(X Y)  min_conf

Vorgehen:

 Für jede häufige Attributwertmenge l werden nicht leere Teilmengen von l gebildet

 Für jede nicht leere Teilmenge s von l wird die Regel „s (l-s)“ generiert, falls

support(l)

 ≥ min_conf support(s)

(28)

Erkennung der Assoziationsregeln: Beispiel

(Fortführung des Apriori- Beispiels)

Als Ergebnis des Gesamtverfahrens werden nur diejenigen Assoziationsregeln ausgegeben, welche mindestens den vorgegebenen Vertrauensgrad min_conf=75 % besitzen.

Regeln mit Support

Erfüllende Transaktionen

Unterstützungsgrad (support)

Vertrauensgrad (confidence)

{a} → {b} 100, 200, 400, 500 66 % 80 %

{b} → {a} 100, 200, 400, 500 66 % 100 %

{b} → {c} 100, 400, 500 50 % 75 %

{c} → {b} 100, 400, 500 50 % 100 %

{a} → {c} 100, 400, 500 50 % 60 %

{c} → {a} 100, 400, 500 50 % 100 %

{a, c} → {b} 100, 400, 500 50 % 100 %

{b, a} → {c} 100, 400, 500 50 % 75 %

{c,b} → {a} 100, 400, 500 50 % 100 %

{b} → {a, c} 100, 400, 500 50 % 75 %

{c} → {b, a} 100, 400, 500 50 % 100 %

{a} → {b, c} 100, 400, 500 50 % 60 %

(29)

6. Apriori-Erweiterungen

(30)

Laufzeitverhalten des Apriori:

 gut bei kleinen und mittleren Datenmengen

 schlecht bei sehr großen Datenmengen

Abhilfe durch die Apriori-Modifikationen:

 AprioriTID

 AprioriHybrid

(31)

AprioriTID

 Die Datenbank D wird nach dem ersten Durchlauf nicht mehr für die Berechnung der Unterstützung benutzt.

 Die Kandidaten werden als Hilfsmenge C’k kodiert.

 Jeder Kandidat ist als Eintrag der Form <TID, {Xk}> kodiert, wo Xk eine potentiell häufige k- Attributwertmenge in Transaktion TID ist.

 Bei k=1 wird die gesamte Datenbank als C’1 aufgefasst.

 Jede weitere Iteration k+1 nutzt dann nicht die Datenbank, sondern die Hilfsmenge C’k

Der Vorteil: die Anzahl der Datenbankzugriffe wird gesenkt.

Der Nachteil: bei der ersten Iterationen wird viel Speicherplatz benötigt.

(32)

AprioriTID-Algorithmus: Beispiel

(min_sup=50%)

Datenbank C’1 L1

TID Attributen TID Hilfsmenge der Itemsets Itemset Support

100 a, c, d 100 {{a},{c},{d}} {a} 2/4 = 50%

200 b, c, e 200 {{b},{c},{e}} {b} 3/4 = 75%

300 a, b, c, e 300 {{a},{b},{c},{e}} {c} 3/4 = 75%

400 b, e 400 {{b},{e}} {e} 3/4 = 75%

C2

Itemset C’2

{a b} TID Hilfsmenge der Itemsets L2

{a c} 100 {{a c}} Itemset Support

{a e} 200 {{b c},{b e}, {c e}} {a c} 2/4 = 50%

{b c} {b c} 2/4 = 50%

{b e}

300 {{a b},{a c},{a e},{b c}, {b e},{c e}}

{b e} 3/4 = 75%

{c e} 400 {{b e}} {c e} 2/4 = 50%

C3 C’3

Itemset TID Hilfsmenge der Itemsets L3

{b c e} 200 {{ b c e }} Itemset Support

300 {{ b c e }} { b c e } 2/4 = 50%

(33)

AprioriHybrid

 kombiniert die besten Eigenschaften von Apriori und AprioriTID in einem Verfahren.

 Apriori-Algorithmus wird in früheren Iterationen verwendet.

 Wechsel zum AprioriTID-Algorithmus in späteren Iterationen.

 Wechsel zum AprioriTID-Algorithmus wenn die Hilfsmenge C’k für die kodierten Kandidaten in den operativen Speicher passt.

 Nachteil beim Wechsel: Verbrauch zusätzlicher Ressourcen

(34)

7. Sonstige Ansätze zur

Effizienzsteigerung von Apriori

(35)

Hauptansätze für die Effizienzsteigerung des Apriori-Verfahrens:

 Reduktion der Anzahl der Datenbankzugriffe/Datenbankscans

 Reduktion der Anzahl der Kandidaten

 Beschleunigung der Berechnung des Unterstützungsgrads für die Kandidaten

Algorithmen für die Effizienzsteigerung des Apriori-Verfahrens:

 Hashbasierte Techniken (DHP)

 Reduzierung der Transaktionen

 Partitionierung

 Sampling

 Dynamische Aufzählung der Attributwertmenge (DIC)

(36)

Hashbasierte Techniken (DHP - „direkt hashing and pruning“)

 Autoren: J. Park, M. Chen and P. Yu, 1995

 Reduzierung der potentiell häufigen k-Attributwertmenge Ck für k>1.

 Verfahren:

- Jede k-Attributwertmenge X  Ck für k>1 kommt zusätzlich in den Hash-Behälter HBX; - Zähler (HBX) < min_sup  X kann nicht häufig sein und wird aus Ck entfernt.

(37)

Reduzierung der Transaktionen

 Reduzierung der Anzahl der Transaktionen, die in den künftigen Iterationen gescannt werden.

 Verfahren:

- Eine Transaktion T’ ohne häufigen k-Attributwertmengen kann auch keine häufigen k+1- Attributwertmengen beinhalten und wird besonders gekennzeichnet.

- Bei den nachfolgenden DB-Durchläufe für j-Attributwertmengen bei j>k werden alle besonders gekennzeichneten Transaktion ignoriert.

(38)

Partitionierung

 Autoren: A. Savasere, E. Omiecinski and S. Navathe, 1995.

 Jede häufige Attributwertmenge in D soll mindestens in einer der Partitionen von D als häufig vorkommen.

 Benötigt nur 2 DB-Durchläufe.

 Verfahren (2 Phasen) :

- 1. Phase: verteilt die Transaktionen von D in n disjunkte Partitionen und sucht nach lokalen häufigen Attributwertmengen in jeder Partition. Bei der Bestimmung der lokalen häufigen Attributwertmengen wird für jede Partition X die folgende angepasste Grösse vom minimal geforderten Unterstützungsgrad min_sup verwendet: min_sup(Partition X) = min_sup * (|X| / |D|) - 2. Phase: berechnet die tatsächliche Unterstützung aller lokalen häufigen Attributwertmengen in D und leitet daraus die Menge der globalen häufigen Attributwertmengen.

(39)

Sampling

 Autor: H. Toivonen, 1996

 Erhöhung der Effizienz auf Kosten der Genauigkeit.

 Verfahren:

- Bildung einer Teilmenge S der gegebenen Daten D durch die Stichproben.

- Recherchen auf S und Ermittlung aller häufigen Attributwertmengen LS mit einem geringeren Unterstützungsgrad als der ursprünglich geforderte minimale Unterstützungsgrad min_sup.

- DB-Durchlauf zur Berechnung der tatsächlichen Häufigkeit jeder Attributwertmenge aus LS.

(40)

Dynamische Aufzählung der Attributwertmenge (DIC)

 Autoren: S. Brin, R. Motwani, J. Ullman und S. Tsur, 1997

 DIC= „dynamic itemset counting“

 Die Berechnung des Unterstützungsgrads in der Kandidatengenerierungsphase wird gestoppt, sobald eine Attributwertmenge eine Unterstützung größer als den vorgegebenen Unterstützungsgrad min_sup besitzt.

(41)

8. Fazit

(42)

 Die Assoziationsregeln stellen eine wichtige Analysemöglichkeit für Datenbestände dar.

 Wir haben diverse Ansätze zur Entdeckung der Assoziationsregeln kenngelernt.

 Der Apriori-Algorithmus ist eine gut anwendbare und verständliche Methode zur Entdeckung von Assoziationsregeln, die in Vergleich zur früheren Ansätzen (AIS, SETM) mit hoher Performanz arbeitet.

 Auch der Apriori ist noch nicht optimal. Hierfür existieren diverse Erweiterungen des Apriori–

Algorithmus wie AprioriTID und AprioriHybrid, sowie weitere Ansätze zur Reduzierung der Anzahl der Datenbankzugriffe, Reduzierung der Kandidatengenerierung, usw.

(43)

Diskussion

Referenzen

ÄHNLICHE DOKUMENTE

Zeichne links die gestrichelten Linien mit einem gut gespitzten Bleistift nach. Übertrage die fertige Figur in das leere Punkteraster auf der

Es wird vermutet, dass leistungsstärkere Kinder gerade deshalb so gut in Mathematik sind, weil sie von sich aus strukturieren, Muster entdecken und Beziehungen herstellen.. Kinder

Beim Strukturieren ordnen Kinder Plättchen, teilen Muster in (gleiche / überschaubare) Teile, stellen Beziehungen zwischen diesen Teilen her, beschreiben den Aufbau von

Drucken Zwischenspeichern alle Eingaben

Kostenkontrolle während der Bauausführung. Auftragnehmer

[r]

Im Falle einer Überweisung des Patienten an einen Arzt eines anderen Fachgebiets oder einen Psychotherapeuten ist dem Überweisungsschein eine Kopie dieses.

Hinweis: Wenn der Antragsteller für diese Vorhaben zum Vorsteuerabzug berechtigt ist, sind hier die Kosten ohne Umsatzsteuer anzugeben9. Bei Baumaßnahmen ist eine Kostengliederung