Klassifikationsregeln Klassifikations/Entscheidungsbaum

Transcription

Klassifikationsregeln Klassifikations/Entscheidungsbaum
Klassifikationsregeln
Vorhersageattribute
V1, V2, ..., Vn
Vorhergesagtes Attribut A
Klassifikationsregel
P1(V1) ∧ P2(V2) ∧ ... ∧ Pn(Vn) Î A = c
Prädikate P1, P2, .., Pn
Konstante c
Beispielregel
Data Mining
Klassifikation
Assoziationsregeln
(wieAlt>35) ∧ (Geschlecht =`m´) ∧ (Autotyp=`Coupé´) Î (Risiko=´hoch´)
Clustering
Klassifikations/Entscheidungsbaum
Klassifikations/Entscheidungsbaum
Geschlecht
Geschlecht
m
m
w
w
geringes
R isiko
wiealt
geringes
R isiko
wiealt
< = 35
<=35
> 35
>35
hohes
R isiko
hohes
R isiko
A utotyp
C oupe
hohes
R isiko
A utotyp
Coupe
V an
geringes
R isiko
hohes
R isiko
Van
geringes
R isiko
Klassifikations/Entscheidungsbaum
Konstruktion von Entscheidungsbäumen
(Langley 1996, Quinlan 1993 )
Geschlecht
m
w
geringes
R isiko
wiealt
<=35
>35
hohes
R isiko
A utotyp
C oupe
(wieAlt>35) ∧ (Geschlecht =`m´) ∧
(Autotyp=`Coupé´) Î (Risiko=´hoch´)
Grundlagen
- Entscheidungsbäume sind eine spezielle Form
von 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
V an
hohes
R isiko
Konstruktion von Entscheidungsbäumen
geringes
R isiko
Konstruktion von Entscheidungsbäumen
Generelle Voraussetzungen:
Abbildung VI.1-1: Training instances
from a cell domain involving four
attributes and three distinct classes.
( Langley 1996 )
• Beispiele werden in Form von Attribut-Wert-Paaren
beschrieben
- 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 kleiner
als die Zahl der Trainingsbeispiele
Attributes:
number of nuclei
number of tails
color
wall
(values: 1,2)
(values: 1,2)
( values: light, dark)
(values: thin, thick)
Konstruktion von Entscheidungsbäumen
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)
Abbildung VI.1-2: A decision tree
generated by the DDT algorithm for the
training instances from Abbildung VI.11. Each terminal node specifies an
associated class name and the number
of training cases covered. Numbers
next to the notes indicate the order in
which the algorithm generated them.
The notation (a), which associates
attributes with nodes and values with
links, is equivalent to (b), which shows
the instances that each node covers.
(Langley 1996)
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 disjunkte
Teilmengen partitioniert in Abhängigkeit vom jeweiligen
Wert des Attributs
° Klassen müssen durch Entscheidungsbäume
oder Produktionsregeln beschreibbar sein
• typischerweise Beschreibungen der Form
[(att i1 = valuei1 ) ∧ K ∧ (att i n = valuei n )]
Beispiel: Klasse Healthy:
[( number_of_tails = 2) ∧ (number_of_nuclei = 1)] ∨
[( number_of_tails = 1) ∧ (color = dark) ∧
(number_of_nuclei = 2)]
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
ai
Graphisch:
ai1
- m Attribute a1, a2, ... am
- Wertebereich
von Attribut ai: {ai ,...,ai }
1
ki
von Attribut al: {al ,...,al }
1
•
Die Extension eines Knotens ist immer eine
Obermenge der Extension aller Sohnknoten
kl
aik
ai2..........
al
al1
al2 ..........
alk
l
i
Schuhe
Wie man in Holland
Leute erkennt (ohne
Gewähr) ...
4, 7, 10
3, 5, 8
Grafische Veranschaulichung der Klassifikationsaufgabe:
Unbekannt
Käse
Ein Entscheidungsbaum
zur Klassifikation
Gouda
NichtHolländer
1, 6
2, 9
Konstruktion von Entscheidungsbäumen
- Beispielalgorithmus für Aufbau eines univariaten Entscheidungsbaums:
DDT - Algorithmus: Divisive Induction of
Univariate Decision Trees
n
Holländer
e
n
ag
pe
nw
om
oh
W
Kl
Holländer
Holländisch
+
+
+
+
+
-
al
Klompen
NichtHolländer
Wohnwagen
Ja
Ja
Ja
Nein
Ja
Nein
Ja
Nein
Nein
Ja
t
nn
ka
be
un
Normal
LieblingsKäse
Gouda
Camembert
Gouda
Gouda
Camembert
Gouda
Gouda
Gouda
Camembert
Camembert
m
or
Schuhe
Unbek.
Unbek.
Klompen
Normal
Klompen
Unbek.
Normal
Klompen
Unbek.
Normal
N
1
2
3
4
5
6
7
8
9
10
Konstruktion von Entscheidungsbäumen
Schuhe
Konstruktion von Entscheidungsbäumen
-/-
-/-
+/+
-/-
++
+/+
Gouda
Camembert
+ : Holländer
- : kein Holländer
Käse
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.
- DDT ist nicht-inkrementell:
- alle Trainingsbeispiele müssen verfügbar sein
Output:
- DDT ist Greedy-Algorithmus (greedy=gierig):
- lokal optimale Entscheidungen werden
getroffen
- getroffene Entscheidungen können nicht
mehr zurückgenommen werden
A univariate decision tree.
Top-level call: DDT(root, ASET, ISET).
Konstruktion von Entscheidungsbäumen
Konstruktion von Entscheidungsbäumen
Procedure DDT(N, ASET, ISET)
Beispiel "Spielen im Freien":
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
Outlook
sunny
sunny
sunny
sunny
sunny
overcast
overcast
overcast
overcast
rain
rain
rain
rain
rain
° 4 Attribute
° 2 Klassen: Play
Don‘t Play
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
Temp (F)
75
80
85
72
69
72
83
64
81
71
65
75
68
70
Humidity (%)
70
90
85
95
70
90
78
65
75
80
70
80
80
96
W indy?
true
true
false
false
false
true
false
true
false
true
true
false
false
false
Abbildung VI.1-3: A small training set (Quinlan 1993)
Let KSET be ASET \ {B}.
DDT(C, KSET, JSET).
Konstruktion von Entscheidungsbäumen
Konstruktion von Entscheidungsbäumen
Graphische Darstellung des Entscheidungsbaumes zum Beispiel:
outlook
humidity
(Quinlan 1993)
≤ 75
Play
rain
overcast
sunny
Abbildung VI.1-4: Final
partition of cases and
corresponding decision tree
Class
Play
Dont´t Play
Dont´t Play
Dont´t Play
Play
Play
Play
Play
Play
Dont´t Play
Dont´t Play
Play
Play
Play
windy
Play
> 75
Don‘t Play
true
false
Don‘t Play
Play
Konstruktion von Entscheidungsbäumen
C4.5 - Algorithmus
(Quinlan 1993)
- weitverbreiteter Algorithmus zum Aufbau von
Entscheidungsbäumen (oder entsprechenden
Produktionsregeln)
- 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 erzeugten
Entscheidungsbaums: pruning
° aus Entscheidungsbaum können entsprechende
Produktionsregeln erzeugt werden
⇒ alternative lesbarere Darstellung
° Windowing - Technik für Handhabung einer
groß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 (Greedy
Algorithmus): verwende das Attribut, das am meisten
Information liefert (im Sinne der Informationstheorie)
• C4.5 verwendet gain ratio als Kriterium. Es ist eine
Abwandelung des im folgenden beschriebenen gain
criterion.
Konstruktion von Entscheidungsbäumen
gain criterion
- Bezeichnungen: S: Gesamtbeispielmenge
- Informationsgehalt einer Botschaft bi:
T: Menge der Trainingsbeispiele (T⊂ S)
hat bi die Wahrscheinlichkeit pi ,
T1, T2, ..., Tn: Partition von T
so ist der Informationsgehalt von bi ≡ -log2 (pi) bits
Beispiel: 8 gleichwahrscheinliche Botschaften b1, ... ,b8 :
S
T
••
• ••
••
•••
•T•4 •
•
T1
•••
T3 • • •
•
••• T
2
•• •
•
jedes bi hat den Informationsgehalt
- log (1) bits = 3 bits
28
Konstruktion von Entscheidungsbäumen
Konstruktion von Entscheidungsbäumen
- Botschaft, die mitteilt, dass beliebig ausgewähltes Beispiel aus
Menge T in Klasse ci liegt, hat den Informationsgehalt
− log
2
⎛
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎝
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎠
C ∩T
i
bits
T
- Erwartungswert für den Informationsgehalt dieser Botschaften
(bei k Klassen C1, ... ,Ck):
⎛
⎜
⎜
⎝
(Entropie von T)
⎟
⎠
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 ):
⎛
⎜
⎞
⎟
⎜
⎝
⎟
⎠
⎜ C ∩T ⎟
k C j ∩Ti
⎜
j i ⎟⎟
info(T ) = − ∑
* log ⎜⎜
⎟ bits
i
2
⎜
⎟
T
T
⎜
⎟
j =1
i ⎟
i
⎜
z.B.: k = 2
⎞
⎟
⎜ C ∩T ⎟
k C j ∩T
⎟
⎜
j
⎟ bits
info( T ) = − ∑
* log ⎜⎜
2⎜ T ⎟⎟
T
⎟
⎜
j =1
⎟
⎜
- Sei X ein Test, der T in T1, ... , Tn partitioniert.
Damit ist der Erwartungswert über alle T1, ... , Tn:
C1: play
C2: don‘t play
z.B.: k = 2
C1: play
C2: don‘t play
n T
infox(T) = ∑ i * info(T )
i
i =1 T
z.B.: X: outlook; n = 3
T1: sunny
T2: overcast
T3: rain
Konstruktion von Entscheidungsbäumen
- gain criterion :
gain(x) = info(T) - info x(T)
Konstruktion von Entscheidungsbäumen
- gain criterion :
gain(x) = info(T) - info x(T)
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öglichst
groß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 zur
Klassifikation ist möglichst klein
Bem.: Dies ist verwandt zum gemittelten Information Gain
I gain ( c , A ) =
1 s
1 s
1 s
I gain ( c , Ai ) = ∑ ( H ( c ) − H ( c |Ai )) = H ( c ) − ∑ H ( c |Ai )
∑
s i =1
s i =1
s i =1
nur dass dort nur die Vorhersage einer Klasse C und nicht die
Vorhersage in die Einteilung der Klassen C1 , ... , Ck betrachtet wurde.
k=2
Konstruktion von Entscheidungsbäumen
Fortführung des Beispiels "Spielen im Freien" :
2 Klassen :
Play, Don‘t Play
Klasse Play:
9 Fälle
Klasse Don‘t Play :
5 Fälle
damit:
⎛
⎜
⎜
⎜
⎜
⎜
⎜
⎜
⎜⎜
⎝
k=2
Konstruktion von Entscheidungsbäumen
C1: play
C1: play
C2: don‘t play
C2: don‘t play
⎞
⎟
⎟
⎟
⎟
⎟
⎟
⎟
⎟⎟
⎠
C ∩T
2 C j ∩T
j
info(T) = − ∑
* log
bits
2
T
T
j =1
- Attribut ‚outlook‘ erzeugt 3 Teilmengen:
⎯
⎯→ T = 5
T : outlook = sunny
1
1
T : outlook = overcast ⎯⎯→ T = 4
2
2
T : outlook = rain
⎯
⎯→ T = 5
3
3
Und liefert nach Definition damit:
info
⎛
⎞
⎛
⎞⎞
⎛
= − ⎜⎜⎜ 9 * log ⎜⎜ 9 ⎟⎟ + 5 log ⎜⎜ 5 ⎟⎟ ⎟⎟⎟ bits
14
14
14
14
⎝
2 ⎠⎠
2⎝ ⎠
⎝
= 0.940 bits
(durchschnittlich benötigte Information zur Identifizierung der
Klassenzugehörigkeit eines Beispiels aus T)
X: outlook; n = 3
T1: sunny
T2: overcast
T3: rain
3 T
(T) = ∑ i * info(T )
outlook
i
i =1 T
⎛
⎛ ⎞⎞
⎛
⎞
= 5 * ⎜⎜⎜ − 2 * log ⎜⎜ 2 ⎟⎟ − 3 * log ⎜⎜ 3 ⎟⎟ ⎟⎟⎟
14 ⎝ 5
2⎝ 5 ⎠ 5
2 ⎝ 5 ⎠⎠
⎛
⎛
⎞⎞
⎛
⎞
+ 4 * ⎜⎜⎜ − 4 * log ⎜⎜ 4 ⎟⎟ − 0 * log ⎜⎜ 0 ⎟⎟ ⎟⎟⎟
14 ⎝ 4
2⎝ 4 ⎠ 4
2 ⎝ 4 ⎠⎠
⎛
⎛ ⎞
⎛
⎞⎞
+ 5 * ⎜⎜⎜ − 3 * log ⎜⎜ 3 ⎟⎟ − 2 log ⎜⎜ 2 ⎟⎟ ⎟⎟⎟
14 ⎝ 5
2⎝5 ⎠ 5
2 ⎝ 5 ⎠⎠
= 0.694 bits
Konstruktion von Entscheidungsbäumen
k=2
Konstruktion von Entscheidungsbäumen
C1: play
C2: don‘t play
Daraus folgt:
gain(outlo ok) = info(T) − info
outlook
Testwerten
(T)
(Attribut mit großem Wertebereich), wie das folgende Beispiel zeigt.
= ( 0.940 − 0.694 ) bits = 0.246 bits
⇒ Bildung von Teilmengen mit wenigen Fällen
Vergleich mit dem Attribut ‚windy‘:
windy erzeugt 2 Teilmengen:
T : windy = true
1
X: windy; n = 2
T =6
1
T1: true
T : windy = false ⎯⎯→ T = 8
T2: false
2
2
2 T
(T) = ∑ i * info(T ) = K = 0.892 bits
o info
windy
i
i =1 T
o damit
gain(windy ) = (0.940 − 0.892) bits = 0.048 bits
⎯⎯→
Also wird ‚outlook‘ als stärker diskriminierendes
Merkmal weiter oben im Baum verwandt als ‚windy‘.
Das gain criterion bevorzugt Tests mit vielen verschiedenen
⇒ 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 criterion
vorgestellt.
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 des
Zielattributes, d.h. Klassenzugehörigkeit
• Attribut ‘‘Datum‘‘ würde als Wurzelattribut
gewählt
werden
• 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
Anwendung auf das Beispiel:
Attribut 'outlook' erzeugt 3 Teilmengen
mit 5, 4 und 5 Beispielen; damit
⎛ 4 ⎞
⎛ 4 ⎞
⎛ 5 ⎞
5 ⎞⎟
⎜
⎟
⎜
⎟
⎜
⎟
⎟ * log ⎜
⎟
⎟ * log ⎜
⎟ −⎜
2
2
⎟
⎜
⎟
⎜
⎟
⎜
⎟
14 ⎠
⎝ 14 ⎠
⎝ 14 ⎠
⎝ 14 ⎠
⎛ 5 ⎞
⎛ 5 ⎞
− ⎜⎜ ⎟⎟ * log ⎜⎜ ⎟⎟ = 1.577 bits
2⎜⎝ 14 ⎟⎠
⎜
⎟
⎝ 14 ⎠
⎛
split info(outlook) = − ⎜⎜
⎜
⎝
damit
gain ratio(outlook) =
gain(outlook)
split info(outlook)
=
0.246
1.577
= 0.156
Konstruktion von Entscheidungsbäumen
- Idee: normalisiere 'gain criterion' durch
'split info': Erwartungswert für Informationsgehalt einer Botschaft,
die mitteilt, daß beliebig ausgewähltes Beispiel in Teilmenge T liegt
i
(T wird durch Test X in Teilmengen T ,K,Tn partitioniert)
1
⎛
⎜
⎞
⎟
⎝
⎠
⎜ T ⎟
n T
split info(x) = − ∑ i * log ⎜⎜ i ⎟⎟ bits
2⎜ T ⎟
⎜
⎟
i =1 T
⎜
⎟
damit: gain ratio(x) =
gain(x)
split info(x)
- da 'split info' für wenige große T sehr klein ist :
i
maximiere ' gain ratio' unter Nebenbedingung, dass gain
wenigstens so groß ist wie der Durchschnittswert von
gain über alle möglichen Tests X.
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)
After pruning:
synfuels corporation cutback = y:
physician fee freeze = n: democrat (168/2.6)
duty free exports = y: democrat (2)
physician fee freeze = y: republican (123/13.9)
duty free exports = u: republican (1)
physician fee freeze = u:
duty free exports = n:
mx missile = n: democrat (3/1.1)
education spending = n: democrat (5/2)
mx missile = y: democrat (4/2.2)
education spending = y: republican (13/2)
mx missile = u: republican (2/1)
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)
Abbildung VI.1-5: Decision tree before and
mx missile = u: republican (2)
after pruning (Quinlan 1993 )
Kapitel VI.1: Konstruktion von Entscheidungsbäumen
Kapitel VI.1: Konstruktion von Entscheidungsbäumen
Abbildung VI.1-9:
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
labor-neg decision tree in graph form
(Quinlan 1993)
IF test1 ∧ test2 ∧ .. ∧ testn
THEN class = C1
• Eine Klasse wird als Default-Klasse verwendet.
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 vereinfacht
werden durch Entfernen von Tests aus dem
Bedingungsteil:
Beispiel: In Regel 4 in Abbildung VI.1-10 ist die
Bedingung ‚statutary holidays ≤ 10‘
entfernt worden.
- Vorgehensweise für Klassifikation eines
neuen Beispiels:
° gehe Regeln der Reihe nach durch
( Reihenfolge ist relevant )
° erste Regel, deren Bedingungsteil
erfüllt ist, wird ausgewählt
° rechte Seite der Regel bestimmt
Klassenzugehö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 Erzeugung
von Entscheidungsbäumen und zugehörigen
Produktionsregeln
- Verfahren abhängig von
° Bewertungsfunktion für Attributauswahl
° Schätzung der Fehlerrate bei Pruning
° Schätzung der Fehlerrate bei Erzeugung
und Vereinfachung von Produktionsregeln
- vergleichbare Verfahren
° ID3 (Quinlan 1983)
° CN2 (Clark/Niblatt 1989)
VerkaufsTransaktionen
TransID Produkt
111
Drucker
111
Papier
111
PC
111
Toner
222
PC
222
Scanner
333
Drucker
333
Papier
333
Toner
444
Drucker
444
PC
555
Drucker
555
Papier
555
PC
555
Scanner
555
Toner
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 sind
Der A Priori-Algorithmus basiert auf der
Erkenntnis, dass alle Teilmengen eines
FI auch FIs sein müssen
Assoziationsregeln
Beispielregel
Wenn jemand einen PC kauft, dann kauft er/sie auch einen
Drucker
Confidence
Dieser 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.
Support
Dieser 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.
A Priori Algorithmus
für alle Produkte
überprüfe ob es ein frequent itemset 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 ⊂ Ik+1
lies alle Einkäufe einmal (sequentieller Scan auf der Datenbank)
und überprüfe, welche der (k+1)-elementigen itemsetKandidaten mindestens minsupp mal vorkommen
k:=k+1
bis keine neuen frequent itemsets gefunden werden
VerkaufsTransaktionen
TransID Produkt
111
Drucker
111
Papier
111
PC
111
Toner
222
PC
222
Scanner
333
Drucker
333
Papier
333
Toner
444
Drucker
444
PC
555
Drucker
555
Papier
555
PC
555
Scanner
555
Toner
A Priori-Algorithmus
Minsupp=3
Disqualifiziert
Zwischenergebnisse
FI-Kandidat
{Drucker}
{Papier}
{PC}
{Scanner}
{Toner}
{Drucker, Papier}
{Drucker, PC}
{Drucker, Scanner}
{Drucker, Toner}
{Papier, PC}
{Papier, Scanner}
{Papier, Toner}
{PC, Scanner}
{PC,Toner}
{Scanner, Toner}
Anzahl
4
3
4
2
3
3
3
3
2
3
2
Ableitung von Assoziationsregeln aus
den frequent itemsets
Betrachte jeden FI mit hinreichen viel support
Bilde 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 %
VerkaufsTransaktionen
TransID Produkt
111
Drucker
111
Papier
111
PC
111
Toner
222
PC
222
Scanner
333
Drucker
333
Papier
333
Toner
444
Drucker
444
PC
555
Drucker
555
Papier
555
PC
555
Scanner
555
Toner
A Priori-Algorithmus
Zwischenergebnisse
FI-Kandidat
{Drucker, Papier}
{Drucker, PC}
{Drucker, Scanner}
{Drucker, Toner}
{Papier, PC}
{Papier, Scanner}
{Papier, Toner}
{PC, Scanner}
{PC,Toner}
{Scanner, Toner}
{Drucker, Papier, PC}
{Drucker, Papier, Toner}
{Drucker, PC, Toner}
{Papier, PC, Toner}
Anzahl
3
3
3
2
3
2
2
3
2
2
Erhöhung der Confidence
Vergrößern der linken Seite (dadurch Verkleinern der rechten
Seite) führt zur Erhöhung der Confidence
Formal: L ⊂ L+ , R ⊂ RConfidence(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
Clusteranalyse
Schadenshöhe
(Bacher 1994)
Outlier
• 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
Alter der Fahrer
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
• geg. Menge von Objekten kann sich für Clusterbildung eignen,
muss aber nicht:
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.
Clusteranalyse
Clusteranalyse
Vorgehensweise
• legt fest, nach welcher Vorgehensweise ein Cluster erzeugt wird.
• hierarchische Verfahren
hierarchische Verfahren werden unterschieden in
• Partitionierende Verfahren
• zufällig gewählte Anfangspartition (Menge nicht-überlappender Cluster)
der zu clusternden Objekte wird schrittweise verbessert durch
Neuzuordnung 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
• agglomerative Verfahren
Cluster werden bottom-up erzeugt, ausgehend von
einelementigen Clustern, den zu clusternden Objekten
• divisive Verfahren
Cluster werden top-down erzeugt, ausgehend von
einem 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
• kein prozedurales Vorgehen wie bei hierarchischen Verfahren
• Basis bildet die Objektfunktion, die jedem Cluster einen
Qualitätswert zuordnet
Clusteranalyse
Hierarchisch agglomerativer Algorithmus
• bei n geg. Objekten werden (n-1) überlappungsfreie
Clusterlösungen berechnet
• Algorithmus kann mit verschiedenen Ähnlichkeitsmaßen
bzw. Unähnlichkeitsmaßen arbeiten, u.a.
• Complete Linkage
• Single Linkage
Clusteranalyse
• Complete Linkage
• Unähnlichkeit zwischen zwei Clustern wird durch
das Maximum der paarweisen Unähnlichkeiten der
Clusterelemente bestimmt:
• für c1, c2 Cluster, d Abstandsmaß:
D (c1 , c2 ) = max d ( x, y )
x∈c1 , y∈c2
• hohe Anforderungen an die Homogenität der
zu bildenen Cluster
Feature Based Similarity
Simple Similarity Queries
Specify query object and
Find similar objects – range query
Find the k most similar objects – nearest neighbor q.
Join Applications: Catalogue Matching
Catalogue matching
E.g. Astronomic catalogues
Join Applications: Clustering
Clustering (e.g. DBSCAN)
R
S
Similarity self-join
R-tree Spatial Join (RSJ)
Clusteranalyse
• Single Linkage
procedure r_tree_sim_join (R, S, ε)
if IsDirpg (R) ∧ IsDirpg (S) then
foreach r ∈ R.children do
foreach s ∈ S.children do
if mindist (r,s) ≤ ε then
CacheLoad(r); CacheLoad(s);
r_tree_sim_join (r,s,ε) ;
else (* assume R,S both DataPg *)
foreach p ∈ R.points do
foreach q ∈ S.points do
if |p − q| ≤ ε then report (p,q);
R
S
• für c1, c2 Cluster, d Abstandsmaß:
D (c1 , c2 ) = min d ( x, y )
x∈c1 , y∈c2
• geringe Anforderungen an die Homogenität der
zu bildenen Cluster
ε
Clusteranalyse
• Algorithmus (hierarchisch agglomerativ)
Schritt 1:
Schritt 2:
Schritt 3:
• Unähnlichkeit zwischen zwei Clustern wird durch
das Minimum der paarweisen Unähnlichkeiten der
Clusterelemente bestimmt:
Clusteranalyse
Beispiel (Bacher 1994): geg. Datenmatrix mit 9 Objekten und 2 Variablen
Jedes Klassifikationsobjekt bildet zu Beginn ein selbständiges Cluster.
Setze daher die Clusterzahl K gleich der Klassifikationsobjektzahl n.
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).
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.
A
B
C
D
E
F
G
H
I
Datenmatrix
X1
X2
-2
1
-1
2
-1
-2
0
-1
1
-1
2
2
3
2
4
2
4
3
Matrix der quadrierten euklidischen Distanzen
B
C
D
E
F
G
H
A
0
2
10
8
13
17
26
37
40
0
16
10
13
9
16
25
26
0
2
5
25
32
41
50
0
1
13
18
25
32
0
10
13
18
25
x2
I
F G H
B
A
D E
C
x1
0
1
4
5
0
1
2
I
0
1
0
Clusteranalyse
Clusteranalyse
K-Means Verfahren
• da für die quadrierte euklidische Distanz zwischen Objekt g und
• K-Means ist ein partitionierendes, globales Verfahren mit exakter
Zuordnung, das Clusterzentren zur Clusterbildung verwendet
Clusterzentrum k gilt, dass
d g2,k = ∑ ( x gj − xkj ) 2
,
j
kann Minimierungsaufgabe (*) spezifiziert werden als
• 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)
x gj = Wert der Variablen j für Objekt g
xkj = Clusterzentrum für Variable j im Cluster k
SQin (K ) = ∑∑∑ ( x gj − xkj ) 2 → min (*)
damit:
g∈k
k
j
Kapitel VII.1 Clusteranalyse
Ohne Einschränkung der Allgemeinheit:
Annahme, dass Daten um (0,...0) zentriert sind
SQ ges = ∑∑ x gj
2
j
SQin ( K ) = ∑∑∑ ( x gj − x kj ) 2
g∈k
2
g∈k
j
SQin (K ) : Streuungsquadratsumme in den Clustern
SQzw (K ) : Streuungsquadratsumme zwischen den Clustern
SQzw ( K ) = SQges − SQin ( K )
• Minimierung von SQin (K ) ist gleichbedeutend zur
Maximierung von SQzw (K )
(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 k
zugeordnet, zu dem die quadrierte euklidische
Distanz minimal ist.
g ∈ k ⇔ k = min (d g,2k ′ )
k ′ =1,...,K
j
SQzw ( K ) = ∑∑∑ x kj = ∑ |k | x
k
g∈k
• K-Means Alogrithmus:
SQ ges = SQ zw ( K ) + SQin ( K )
k
k
• da die Gesamtstreuungsquadratsumme SQges für eine
geg. Objektmenge konstant ist, ergibt sich mit
Clusteranalyse
SQzw ( K ) = SQges − SQin ( K )
g
SQin ( K ) = ∑∑ d g2,k → min
k
2
k
• damit: SQin ( K ) =
∑∑ d
k
g∈k
2
g ,k
wird minimiert,
in dem in jedem Schritt
SQin ( K ) = ∑ min d g2,k ′
g k ′ =1,..., K
berechnet wird.
Clusteranalyse
Clusteranalyse
• Bemerkung:
(4) Neuberechnung der Clusterzentren:
• nach der Zuordnung aller Objekte zu den
K Clustern werden die Clusterzentren neu berechnet:
• sei nkj = Zahl der Objekte des Clusters k mit
gültigem Angaben in der Variablen j
xkj = ∑
damit:
g∈k
• in jedem Iterationsschritt wird die Streuungsquadratsumme
in den Clustern SQin (K ) kleiner oder bleibt gleich
• Algorithmus findet für SQin (K ) 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.
x gj
nkj
• diese Variante des K-Means Algorithmus wurde 1965 von Forgy
entwickelt und wird deshalb auch als Forgy Methode bezeichnet
• xkj ist Mittelwert für Variable j über alle Objekte g in
Cluster k
• zu dieser Basis-Variante des Algorithmus existieren verschiedene
Modifikationen
(5) Iteration:
• sofern sich im Schritt (3) die Zuordnung der Objekte
geändert hat, wird bei Schritt (3) fortgefahren;
andernfalls endet der Algorithmus
• 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
Clusteranalyse
Clusteranalyse
Beispiel
(Bacher 1994)
• Anwendung des K-Means Algorithmus auf geg. Objekte
1. Iteration
Clusterzentren
(Startwerte)
C1
C2
C3
-2,00 -1,00 -1,00
1,00
2,00 -2,00
• geg. Datamatrix mit 9 Objekten und 2 Variablen:
A
B
C
D
E
F
G
H
I
Datenmatrix
X1
X2
-2
1
-1
2
-1
-2
0
-1
1
-1
2
2
3
2
4
2
4
3
A
0
2
10
8
13
17
26
37
40
Matrix der quadrierten euklidischen Distanzen
B
C
D
E
F
G
H
0
16
10
13
9
16
25
26
• Bildung von 3 Clustern (K = 3)
0
2
5
25
32
41
50
0
1
13
18
25
32
0
10
13
18
25
0
1
4
5
0
1
2
I
A
B
C
D
E
F
G
H
I
0
1
X1
X2
X2
X1
0
-2
-1
-1
0
1
2
3
4
4
1
2
-2
-1
-1
2
2
2
3
Zuord.
2,00 10,00 C1*
0,00
2,00
0,00 16,00 C2*
10,00 16,00
0,00 C3*
8,00 10,00
2,00 C3*
13,00 13,00
5,00 C3*
17,00
9,00 25,00 C2*
26,00 16,00 32,00 C2*
37,00 25,00 41,00 C2*
40,00 26,00 50,00 C2*
neue Clusterzentren
C1
C2
C3
-2,00
2,40
0,00
1,00
2,20 -1,33
Zahl der Vertauschungen = 9
2. Iteration
Clusterzentren
(Startwerte)
C1
C2
C3
-2,00
2,40
0,00
1,00
2,20 -1,33
Zuord.
9,43 C1
0,00 20,80
2,00 11,60 12,09 C1*
10,00 29,20
1,45 C3
8,00 16,00
0,11 C3
13,00 12,20
1,11 C3
17,00
0,20 15,09 C2
26,00
0,40 20,09 C2
37,00
2,60 27,09 C2
40,00
3,20 34,75 C2
neue Clusterzentren
C1
C2
C3
-1,50
3,25
0,00
1,50
2,25 -1,33
Zahl der Vertauschungen = 1
3. Iteration
Clusterzentren
(Startwerte)
C1
C2
C3
-1,50
3,25
0,00
1,50
2,25 -1,33
Zuord.
9,43 C1
0,50 29,13
0,50 18,13 12,09 C1
12,50 36,13
1,45 C3
8,50 21,13
0,11 C3
12,50 15,63
1,11 C3
12,50
1,63 15,09 C2
20,50
0,13 20,09 C2
30,50
0,63 27,09 C2
32,50
1,13 34,75 C2
neue Clusterzentren
C1
C2
C3
-1,50
3,25
0,00
1,50
2,25 -1,33
Zahl der Vertauschungen = 0
(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):
x21 = ( −1 + 2 + 3 + 4 + 4) / 5 = 2.40
x22 = ( 2 + 2 + 2 + 2 + 3) / 5 = 2.20
• 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