58
Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Embed Size (px)

Citation preview

Page 1: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Data Warehouses und Data Mining

Online Transaction Processing

Data Warehouse-Anwendungen

Data Mining

Page 2: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

OLTP: Online Transaction Processing

Beispiele:FlugbuchungssystemBestellungen in einem Handelsunternehmen

Charakteristisch:Hoher ParallelitätsgradViele (1000+/sec) kurze TransaktionenTransaktionen bearbeiten nur ein kleines Datenvolumen

"Mission-critical" für das UnternehmenHohe Verfügbarkeit muss gewährleistet sein

Normalisierte Relationen (möglichst wenig Update-Kosten)

Nur wenige Indexe

Page 3: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Data Warehouse-Anwendungen:OLAP (Online Analytical Processing)

Wie hat sich die Auslastung der Transatlantikflüge über die letzten zwei Jahre entwickelt?

oder

Wie haben sich besondere offensive Marketingstrategien für bestimmte Produktlinien auf die Verkaufszahlen ausgewirkt?

Im Gegensatz zu OLTP stehen bei OLAP etwa folgendeFragestellungen im Zentrum:

Page 4: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Sammlung und periodische Auffrischung der Data Warehouse-Daten

Data Warehouse

OLTP-Datenbankenund andere Datenquellen

OLAP-AnfragenDecision Support

Data Miningextract, transform, load

Page 5: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Datenbank-Design für Data Warehouses: Stern-SchemaStern-Schema eines Date Warehouse:

Eine sehr große Faktentabelle:Alle Verkäufe der letzten drei JahreAlle Telefonate des letzten JahresAlle Flugreservierungen der letzten fünf Jahre

Normalisiert

Mehrere Dimensionstabellen:ZeitFilialenKundenProduktOft nicht normalisiert

Page 6: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Das Stern-Schema: Handelsunternehmen

Verkäufe

Zeit

Verkäufer

ProdukteKunden

Filialen

Fremdschlüssel-beziehungen

Page 7: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Das Stern-Schema: Krankenversicherung

Behandlungen

Zeit

Krankheiten

ÄrztePatienten

Krankenhäuser

Page 8: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Stern-SchemaVerkäufe

VerkDatum

Filiale Produkt Anzahl Kunde Verkäufer

25-Jul-00

Passau 1347 1 4711 825

... ... ... ... ... ...

FilialenFilialenKennung

Land Bezirk

..

.Passau D Bayer

n...

... ... ... ...

KundenKundenNr

Name wieAlt

...

4711 Kemper

43 ...

... ... ... ...

VerkäuferVerkäuferNr

Name Fachgebiet

Manager wieAlt ...

825 Handyman Elektronik

119 23 ...

... ... ... ... ... ...

• Faktentabelle (typischerweise SEHR groß, 1.000.000+ Tupel)

Dimensionstabellen (relativ klein)

Page 9: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Stern-Schema (cont‘d)

ZeitDatum Tag Monat Jah

rQuartal

KW Wochentag Saison

25-Jul-00

25 7 2000

3 30 Dienstag Hochsommer

... ... ... ... ... ...

18-Dec-01

18 12 2001

4 52 Dienstag Weihnachten

... ... ... ... ... ... ... ...

ProdukteProduktNr

Produkttyp

Produktgruppe

Produkthauptgruppe

Hersteller

.

.1347 Handy Mobiltelek

omTelekom Siemens .

.... ... ... ... ... .

.

• Typische Tupel-Anzahl: 1000 (3 Jahre)

• Typische Tupel-Anzahl: 10.000 (Katalog)

Page 10: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Nicht-normalisierte Dimensionstabellen: Hierarchische Klassifizierung

ZeitDatum Tag Monat Jah

rQuartal

KW Wochentag Saison

25-Jul-00

25 7 2000

3 30 Dienstag Hochsommer

... ... ... ... ... ...

18-Dec-01

18 12 2001

4 52 Dienstag Weihnachten

... ... ... ... ... ... ... ...

ProdukteProduktNr

Produkttyp

Produktgruppe

Produkthauptgruppe

Hersteller

.

.1347 Handy Mobiltelek

omTelekom Siemens .

.... ... ... ... ... .

.

Geltende FDs: Datum Monat Quartal

ProduktNr Produkttyp Produktgruppe Produkthauptgruppe

Page 11: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Normalisierung führt zum Schneeflocken-Schema

Verkäufe

ZeitVerkäufer

Produkte

KundenFilialen

Quartale

KWs

Produkttypen

Produktgruppen

Produkthaupt-gruppen

Page 12: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Typische Anfragen gegen Stern-Schemata: Analyse

SELECT SUM(v.Anzahl), p.Hersteller

FROM Verkäufe v, Filialen f, Produkte p, Zeit z, Kunden k

WHERE z.Saison = 'Weihnachten' and

z.Jahr = 2001 and k.wieAlt < 30 and

p.Produkttyp = 'Handy' and f.Bezirk = 'Bayern' AND

v.VerkDatum = z.Datum and v.Produkt = p.ProduktNr and

v.Filiale = f.FilialenKennung and v.Kunde = k.KundenNr

GROUP BY p.Hersteller;

Einschränkungder Dimensionen

Join-Prädikate

"Wieviele Handys welcher Hersteller haben junge Kunden in denBayerischen Filialen zu Weihnachten 2001 gekauft?"

Verdichtung

Verdichtung

Page 13: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Algebra-Ausdruck (Star Join)

Verkäufe

...(Filialen)

...(Zeit)...(Kunden)

...(Produkte)

Page 14: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Grad der Verdichtung: Roll-up/Drill-DownSELECT Jahr, Hersteller, SUM(v.Anzahl)

FROM Verkäufe v, Produkte p, Zeit z

WHERE v.Produkt = p.ProduktNr AND v.VerkDatum = z.Datum

AND p.Produkttyp = 'Handy'

GROUP BY p.Hersteller, z.Jahr;

SELECT Jahr, SUM(v.Anzahl)

FROM Verkäufe v, Produkte p, Zeit z

WHERE v.Produkt = p.ProduktNr AND v.VerkDatum = z.Datum

AND p.Produkttyp = 'Handy'

GROUP BY z.Jahr;

Roll-up

Drill-down

Page 15: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Analyse von Handyverkaufszahlennach verschiedenen Dimensionen

Page 16: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Rol

l-up

Drill-

Dow

n

Analyse von Handyverkaufszahlennach verschiedenen Dimensionen

Page 17: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Data Cubes (n-dim. Datenwürfel)

Die Darstellung derart verdichteter Information erfolgt inDecision-Support-Systemen oft spreadsheet-artig (crosstabulation):

Dieser 2-dimensionale data cube fasst alle Anfrageergebnisseder vorhergenden Folie zusammen.

Page 18: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Ultimative Verdichtung

SELECT SUM(Anzahl)

FROM Verkäufe v, Produkte p

WHERE v.Produkt = p.ProduktNr AND p.Produkttyp = 'Handy';

Keine Gruppierung (keine GROUP BY-Klausel) alle Tupel bilden eine einzige Gruppe, bevor aggregiert wird:

Page 19: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Materialisierung von Aggregaten

INSERT INTO Handy2DCube ( SELECT p.Hersteller, z.Jahr, SUM(v.Anzahl) FROM Verkäufe v, Produkte p, Zeit z WHERE v.Produkt = p.ProduktNr and p.Produkttyp = 'Handy' and v.VerkDatum = z.Datum GROUP BY z.Jahr, p.Hersteller ) UNION( SELECT p.Hersteller, NULL, SUM(v.Anzahl) FROM Verkäufe v, Produkte p WHERE v.Produkt = p.ProduktNr and p.Produkttyp = 'Handy' GROUP BY p.Hersteller ) UNION( SELECT NULL, z.Jahr, SUM(v.Anzahl) FROM Verkäufe v, Produkte p, Zeit z WHERE v.Produkt = p.ProduktNr and p.Produkttyp = 'Handy' and v.VerkDatum = z.Datum GROUP BY z.Jahr ) UNION( SELECT NULL, NULL, SUM(v.Anzahl) FROM Verkäufe v, Produkte p WHERE v.Produkt = p.ProduktNr and p.Produkttyp = 'Handy' );

Page 20: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Relationale Struktur der Datenwürfel

Page 21: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Würfeldarstellung

Page 22: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Der CUBE-Operator (SQL:1999)

SELECT p.Hersteller, z.Jahr, f.Land, SUM(v.Anzahl)FROM Verkäufe v, Produkte p, Zeit z, Filialen fWHERE v.Produkt = p.ProduktNr AND p.Produkttyp = 'Handy' AND v.VerkDatum = z.Datum AND v.Filiale = f.FilialenkennungGROUP BY CUBE (z.Jahr, p.Hersteller, f.Land);

• Die Materialisierung von Aggregaten führt zu aufwendigen Anfragen, deren Optimierung für das RDBMS schwierig ist:

• n Dimensionen 2n Unterfragen, verbunden durch UNION• Aggregate könnten hierarchisch berechnet werden

• Folgender CUBE-Operator ersetzt 23 Unteranfragen:

Page 23: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Wiederverwendung von Teil-Aggregaten

Annahme: Folgende Verdichtung liegt in der Datenbank vorausberechnet vor (materialisiert):

INSERT INTO VerkäufeProduktFilialeJahr( SELECT v.Produkt, v.Filiale, z.Jahr, SUM(v.Anzahl) FROM Verkäufe v, Zeit z WHERE v.VerkDatum = z.Datum GROUP BY v.Produkt, v.Filiale, z.Jahr );

Dann läßt sich folgende Anfrage auf der vorausberechneten Verdichtung VerkäufeProduktFilialeJahr berechnen (anstatt auf die Faktentabelle Verkäufe zugreifen zu müssen):

SELECT v.Produkt, v.Filiale, SUM(v.Anzahl)FROM Verkäufe v VerkäufeProduktFilialeJahr vGROUP BY v.Produkt, v.Filiale

Page 24: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Die Materialisierungs-Hierarchie

Teilaggregate T sind für eine Aggregation A wiederverwendbar wenn es einen gerichteten Pfad von T nach A gibt

Also T ... A Man nennt diese Materialisierungshierarchie auch einen Verband (Engl. lattice)

{Produkt, Jahr}

{Produkt}

{Filiale, Jahr}

{ }

{Produkt, Filiale}

{Produkt, Filiale, Jahr}

{Jahr} {Filiale}

Page 25: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Die Zeit-Hierarchie

Tag

Woche (KW)

Monat

Quartal

Jahr

Page 26: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Bitmap-Indexe

Optimierung durch Komprimierung der Bitmaps Ausnutzung der dünnen Besetzung, bspw. durch runlength-compression Speichere jeweils die Länge der Nullfolgen zwischen zwei Einsen

• Typische OLAP-Workloads lassen die Ausnutzung sehr spezifischer Index-Strukuren zu.• Hier: Index auf spezifische Werte eines Attributes mit kleiner diskreter Domäne:

Page 27: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Bitmap-Indexe:Beispiel-Anfrage und Auswertung

Marketing-Aktion: Extrahiere junge, gerade volljährige Kundinnen:

SELECT k.NameFROM Kunden kWHERE k.Geschlecht = 'w' AND k.wiealt BETWEEN 18 AND 19;

Unterstützung der Anfrage durch folgende Operation aufBitmap-Indizes:

(w18 w19) Gw

Page 28: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Bitmap-Operationen

Page 29: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Bitmap-Join-Index

Bitmap-Indizes als Join-IndizesKlassischer Join-Index

Bitmap-Join-Index

Page 30: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

B-Baum

TID-V

(i,II)(ii,I)(iii,II)(iv,II)(v,I)(vi,II)...

B-Baum

TID-K

(I,i)(I,v)(II,i)(II,iii)(II,iv)(II,vi)...

Page 31: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

B-Baum

TID-V

(i,II)(ii,I)(iii,II)(iv,II)(v,I)(vi,II)...

SELECT k.*

FROM Verkäufe v, Kunden k

WHERE v.ProduktID = 5 AND

v.KundenNr = k.KundenNr

5

5

Page 32: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

SELECT v.*

FROM Verkäufe v, Kunden k

WHERE k.KundenNr = 4711 AND

v.KundenNr = k.KundenNrB-Baum

TID-K

(I,i)(I,v)(II,i)(II,iii)(II,iv)(II,vi)...

Page 33: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining
Page 34: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Erinnerung: Star Join

SELECT SUM(v.Anzahl), p.Hersteller

FROM Verkäufe v, Filialen f, Produkte p, Zeit z, Kunden k

WHERE z.Saison = 'Weihnachten' and

z.Jahr = 2001 and k.wieAlt < 30 and

p.Produkttyp = 'Handy' and f.Bezirk = 'Bayern' AND

v.VerkDatum = z.Datum and v.Produkt = p.ProduktNr and

v.Filiale = f.FilialenKennung and v.Kunde = k.KundenNr

GROUP BY p.Hersteller;

Einschränkungder Dimensionen

Join-Prädikate

"Wieviele Handys welcher Hersteller haben junge Kunden in denBayerischen Filialen zu Weihnachten 2001 gekauft?"

Page 35: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Verkäufe KundenZeit

Filialen

Produkte

Illustration des Star Join

Page 36: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Verkäufe KundenZeit

FilialenProdukte

Bitmap-Indexe für die Dimensions-Selektion

Page 37: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Bitmap-Join-Index

Bitmap-Indizes als Join-IndizesKlassischer Join-Index

Bitmap-Join-Index

Page 38: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Ausnutzung der Bitmap-Join-Indexe

Verkäufe KundenZeit

FilialenProdukte

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

Page 39: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Eine weitere Join-Methode: DiagJoin Geeignet zur Verfolgung von 1:N-Beziehungen Daten sind geballt (clustered) durch zeitlich nahe Einfügung in beide beteiligten Tabellen

Beispiel:Order (Bestellung)Lineitem (Bestellposition)Order LineitemDie Lineitems einer Order kommen zeitlich kurz hintereinander

Grundidee des DiagJoins besteht darin, synchron über die beiden Relationen zu laufen

Die Orders werden in einem Fenster (sliding window) gehalten

Page 40: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

DiagJoinOrder

Customer Order#

Kemper 4711

Maier 5645

Müller 7765

Hummer 9876

Kaller 9965

Lola 3452

Junker 1232

… …

LineItemOrder# Positio

nProdukt

Preis

4711 1 PC …5645 1 Laptop …4711 2 Drucke

r…

4711 3 Toner …5645 2 Hub …7765 1 Fax …4711 4 Papier …5645 3 Handy …7765 2 Mixer …9876 1 Handy …

… … … …

Page 41: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

DiagJoinOrder

Customer Order#

Kemper 4711

Maier 5645

Müller 7765

Hummer 9876

Kaller 9965

Lola 3452

Junker 1232

… …

LineItemOrder# Positio

nProdukt

Preis

4711 1 PC …5645 1 Laptop …4711 2 Drucke

r…

4711 3 Toner …5645 2 Hub …7765 1 Fax …4711 4 Papier …5645 3 Handy …7765 2 Mixer …9876 1 Handy …

… … … …

Page 42: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

DiagJoinOrder

Customer Order#

Kemper 4711

Maier 5645

Müller 7765

Hummer 9876

Kaller 9965

Lola 3452

Junker 1232

… …

LineItemOrder# Positio

nProdukt

Preis

4711 1 PC …5645 1 Laptop …4711 2 Drucke

r…

4711 3 Toner …5645 2 Hub …7765 1 Fax …4711 4 Papier …5645 3 Handy …7765 2 Mixer …9876 1 Handy …

… … … …

Page 43: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

DiagJoinOrder

Customer Order#

Kemper 4711

Maier 5645

Müller 7765

Hummer 9876

Kaller 9965

Lola 3452

Junker 1232

… …

LineItemOrder# Positio

nProdukt

Preis

4711 1 PC …5645 1 Laptop …4711 2 Drucke

r…

4711 3 Toner …5645 2 Hub …7765 1 Fax …4711 4 Papier …5645 3 Handy …7765 2 Mixer …9876 1 Handy …

… … … …

Page 44: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

DiagJoinOrder

Customer Order#

Kemper 4711

Maier 5645

Müller 7765

Hummer 9876

Kaller 9965

Lola 3452

Junker 1232

… …

LineItemOrder# Positio

nProdukt

Preis

4711 1 PC …5645 1 Laptop …4711 2 Drucke

r…

4711 3 Toner …5645 2 Hub …7765 1 Fax …4711 4 Papier …5645 3 Handy …7765 2 Mixer …9876 1 Handy …4711 5 Quirl …… … … …

Page 45: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

DiagJoinOrder

Customer Order#

Kemper 4711

Maier 5645

Müller 7765

Hummer 9876

Kaller 9965

Lola 3452

Junker 1232

… …

LineItemOrder# Positio

nProdukt

Preis

4711 1 PC …5645 1 Laptop …4711 2 Drucke

r…

4711 3 Toner …5645 2 Hub …7765 1 Fax …4711 4 Papier …5645 3 Handy …7765 2 Mixer …9876 1 Handy …4711 5 Quirl …… … … …

Tupel muss zwischengespeichert und "nachbearbeitet" werden

(temp file).

Page 46: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Anforderungen an den DiagJoin 1:N-Beziehung zwischen beteiligten Tabellen Die "1"-er Tupel sind in etwa dersleben Reihenfolge gespeichert worden wie die "N"-er Tupel

Die Tupel werden in der "time-of-creation"-Reihenfolge wieder von der Platte gelesen (full table scan)

Die referentielle Integrität sollte gewährleistet sein (Warum?)

Das Fenster muss so groß sein, daß nur wenige Tupel nachbearbeitet werden müssen

Nachbearbeitung bedeutet:Tupel auf dem Hintergrundspeicher (temp file) speichern

Den zugehörigen Joinpartner in Order via Index auffinden

Dafür ist ein Index auf Order.Order# hierfür notwendigKein Index nötig für die erste Phase des DiagJoins

Page 47: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Data Mining

Klassifikation

Assoziationsregeln

Page 48: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Data Mining : Klassifikationsregeln Ziel des Data Mining: Durchsuchen großer Datenmengen nach bisher unbekannten Zusammenhängen (Knowledge discovery)

Klassifikation: Treffe "Vorhersagen" auf der Basis bekannter Attributwerte

Vorhersageattribute:V1, V2, ..., Vn

Vorhergesagtes Attribut: A Klassifikationsregel:

P1(V1) P2(V2) ... Pn(Vn) A = cPrädikate P1, P2, .., Pn Konstante c

Beispiel für eine Klassifikationsregel:

(wieAlt>35) (Geschlecht =`m´) (Autotyp=`Coupé´) (Risiko=

´hoch')

Page 49: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Klassifikations/Entscheidungsbaum

Geschlecht

wiealt

Autotyp

geringesRisiko

m

>35

w

<=35

hohesRisiko

geringesRisiko

hohesRisiko

Coupe VanJedes Blatt des Baumesentspricht einer Klassifikationsregel

Page 50: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Klassifikations/Entscheidungsbaum

Geschlecht

wiealt

Autotyp

geringesRisiko

m

>35

w

<=35

hohesRisiko

geringesRisiko

hohesRisiko

Coupe Van

(wieAlt>35) (Geschlecht =`m´) (Autotyp=`Coupé´) (Risiko=´hoch´)

Page 51: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Erstellung von Entscheidungs-/ Klassifikationsbäume Trainingsmenge

Große Zahl von Datensätzen, die in der Vergangenheit gesammelt wurden

Sie dient als Grundlage für die Vorhersage (= Klassifikation) von "neu ankommenden" Objekten

Beispiel: neuer Versicherungskunde wird gemäß dem Verhalten seiner "Artgenossen" eingestuft

Rekursives Partitionieren:Fange mit einem Attribut A an und spalte die Tupelmenge bzgl. ihrer A-Werte

Jede dieser Teilmengen wird rekursiv weiter partitioniert

Fortsetzen, bis nur noch gleichartige Objekte in der jeweiligen Partition sind

Page 52: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Data Mining : Assoziationsregeln Beispielregel:

Wenn jemand einen PC kauft, dann kauft er/sie auch einen Drucker

ConfidenceDieser Wert legt fest, bei welchem Prozentsatz der Datenmenge, bei der die Voraussetzung (linke Seite) erfüllt ist, die Regel (rechte Seite) auch erfüllt ist.

Eine Confidence von 80% für unsere Beispielregel sagt aus, dass vier Fünftel der Leute, die einen PC gekauft haben, auch einen Drucker dazu gekauft haben.

SupportDieser Wert legt fest, wieviele Datensätze überhaupt gefunden wurden, um die Gültigkeit der Regel zu verifizieren.

Bei einem Support von 1% wäre also jeder Hundertste Verkauf ein PC zusammen mit einem Drucker.

Page 53: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Verkaufstransaktionen Warenkörbe

Finde alle Assoziationsregeln L R mit einem Support größer als minsupp

und einer Confidence von mindestens minconf

Dazu sucht man zunächst die sogenannten frequent itemsets (FI), also Produktmengen, die in mindestens minsupp der Einkaufswägen/ Transaktionen enthalten sind

Der A Priori-Algorithmus basiert auf der Erkenntnis, dass alle Teilmengen eines FI auch FIs sein müssen

VerkaufsTransaktionen

TransID

Produkt

111 Drucker111 Papier111 PC111 Toner222 PC222 Scanner333 Drucker333 Papier333 Toner444 Drucker444 PC555 Drucker555 Papier555 PC555 Scanner555 Toner

Page 54: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

A Priori Algorithmusfür alle Produkte p

überprüfe ob p ein frequent itemset (Kardinalität 1) ist, also in

mindestens minsupp Einkaufswägen enthalten ist

k := 1

iteriere solange

für jeden frequent itemset Ik mit k Produkten

generiere alle itemsets Ik+1 mit k+1 Produkten und Ik I k+1

lies alle Einkäufe einmal (sequentieller Scan auf der Datenbank)

und überprüfe, welche der (k+1)-elementigen itemset-

Kandidaten mindestens minsupp mal vorkommen

k := k+1

bis keine neuen frequent itemsets gefunden werden

Page 55: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

A Priori-AlgorithmusVerkaufsTransaktionen

TransID

Produkt

111 Drucker111 Papier111 PC111 Toner222 PC222 Scanner333 Drucker333 Papier333 Toner444 Drucker444 PC555 Drucker555 Papier555 PC555 Scanner555 Toner

ZwischenergebnisseFI-Kandidat Anzahl{Drucker} 4{Papier} 3{PC} 4{Scanner} 2{Toner} 3{Drucker, Papier} 3{Drucker, PC} 3{Drucker, Scanner} {Drucker, Toner} 3{Papier, PC} 2{Papier, Scanner} {Papier, Toner} 3{PC, Scanner} {PC,Toner} 2{Scanner, Toner}

Disqua-lifiziert

Minsupp=3/5

Page 56: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

A Priori-AlgorithmusVerkaufsTransaktionen

TransID

Produkt

111 Drucker111 Papier111 PC111 Toner222 PC222 Scanner333 Drucker333 Papier333 Toner444 Drucker444 PC555 Drucker555 Papier555 PC555 Scanner555 Toner

ZwischenergebnisseFI-Kandidat Anzahl{Drucker, Papier} 3{Drucker, PC} 3{Drucker, Scanner} {Drucker, Toner} 3{Papier, PC} 2{Papier, Scanner} {Papier, Toner} 3{PC, Scanner} {PC,Toner} 2{Scanner, Toner} {Drucker, Papier, PC} 2{Drucker, Papier, Toner}

3

{Drucker, PC, Toner} 2{Papier, PC, Toner} 2

Page 57: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Ableitung von Assoziationsregeln aus den frequent itemsets Betrachte jeden FI mit hinreichend viel support Bilde alle nicht-leeren Teilmengen L FI und untersuche

die Regel L FI – L Die Confidence dieser Regel berechnet sich als:

confidence(L FI – L) = support(FI) / support(L)Falls die Confidence > minconf ist, behalte diese Regel

Betrachte FI = {Drucker, Papier, Toner}, L = {Drucker}support(FI) = 3/5

Regel: {Drucker} {Papier, Toner}confidence = support({Drucker, Papier, Toner}) / support({Drucker})

= (3/5) / (4/5 = ¾ = 75 %

Page 58: Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data Mining

Erhöhung der Confidence Vergrößern der linken Seite (dadurch Verkleinern der rechten Seite) führt zur Erhöhung der ConfidenceFormal: L L+ , R R-

confidence(L R) <= confidence(L+ R - )

Beispiel-Regel: {Drucker} {Papier, Toner}confidence

= support({Drucker, Papier, Toner}) / support({Drucker})

= (3/5) / (4/5) = ¾ = 75%

Beispiel-Regel: {Drucker,Papier} {Toner}Confidence = support({Drucker,Papier,Toner}) /

support({Drucker,Papier}) = (3/5) / (3/5) = 1 = 100%