Klassifikations/Entscheidungsbaumstaab/lehre/ws0506/db1/Kapitel19data... · vielversprechendste...
Transcript of Klassifikations/Entscheidungsbaumstaab/lehre/ws0506/db1/Kapitel19data... · vielversprechendste...
Data Mining
Klassifikation
Assoziationsregeln
Clustering
KlassifikationsregelnVorhersageattribute
V1, V2, ..., VnVorhergesagtes Attribut AKlassifikationsregel
P1(V1) ∧ P2(V2) ∧ ... ∧ Pn(Vn) A = cPrädikate P1, P2, .., PnKonstante c
Beispielregel
(wieAlt>35) ∧ (Geschlecht =`m´) ∧ (Autotyp=`Coupé´) (Risiko=´hoch´)
Klassifikations/Entscheidungsbaum
Geschlecht
wiealt
Autotyp
geringesR isiko
m
>35
w
<=35
hohesR isiko
geringesR isiko
hohesR isiko
Coupe Van
Klassifikations/Entscheidungsbaum
Geschlecht
wiealt
Autotyp
geringesR isiko
m
>35
w
<=35
hohesR isiko
geringesR isiko
hohesR isiko
Coupe Van
Klassifikations/Entscheidungsbaum
Geschlecht
wiealt
Autotyp
geringesR isiko
m
>35
w
<=35
hohesR isiko
geringesR isiko
hohesR isiko
Coupe Van
(wieAlt>35) ∧ (Geschlecht =`m´) ∧(Autotyp=`Coupé´) (Risiko=´hoch´)
Konstruktion von Entscheidungsbäumen(Langley 1996, Quinlan 1993 )
Grundlagen- Entscheidungsbäume sind eine spezielle Formvon Konzepthierarchien
- Grundidee:• aus gegebenen Trainingsbeispielen wird
Entscheidungsbaum aufgebaut• Entscheidungsbaum liefert intensionale
Beschreibung der vorgegebenen Klassen• Entscheidungsbaum ordnet neue Beispiele mit
gewisser Fehlerrate einer der vorgegebenen Klassen zu
Konstruktion von Entscheidungsbäumen
Generelle Voraussetzungen:
• Beispiele werden in Form von Attribut-Wert-Paarenbeschrieben
- Attribut hat Name und Wertebereich- Wertebereich ist nominal, diskret oder kontinuierlich- jedes Beispiel wird durch dieselben Attribute
beschrieben (vgl. relationale Datenbanken )
• Menge von Klassen (Konzepten) ist vordefiniert; i.a. ist die Anzahl der Klassen sehr viel kleinerals die Zahl der Trainingsbeispiele
Konstruktion von Entscheidungsbäumen
Abbildung VI.1-1: Training instancesfrom a cell domain involving fourattributes and three distinct classes. ( Langley 1996 )
Attributes:number of nuclei (values: 1,2)number of tails (values: 1,2)color ( values: light, dark)wall (values: thin, thick)
Konstruktion von Entscheidungsbäumen
Abbildung VI.1-2: A decision treegenerated by the DDT algorithm for thetraining instances from Abbildung VI.1-1. Each terminal node specifies an associated class name and the numberof training cases covered. Numbersnext to the notes indicate the order in which the algorithm generated them. The notation (a), which associatesattributes with nodes and values withlinks, is equivalent to (b), which showsthe instances that each node covers. (Langley 1996)
Konstruktion von Entscheidungsbäumen
° Von jedem Trainingsbeispiel ist (idealerweise)die Klassenzugehörigkeit bekannt
• überwachtes Lernen (supervised learning)• ein Attribut spezifiziert jeweils die Klassenzugehörigkeit
(vgl. auch Holländer- Klassifizierung)
° Klassen müssen durch Entscheidungsbäume oder Produktionsregeln beschreibbar sein
• typischerweise Beschreibungen der Form
Beispiel: Klasse Healthy:[( number_of_tails = 2) ∧ (number_of_nuclei = 1)] ∨[( number_of_tails = 1) ∧ (color = dark) ∧(number_of_nuclei = 2)]
)] value(att) valueatt[(nn11 iiii =∧∧= K
Konstruktion von Entscheidungsbäumen
Struktur eines univariaten Entscheidungsbaums:
• Blattknoten werden mit jeweils einer Klasse benannt, alle anderen Knoten mit jeweils einem Test auf ein einziges Attribut
• wenn das Attribut eines Knotens k verschiedene Werte hat (bzw. in k Wertebereiche aufgeteilt wird), dann hat der Knoten k Sohnknoten
• Beispielmenge wird an dem Knoten in k disjunkteTeilmengen partitioniert in Abhängigkeit vom jeweiligen Wert des Attributs
• Die Extension eines Knotens ist immer eine Obermenge der Extension aller Sohnknoten
Konstruktion von Entscheidungsbäumen
• verbinde jeden Knoten mit all seinen Sohnknoten und beschrifte die Kanten mit ihren zugehörigen Attributwerten
• neue Fälle durchlaufen für ihre Klassifikation den Entscheidungsbaum von der Wurzel ausgehend bis zu einem Blattknoten
Graphisch:
- m Attribute a1, a2, ... am- Wertebereich
von Attribut ai: von Attribut al:
},...,{1 ikii aa
},...,{1 lkll aa
ia
la
1ia
2ia iki
a
1la
2la lkl
a
..........
..........
Wie man in Holland Leute erkennt (ohne Gewähr) ...
Schuhe Lieblings-Käse
Wohn-wagen
Hollän-disch
1 Unbek. Gouda Ja +2 Unbek. Camembert Ja -3 Klompen Gouda Ja +4 Normal Gouda Nein -5 Klompen Camembert Ja +6 Unbek. Gouda Nein +7 Normal Gouda Ja -8 Klompen Gouda Nein +9 Unbek. Camembert Nein -
10 Normal Camembert Ja -Schuhe
HolländerNicht-
Holländer Käse
HolländerNicht-
Holländer
4, 7, 10 3, 5, 8
1, 6 2, 9
Normal UnbekanntKlompen
Gouda
Ein Entscheidungsbaum zur Klassifikation
Konstruktion von Entscheidungsbäumen
Grafische Veranschaulichung der Klassifikationsaufgabe:
-/- -/-
+/+ -/-
++ +/+
Normal
unbekannt
Klompen
Gouda Camembert Käse
Schu
he
Wohnwagen
+ : Holländer- : kein Holländer
Konstruktion von Entscheidungsbäumen
Konstruktion von Entscheidungsbäumen
- Beispielalgorithmus für Aufbau eines univariaten Entscheidungsbaums:DDT - Algorithmus: Divisive Induction of
Univariate Decision Trees
- DDT ist nicht-inkrementell:- alle Trainingsbeispiele müssen verfügbar sein
- DDT ist Greedy-Algorithmus (greedy=gierig):- lokal optimale Entscheidungen werden
getroffen- getroffene Entscheidungen können nicht
mehr zurückgenommen werden
Konstruktion von Entscheidungsbäumen
DDT Algorithm: Divisive Induction of Univariate Decision Trees
Inputs: The current node N of the decision tree.A set of classified training instances ISET.A set of symbolic attributes and their values ASET.
Output: A univariate decision tree.
Top-level call: DDT(root, ASET, ISET).
Konstruktion von Entscheidungsbäumen
Procedure DDT(N, ASET, ISET)If the training set ISET is empty,
Then label terminal node N as DEFAULT.
Else IF all instances ISET are equal with respect to all attributes in ASET // neuer Blattknoten
// this is especially the case if ASET is empty // gefunden
Then label terminal node N with the class name.
Else for each attribute A in ASET,
Evaluate A according to its ability to // wähle „bestes“
discriminate the classes in ISET. // Attribut B
Select attribute B with the best evaluation score.
For each value V of B,
Create a new child C of node N. // expandiere
Label the edge from N to C with V. // aktuellen
Let JSET be the ISET instances having value V on B. // Knoten
Let KSET be ASET \ {B}.
DDT(C, KSET, JSET).
Konstruktion von Entscheidungsbäumen
Beispiel "Spielen im Freien":
Outlook Temp (F) Humidity (%) W indy? Classsunny 75 70 true Playsunny 80 90 true Dont´t Playsunny 85 85 false Dont´t Playsunny 72 95 false Dont´t Playsunny 69 70 false Play
overcast 72 90 true Playovercast 83 78 false Playovercast 64 65 true Playovercast 81 75 false Play
rain 71 80 true Dont´t Playrain 65 70 true Dont´t Playrain 75 80 false Playrain 68 80 false Playrain 70 96 false Play
Abbildung VI.1-3: A small training set (Quinlan 1993)
° 4 Attribute° 2 Klassen: Play
Don‘t Play
Konstruktion von Entscheidungsbäumen
Abbildung VI.1-4: Final partition of cases and corresponding decision tree
(Quinlan 1993)
Konstruktion von Entscheidungsbäumen
Graphische Darstellung des Entscheidungsbaumes zum Beispiel:
outlook
humidity Play windy
Play Don‘t Play Don‘t Play Play
sunnyrainover-
cast
true false≤ 75 > 75
C4.5 - Algorithmus (Quinlan 1993)
- weitverbreiteter Algorithmus zum Aufbau vonEntscheidungsbäumen (oder entsprechendenProduktionsregeln)
- Spezielle Variante des DDT-Algorithmus:° Verwendung einer speziellen Bewertungsfunktion
für Auswahl des besten Attributs: gain ratio° beinhaltet zusätzlich Verfahren zur
nachträglichen Vereinfachung des erzeugtenEntscheidungsbaums: pruning
° aus Entscheidungsbaum können entsprechende Produktionsregeln erzeugt werden
⇒ alternative lesbarere Darstellung° Windowing - Technik für Handhabung einergroßen Anzahl von Beispielen
Konstruktion von Entscheidungsbäumen
a) Bewertungsfunktion für Attributauswahl
• für gegebene Menge von Trainingsbeispielen ist Anzahl der möglichen Entscheidungsbäume i.a. sehr groß
• Daher ist Generierung aller Entscheidungsbäume und dann Auswahl des Besten (exhaustive search) nicht möglich
• Daher wird in jedem Expansionsschritt das vielversprechendste Attribut ausgewählt (GreedyAlgorithmus): verwende das Attribut, das am meistenInformation liefert (im Sinne der Informationstheorie)
• C4.5 verwendet gain ratio als Kriterium. Es ist eine Abwandelung des im folgenden beschriebenen gaincriterion.
Konstruktion von Entscheidungsbäumen
gain criterion
- Bezeichnungen: S: Gesamtbeispielmenge
T: Menge der Trainingsbeispiele (T⊂ S)
T1, T2, ..., Tn: Partition von T
S T
T4
T1
T2
T3
•••• •••• •
••
••
••
•
••
•
••
••
••
••
••
••
•
Konstruktion von Entscheidungsbäumen
- Informationsgehalt einer Botschaft bi:
hat bi die Wahrscheinlichkeit pi ,
so ist der Informationsgehalt von bi ≡ -log2 (pi) bits
Beispiel: 8 gleichwahrscheinliche Botschaften b1, ... ,b8 :
jedes bi hat den Informationsgehalt
bits 3 bits )81(2log- =
Konstruktion von Entscheidungsbäumen
T) von (Entropie
bits T
jC
2log * k
1j
Tj
C T
TT⎟⎟⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
∩∑=
∩−=)info(
- Botschaft, die mitteilt, dass beliebig ausgewähltes Beispiel aus Menge T in Klasse ci liegt, hat den Informationsgehalt
bits T
iC
2log T
⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜
⎝
⎛∩
−
- Erwartungswert für den Informationsgehalt dieser Botschaften (bei k Klassen C1, ... ,Ck):
z.B.: k = 2
C1: play
C2: don‘t play
Konstruktion von Entscheidungsbäumen
)iinfo(T * n
1i Ti
T ∑
==(T)xinfo
- Sei X ein Test, der T in T1, ... , Tn partitioniert.
Dann ist der Erwartungswert für den Informationsgehalt einer Botschaft, die mitteilt, dass ein beliebig ausgewähltes Beispiel aus Ti in der Klasse Cj liegt (bei k Klassen C1 , ... , Ck ):
bits
iT
iT
jC
2log * k
1j iT
iT
jC
⎟⎟⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
∩∑=
∩−=)iinfo(T
Damit ist der Erwartungswert über alle T1, ... , Tn:
z.B.: X: outlook; n = 3
T1: sunny
T2: overcast
T3: rain
z.B.: k = 2
C1: play
C2: don‘t play
Konstruktion von Entscheidungsbäumen
(T)xinfo - info(T) gain(x)
criterion gain
=
: -
Maß für den Informationsgewinn durch Partitionierung von T durch Test X:
• wähle Test X, so dass gain (X) maximiert wird, d.h. möglichstgroßer Informationsgewinn durch aussagekräftiges Attribut X
• mit info(T) fix wähle ein Attribut X mit möglichst kleinem infoX(T),d.h. Erwartungswert für noch benötigte Informationen zurKlassifikation ist möglichst klein
Konstruktion von Entscheidungsbäumen
(T)xinfo - info(T) gain(x)
criterion gain
=
: -
Bem.: Dies ist verwandt zum gemittelten Information Gain
nur dass dort nur die Vorhersage einer Klasse C und nicht die Vorhersage in die Einteilung der Klassen C1 , ... , Ck betrachtet wurde.
)|(1)())|()((1),(1),(
111i
s
ii
s
i
s
iigaingain AcH
scHAcHcH
sAcI
sAcI ∑∑∑
===
−=−==
Konstruktion von Entscheidungsbäumen
bits 0.940
info(T)
bits 145
2log
145
149
2log *
149
bits T
Tj
C
2log * 2
1j T
Tj
C
=
+−=
∩∑=
∩−=
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
⎟⎟⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
Fortführung des Beispiels "Spielen im Freien" :2 Klassen : Play, Don‘t PlayKlasse Play: 9 FälleKlasse Don‘t Play : 5 Fälle
damit:
(durchschnittlich benötigte Information zur Identifizierung der Klassenzugehörigkeit eines Beispiels aus T)
k = 2
C1: play
C2: don‘t play
Konstruktion von Entscheidungsbäumen
5 3
T rain outlook : 3T
4 2
T overcast outlook : 2T
5 1
T sunny outlook : 1T
==
==
==
⎯→⎯
⎯→⎯
⎯→⎯
bits 0.694
52
2log5
2 53
2log * 5
3 * 145
40
2log*
40
44
2log *
44 * 14
4 53
2log*5
3 52
2log * 5
2 * 145
)iinfo(T * 3
1i Ti
T T)(outlookinfo
=
−−+
−−+
−−=
∑=
=
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
- Attribut ‚outlook‘ erzeugt 3 Teilmengen:
Und liefert nach Definition damit:
X: outlook; n = 3
T1: sunny
T2: overcast
T3: rain
k = 2
C1: play
C2: don‘t play
Konstruktion von Entscheidungsbäumen
bits ) 0.6940.940 (
T)(outlookinfo info(T)
bits 0.246
ok)gain(outlo
=−=
−=
bits 0.048)gain(windy bits 0.892)(0.940 damit
bits 0.892 )iinfo(T * 2
1i Ti
T T)(windyinfo
8 2
T false windy: 2T
6 1
T true windy: 1T
=−=
==∑=
=
==
==
⎯→⎯
⎯→⎯
o
Ko
Daraus folgt:
Vergleich mit dem Attribut ‚windy‘:windy erzeugt 2 Teilmengen:
Also wird ‚outlook‘ als stärker diskriminierendes Merkmal weiter oben im Baum verwandt als ‚windy‘.
X: windy; n = 2
T1: true
T2: false
k = 2
C1: play
C2: don‘t play
Konstruktion von Entscheidungsbäumen
Das gain criterion bevorzugt Tests mit vielen verschiedenen Testwerten(Attribut mit großem Wertebereich), wie das folgende Beispiel zeigt.
⇒ Bildung von Teilmengen mit wenigen Fällen⇒ im Extremfall einelementige Teilmengen
⇒ infoX(T) = 0
Aber für Klassifizierungszwecke ist die Bildung derartiger Teilmengen unerwünscht (Overfitting)! Deswegen wird (nach dem Beispiel) die Variante gain ratio des gain criterionvorgestellt.
Konstruktion von Entscheidungsbäumen
Fortführung des Beispiels "Spielen im Freien" :
- füge neues Attribut ‘‘Datum‘‘ hinzu
• Attribut mit vielen verschiedenen Werten
• Attribut ‘‘Datum‘‘ liefert sehr hohen Informationsgewinn
• Datumsangabe bestimmt eindeutig Wert desZielattributes, d.h. Klassenzugehörigkeit
• Attribut ‘‘Datum‘‘ würde als Wurzelattribut gewähltwerden
• Das Attribut ‘‘Datum‘‘ ist sehr gut geeignet für die Beschreibung der Trainingsdaten, aber nicht geeignet für Klassifikation neuer, bisher unbekannter Beispiele.
Konstruktion von Entscheidungsbäumen
bits Ti
T2log *
n
1i Ti
T
ert)partitioni nT,,1T Teilmengenin XTest durch wird(T liegt esausgewählt beliebig daß mitteilt, die
Botschaft,einer nsgehalt Informatiofür :info'split ' durch criterion'gain '-
⎟⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜⎜
⎝
⎛
∑=
−=info(x) split
iT Teilmenge in BeispielwertErwartungs
renormalisie :Idee
K
X. Testsmöglichen alleüber gain vonder ist wie groß so tens wenigs
gain dass gung,Nebenbedinunter :ist iT große für wenige info'split ' da -
info(x)split gain(x) :damit
ttswertDurchschniratio' gain' maximiere
kleinsehr
ratio(x) gain =
Konstruktion von Entscheidungsbäumen
0.156 1.5770.246
ok)info(outlosplit ok)gain(outlo
damit
bits 1.577 145
2log * 145
144
2log * 144
145
2log * 145 ok)info(outlosplit
damit ;Beispielen 5 und 4 5,mit Teilmengen 3erzeugt outlook''Attribut
==
=
=−
−−=
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
⎟⎟⎟
⎠
⎞
⎜⎜⎜
⎝
⎛
ook)ratio(outl gain
Anwendung auf das Beispiel:
Pruning
Original decision tree:physician fee freeze = n:
adoption of the budget resolution = y: democrat (151)adoption of the budget resolution = u: democrat (1)adoption of the budget resolution = n:
education spending = n: democrat (6) education spending = y: democrat (9) education spending = u: republican (1)
physician fee freeze = y:synfuels corporation cutback = n: republican (97/3)synfuels corporation cutback = u: republican (4)synfuels corporation cutback = y:
duty free exports = y: democrat (2) duty free exports = u: republican (1) duty free exports = n:
education spending = n: democrat (5/2) education spending = y: republican (13/2) education spending = u: democrat (1)
physician fee freeze = u:water project cost sharing = n: democrat (0)water project cost sharing = y: democrat (4)water project cost sharing = u:
mx missile = n: republican (0)mx missile = y: democrat (3/1)mx missile = u: republican (2) Abbildung VI.1-5: Decision tree before and
after pruning (Quinlan 1993 )
After pruning:physician fee freeze = n: democrat (168/2.6)physician fee freeze = y: republican (123/13.9)physician fee freeze = u:
mx missile = n: democrat (3/1.1)mx missile = y: democrat (4/2.2)mx missile = u: republican (2/1)
Kapitel VI.1: Konstruktion von Entscheidungsbäumen
Erzeugung von Produktionsregeln
- Komplexe Entscheidungsbäume sind schwer zu verstehen, da jeder Test im Kontext aller vorhergehenden Tests zu interpretieren ist.
- Lösung:• Betrachte alle Tests auf Pfad von
Wurzel zu aktuellem Knoten• und transformiere die Pfadtests in Bedingungen für
Produktionsregeln der Form
IF test1 ∧ test2 ∧ .. ∧ testnTHEN class = C1
• Eine Klasse wird als Default-Klasse verwendet.
Kapitel VI.1: Konstruktion von Entscheidungsbäumen
Abbildung VI.1-9:
labor-neg decision tree in graph form (Quinlan 1993)
Kapitel VI.1: Konstruktion von Entscheidungsbäumen
Abbildung VI.1-10: Result of postprocessing to rules(Quinlan 1993)
Kapitel VI.1: Konstruktion von Entscheidungsbäumen
- Regeln können gegebenenfalls vereinfachtwerden durch Entfernen von Tests aus demBedingungsteil:Beispiel: In Regel 4 in Abbildung VI.1-10 ist die
Bedingung ‚statutary holidays 10‘entfernt worden.
- Vorgehensweise für Klassifikation einesneuen Beispiels:
° gehe Regeln der Reihe nach durch( Reihenfolge ist relevant )
° erste Regel, deren Bedingungsteilerfüllt ist, wird ausgewählt
° rechte Seite der Regel bestimmtKlassenzugehörigkeit für betrachtetes Beispiel
° ist von keiner Regel der Bedingungsteil erfüllt, wird Default-Klasse gewählt
≤
Kapitel VI.1: Konstruktion von Entscheidungsbäumen
e) Fazit- C4.5 weitverbreitetes Verfahren zur Erzeugungvon Entscheidungsbäumen und zugehörigenProduktionsregeln
- Verfahren abhängig von° Bewertungsfunktion für Attributauswahl° Schätzung der Fehlerrate bei Pruning° Schätzung der Fehlerrate bei Erzeugungund Vereinfachung von Produktionsregeln
- vergleichbare Verfahren° ID3 (Quinlan 1983)° CN2 (Clark/Niblatt 1989)
AssoziationsregelnBeispielregel
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.
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, also Produktmengen, die in mindestens minsupp der Einkaufswägen/ Transaktionen enthalten sindDer A Priori-Algorithmus basiert auf der Erkenntnis, dass alle Teilmengen eines FI auch FIs sein müssen
Toner555Scanner555PC555Papier555Drucker555PC444Drucker444Toner333Papier333Drucker333Scanner222PC222Toner111PC111Papier111Drucker111ProduktTransID
VerkaufsTransaktionen A Priori Algorithmusfür alle Produkte
überprüfe ob es ein frequent itemset ist, also inmindestens minsupp Einkaufswägen enthalten ist
k:=1
iteriere solangefür jeden frequent itemset Ik mit k Produkten
generiere alle itemsets Ik+1 mit k+1 Produkten und Ik ⊂ Ik+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
A Priori-Algorithmus
Toner555Scanner555PC555Papier555Drucker555PC444Drucker444Toner333Papier333Drucker333Scanner222PC222Toner111PC111Papier111Drucker111ProduktTransID
VerkaufsTransaktionen
{Scanner, Toner}2{PC,Toner}
{PC, Scanner}3{Papier, Toner}
{Papier, Scanner}2{Papier, PC}3{Drucker, Toner}
{Drucker, Scanner}3{Drucker, PC}3{Drucker, Papier}3{Toner}2{Scanner}4{PC}3{Papier}4{Drucker}AnzahlFI-Kandidat
Zwischenergebnisse
Disqua-lifiziert
Minsupp=3
A Priori-Algorithmus
Toner555Scanner555PC555Papier555Drucker555PC444Drucker444Toner333Papier333Drucker333Scanner222PC222Toner111PC111Papier111Drucker111ProduktTransID
VerkaufsTransaktionen
2{Papier, PC, Toner}2{Drucker, PC, Toner}3{Drucker, Papier, Toner}2{Drucker, Papier, PC}
{Scanner, Toner}2{PC,Toner}
{PC, Scanner}3{Papier, Toner}
{Papier, Scanner}2{Papier, PC}3{Drucker, Toner}
{Drucker, Scanner}3{Drucker, PC}3{Drucker, Papier}AnzahlFI-Kandidat
Zwischenergebnisse
Ableitung von Assoziationsregeln aus den frequent itemsets
Betrachte jeden FI mit hinreichen viel supportBilde alle nicht-leeren Teilmengen L ⊂ FI und untersuche die Regel
L FI – L Die Confidence dieser Regel berechnet sich als
Condicence(L FI – L) = support(FI) / support(L)Wenn die Confidence ausreicht, also > minconf ist, behalte diese Regel
Betrachte FI = {Drucker, Papier, Toner}Support = 3
Regel: {Drucker} {Papier, Toner}Confidence = S({Drucker, Papier, Toner}) / S({Drucker})
= (3/5) / (4/5)= ¾ = 75 %
Erhöhung der ConfidenceVergrößern der linken Seite (dadurch Verkleinern der rechten Seite) führt zur Erhöhung der Confidence
Formal: L ⊂ L+ , R ⊂ R-
Confidence(L R) <= C(L+ R- )
Beispiel-Regel: {Drucker} {Papier, Toner}Confidence = S({Drucker, Papier, Toner}) / S({Drucker})
= (3/5) / (4/5)= ¾ = 75%
Beispiel-Regel: {Drucker,Papier} {Toner}Conf. = S({Drucker, Papier, Toner}) / S({Drucker,Papier})
= (3/5) / (3/5)= 1 = 100%
Clustering
Alter der Fahrer
Schadens-höhe Outlier
Clusteranalyse(Bacher 1994)
• Zusammenfassung von Objekten in homogene Gruppen (Cluster, Klassen)
• Ziel dabei ist eine möglichst große• Homogenität innerhalb der Cluster• Heterogenität zwischen den Clustern
Clusteranalyse• geg. Menge von Objekten kann sich für Clusterbildung eignen,muss aber nicht:
Clusteranalyse• geg. Menge von Objekten kann sich für Clusterbildung eignen,muss aber nicht:
Clusteranalyse• geg. Menge von Objekten kann sich für Clusterbildung eignen,muss aber nicht:
Clusteranalyse• geg. Menge von Objekten kann sich für Clusterbildung eignen,muss aber nicht:
Clusteranalyse• Clusteranalyseverfahren unterscheiden sich u.a.
• in den Zuordnungsprinzipien• exakte Zuordnung• probabilistische Zuordnung• possibilistische Zuordnung
• in den benutzten Informationen• partielle Verfahren
paarweiser Vergleich• globale Verfahren
Distanz aller Objekte wird für Clusterbildung genutzt.
• in der Vorgehensweise• hierarchisch• partitionierend• heuristisch• objective function based• begrifflich
Clusteranalyse• Zuordnungsprinzipien
• exakte Zuordnung• Objekte werden mit Wahrscheinlichkeit 1 einem Cluster
(nicht-überlappende Zuordnung) oder mehreren Clustern(überlappende Zuordnung) zugeordnet.
• probabilistische Zuordnung• Objekte werden mit einer zwischen 0 und 1 liegenden Wahrscheinlichkeit
einem oder mehrern Clustern zugeordnet• Verallgemeinerung der deterministischen Verfahren
• possibilistische Zuordnung• Objekte werden über eine Zugehörigkeitsfunktion, die Werte zwischen
0 und 1 annehmen kann, jedem Cluster zu einem bestimmten Zugehörigkeitsgrad zugeordnet.
ClusteranalyseVorgehensweise
• legt fest, nach welcher Vorgehensweise ein Cluster erzeugt wird.
• Partitionierende Verfahren• zufällig gewählte Anfangspartition (Menge nicht-überlappender Cluster)
der zu clusternden Objekte wird schrittweise verbessert durchNeuzuordnung der Objekte in den Clustern
• im folgenden betrachtet:• K-Means Verfahren
• heuristische Vorgehensweise• Dimensionalität der zu clusternden Objekte wird reduziert, um eine auf zwei
bis drei Dimensionen reduzierte graphische Darstellung zu erreichen
• objective function based• kein prozedurales Vorgehen wie bei hierarchischen Verfahren• Basis bildet die Objektfunktion, die jedem Cluster einen
Qualitätswert zuordnet
Clusteranalyse• hierarchische Verfahren
hierarchische Verfahren werden unterschieden in
• agglomerative VerfahrenCluster werden bottom-up erzeugt, ausgehend voneinelementigen Clustern, den zu clusternden Objekten
• divisive VerfahrenCluster werden top-down erzeugt, ausgehend voneinem Cluster, das alle zu clusternden Objekte enthält
divisive Verfahren waren in der Vergangenheit eher weniger bedeutend, gewinnen aber gerade für das Clustering von Dokumenten an Bedeutung
ClusteranalyseHierarchisch agglomerativer Algorithmus
• bei n geg. Objekten werden (n-1) überlappungsfreieClusterlösungen berechnet
• Algorithmus kann mit verschiedenen Ähnlichkeitsmaßenbzw. Unähnlichkeitsmaßen arbeiten, u.a.
• Complete Linkage• Single Linkage
Clusteranalyse• Complete Linkage
• Unähnlichkeit zwischen zwei Clustern wird durchdas Maximum der paarweisen Unähnlichkeiten derClusterelemente bestimmt:
• für c1, c2 Cluster, d Abstandsmaß:),(max),(
21 ,21 yxdccDcycx ∈∈
=
• hohe Anforderungen an die Homogenität der zu bildenen Cluster
Feature Based Similarity Simple Similarity QueriesSpecify query object and
Find similar objects – range queryFind the k most similar objects – nearest neighbor q.
Join Applications: Catalogue MatchingCatalogue matching
E.g. Astronomic catalogues
R
S
Join Applications: Clustering
Clustering (e.g. DBSCAN)
Similarity self-join
R-tree Spatial Join (RSJ)
procedure r_tree_sim_join (R, S, ε)if IsDirpg (R) ∧ IsDirpg (S) then
foreach r ∈ R.children doforeach s ∈ S.children do
if mindist (r,s) ≤ ε thenCacheLoad(r); CacheLoad(s);r_tree_sim_join (r,s,ε) ;
else (* assume R,S both DataPg *)foreach p ∈ R.points do
foreach q ∈ S.points doif |p − q| ≤ ε then report (p,q);
ε
R S
Clusteranalyse• Single Linkage
• Unähnlichkeit zwischen zwei Clustern wird durchdas Minimum der paarweisen Unähnlichkeiten derClusterelemente bestimmt:
• für c1, c2 Cluster, d Abstandsmaß:
),(min),(21 ,21 yxdccD
cycx ∈∈=
• geringe Anforderungen an die Homogenität der zu bildenen Cluster
Clusteranalyse• Algorithmus (hierarchisch agglomerativ)
Schritt 1: Jedes Klassifikationsobjekt bildet zu Beginn ein selbständiges Cluster.Setze daher die Clusterzahl K gleich der Klassifikationsobjektzahl n.
Schritt 2: Suche das Clusterpaar ({p},{q}) mit der größten Ähnlichkeit bzw. der geringsten Unähnlichkeit, verschmelze das Clusterpaar zu einem neuen Cluster {p,q} und reduziere die Clusterzahl K um 1 (K=K-1).
Schritt 3: Prüfe, ob K gleich 1 ist. Ist das der Fall, beende den Algorithmus, da alle Klassifikationsobjekte einem einzigen Cluster angehören. Bei nein fahre mit Schritt 4 fort.
Schritt 4: Berechne die Ähnlichkeiten bzw. Unähnlichkeiten des neu gebildeten Clusters {p,q} zu den verbleibenden Clustern k.
Schritt 5: Gehe zu Schritt 2.
ClusteranalyseBeispiel (Bacher 1994): geg. Datenmatrix mit 9 Objekten und 2 Variablen
A B C D E F G H I02 0
10 16 08 10 2 0
13 13 5 1 017 9 25 13 10 026 16 32 18 13 1 037 25 41 25 18 4 1 040 26 50 32 25 5 2 1 0
Matrix der quadrierten euklidischen DistanzenX1 X2
A -2 1B -1 2C -1 -2D 0 -1E 1 -1F 2 2G 3 2H 4 2I 4 3
Datenmatrix
AB
CD
F
E
GIH
x1
x2
ClusteranalyseK-Means Verfahren
• K-Means ist ein partitionierendes, globales Verfahren mit exakter Zuordnung, das Clusterzentren zur Clusterbildung verwendet
• Grundidee:• Annahme: Objekte g durch numerische Variablen j charakterisiert,
d.h. jedes Objekt ist ein Punkt im Rm
• berechne die Clusterzentren für K Cluster derart, dass Streuungsquadratsumme in den Clustern ein Minimum ist.
• sei K = Anzahl der zu bildenden Cluster (k = 1, ... , K)m = Anzahl der Variablen (j = 1, ... , m)
= Wert der Variablen j für Objekt g= Clusterzentrum für Variable j im Cluster k
damit: ( ) ∑∑∑∈
→−=k kg j
kjgjin xxKSQ (*)min)( 2
gjxkjx
Clusteranalyse• da für die quadrierte euklidische Distanz zwischen Objekt g und
Clusterzentrum k gilt, dass
kann Minimierungsaufgabe (*) spezifiziert werden als
• da die Gesamtstreuungsquadratsumme für einegeg. Objektmenge konstant ist, ergibt sich mit
: Streuungsquadratsumme in den Clustern: Streuungsquadratsumme zwischen den Clustern
• Minimierung von ist gleichbedeutend zur Maximierung von
∑ −=j
kjgjkg xxd ,)( 22,
min)( 2, →=∑∑
∈k kgkgin dKSQ
gesSQ
)(KSQin)(KSQzw
)()( KSQSQKSQ ingeszw −=
)(KSQin)(KSQzw
)()( KSQSQKSQ ingeszw −=
)()( KSQKSQSQ inzwges +=
∑∑=g j
gjges xSQ 2
Ohne Einschränkung der Allgemeinheit:
Annahme, dass Daten um (0,...0) zentriert sind
( ) ∑∑∑∈
−=k kg j
kjgjin xxKSQ 2)(
( ) ∑∑∑∑ ==∈ k
kk kg j
kjzw xkxKSQ || 22
Kapitel VII.1 Clusteranalyse Clusteranalyse• K-Means Alogrithmus:
(1) Lege Clusteranzahl K fest(2) Wahl von Startwerten für die Clusterzentren,
z.B. zufällig gewählte Werte(3) Zuordnung der Objekte zu den Clusterzentren:
• jedes Objekt g wird jenem Clusterzentrum kzugeordnet, zu dem die quadrierte euklidische Distanz minimal ist.
• damit: wird minimiert,
in dem in jedem Schritt
berechnet wird.
∑∑∈
=k kg
kgin dKSQ 2,)(
)(dkkg kg,,...,Kk
2min1
′=′
=⇔∈
∑= ′=′g
kgKk
in dKSQ 2,
,...,1min)(
Clusteranalyse(4) Neuberechnung der Clusterzentren:
• nach der Zuordnung aller Objekte zu denK Clustern werden die Clusterzentren neu berechnet:
• sei nkj = Zahl der Objekte des Clusters k mit gültigem Angaben in der Variablen j
damit:
• ist Mittelwert für Variable j über alle Objekte g inCluster k
(5) Iteration:• sofern sich im Schritt (3) die Zuordnung der Objekte geändert hat, wird bei Schritt (3) fortgefahren;andernfalls endet der Algorithmus
kjx
∑∈
=kg kj
gjkj n
xx
Clusteranalyse• Bemerkung:
• in jedem Iterationsschritt wird die Streuungsquadratsummein den Clustern kleiner oder bleibt gleich
• Algorithmus findet für ein lokales Minimum. D.h. das Ergebnis ist von den gewählten Startwerten abhängig!! D. h. diese sind geeignet auszuwählen und das Ergebnis ist ggf.hinterher kritisch zu hinterfragen.
• diese Variante des K-Means Algorithmus wurde 1965 von Forgyentwickelt und wird deshalb auch als Forgy Methode bezeichnet
• zu dieser Basis-Variante des Algorithmus existieren verschiedeneModifikationen
• in K-Means können auch andere Distanzmaße verwendet werden (damit ist auch Behandlung nicht-numerischer Variablen möglich, wenn für diese die Durchschnittsbildung Bedeutung trägt.)
• Algorithmus hat geringe Komplexität, da nicht alle |G|² Distanzen berücksichtigt werden müssen. O(Kn) mit n Anzahl der Datenpunkte
)(KSQin
)(KSQin
ClusteranalyseBeispiel (Bacher 1994)
• geg. Datamatrix mit 9 Objekten und 2 Variablen:
• Bildung von 3 Clustern (K = 3)
X1 X2 A B C D E F G H IA -2 1 0B -1 2 2 0C -1 -2 10 16 0D 0 -1 8 10 2 0E 1 -1 13 13 5 1 0F 2 2 17 9 25 13 10 0G 3 2 26 16 32 18 13 1 0H 4 2 37 25 41 25 18 4 1 0I 4 3 40 26 50 32 25 5 2 1 0
Datenmatrix Matrix der quadrierten euklidischen Distanzen
Clusteranalyse• Anwendung des K-Means Algorithmus auf geg. Objekte
C1 C2 C3 C1 C2 C3 C1 C2 C3X1 -2,00 -1,00 -1,00 -2,00 2,40 0,00 -1,50 3,25 0,00X2 1,00 2,00 -2,00 1,00 2,20 -1,33 1,50 2,25 -1,33
X1 X2 Zuord. Zuord. Zuord.A -2 1 0,00 2,00 10,00 C1* 0,00 20,80 9,43 C1 0,50 29,13 9,43 C1B -1 2 2,00 0,00 16,00 C2* 2,00 11,60 12,09 C1* 0,50 18,13 12,09 C1C -1 -2 10,00 16,00 0,00 C3* 10,00 29,20 1,45 C3 12,50 36,13 1,45 C3D 0 -1 8,00 10,00 2,00 C3* 8,00 16,00 0,11 C3 8,50 21,13 0,11 C3E 1 -1 13,00 13,00 5,00 C3* 13,00 12,20 1,11 C3 12,50 15,63 1,11 C3F 2 2 17,00 9,00 25,00 C2* 17,00 0,20 15,09 C2 12,50 1,63 15,09 C2G 3 2 26,00 16,00 32,00 C2* 26,00 0,40 20,09 C2 20,50 0,13 20,09 C2H 4 2 37,00 25,00 41,00 C2* 37,00 2,60 27,09 C2 30,50 0,63 27,09 C2I 4 3 40,00 26,00 50,00 C2* 40,00 3,20 34,75 C2 32,50 1,13 34,75 C2
C1 C2 C3 C1 C2 C3 C1 C2 C3-2,00 2,40 0,00 -1,50 3,25 0,00 -1,50 3,25 0,001,00 2,20 -1,33 1,50 2,25 -1,33 1,50 2,25 -1,33
Zahl der Vertauschungen = 1
3. IterationClusterzentren
(Startwerte)
neue Clusterzentren
Zahl der Vertauschungen = 0
2. IterationClusterzentren
(Startwerte)
neue Clusterzentren
Clusterzentren(Startwerte)
1. Iteration
Zahl der Vertauschungen = 9
neue Clusterzentren
(Bacher 1994)
Clusteranalyse• Erläuterungen:
• die Objekte A, B, C werden als Startwerte für Clusterzentren der Cluster C1, C2, C3 gewählt
• die restlichen Objekte werden jenem Cluster zugeordnet, zu dem es die kleinste quadrierte euklidische Distanz besitzt (fettgedruckte Werte)
• das neue Clusterzentrum für C2 ergibt sich in der 1. Iteration (C2 besteht aus den Objekten B, F, G, H, I):
• in der 2. Iteration wird das Objekt B einem neuen Cluster zugeordnet: C1
• in der 3. Iteration tritt keine Veränderung der Zuordnung mehr auf, Algorithmus stoppt
40.25/)44321(21 =++++−=x20.25/)32222(22 =++++=x