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

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

Transcript of Data Warehouses und Data Mining Online Transaction Processing Data Warehouse-Anwendungen Data...

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%