data mining - dbs.uni-leipzig.de · data mining 11-3 ws 2018/19 supervised learning • datensatz...
TRANSCRIPT
11-1Data Mining WS 2018/19
Data Mining
Kapitel 11: Machine Learning
Johannes Zschache
Wintersemester 2018/19
Abteilung Datenbanken, Universität Leipzig
http://dbs.uni-leipzig.de
11-2Data Mining WS 2018/19
Übersicht
Hoch-dimension.
Daten
Locality sensitive hashing
Clustering
Dimension.reduction
Graph-daten
PageRank, SimRank
Network Analysis
Spam Detection
UnbegrenzteDaten
Filtering data
streams
Web advertising
Queries on streams
MaschinellesLernen
Support Vector
Machines
Decision Trees
Nearest Neighbors
Anwendung
Recommen.Systems
Association Rules
Duplicate document detection
11-3Data Mining WS 2018/19
Supervised Learning
• Datensatz aus Paaren (𝒙, 𝑦)– 𝒙 ist ein Vektor mit Merkmalen (Features) mehrerer
beliebiger Datentypen (reelle Zahlen, Zeichenketten,
Kategorien, Boolesche Werte, …)
– 𝑦 ist eine Bezeichnung (Label), z.B. eine reelle Zahl
oder eine Kategorie (Klasse)
• Aufteilung in Trainings- und Testdaten
• Ziel: Auffinden einer Funktion (Modell) 𝑓 mit 𝑦 = 𝑓(𝒙)– Schätzung dieser Funktion über Trainingsdaten
– Bewertung der Funktion über Testdaten
– Vielzahl an Modellen
– Auswahl in dieser Vorlesung:
• K-Nearest Neighbors
• Support Vector Machines
• Decision Trees
X Y
X’ Y’
Trainings- und Testdaten
11-4Data Mining WS 2018/19
k-Nearest Neighbors
• Instance-based Learning
– Gesamter Trainingsdatensatz {(𝒙, 𝑦)} wird aufbewahrt
– Anfrage: Neuer Datenpunkt 𝒙∗
– Finde 𝒙 aus Traningsdatensatz, welche 𝒙∗ am ähnlichsten
– Schätzung von 𝑦∗ durch 𝑦
• Collaborative Filtering ist weiteres Beispiel des Instance-based Learning
• Features müssen Berechnung einer Ähnlichkeit erlauben
• Aggregation mehrerer Trainingsdaten: Labels 𝑦 sollten numerisch sein
• Parameter:
– Distanzfunktion, z.B. euklidisch
– Wie viele ähnliche Punkte? - 𝑘
– Zusammenfassen der Label 𝑦 zu 𝑦∗
• Arithmetisches Mittel
• Gewichtetes arithmetisches Mittel
11-6Data Mining WS 2018/19
Beispiel
• Gewichtung über Kernel, z.B. 𝒘𝒊 =1
𝑥𝑖−𝑥∗ 2
• Für x∗ = 3.5:
• Schätzung: y∗ =σ𝒊𝒘𝒊𝒚𝒊σ𝒊𝒘𝒊
=𝟓𝟏.𝟐𝟑
𝟗.𝟐𝟗= 𝟓. 𝟓𝟏
𝒙 𝒚 𝑤𝑖 𝑤𝑖𝒚
1 1 4/25 4/25
2 2 4/9 8/9
3 4 4 16
4 8 4 32
5 4 4/9 16/9
6 2 4/25 8/25
7 1 4/49 4/49
11-7Data Mining WS 2018/19
Large-scale k-Nearest-Neighbors
• Probleme bei sehr vielen Dimensionen und/oder sehr großen Daten
• Spezielle Indexstrukturen für multidimensionale Daten:
– kd-Trees
– R-Trees
– Quad Trees
• Daten-/Dimensionsreduktion
– Clustering
– SVD, PCA, Latente Variablen
• Finding Similar Items: LSH
11-8Data Mining WS 2018/19
Inhaltsverzeichnis
• k-Nearest Neighbors
• Support Vector Machines
• Decision Trees
11-9Data Mining WS 2018/19
Perceptrons
• Lineares Modell
• Motivation: Neuronen
• Feature-Vektor 𝒙 = (𝑥1, … 𝑥𝑛) und binäres Label 𝑦 ∈ {−1,+1}
• Gewichte 𝒘 = (𝑤1, … , 𝑤𝑛) und Schwellenwert 𝜃
• Aktivierungsfunktion:
𝑓 𝒙 =
𝑖
𝑤𝑖𝑥𝑖 = 𝒙 ∙ 𝒘
• Vorhersage:
+1, falls 𝑓 𝑥 ≥ 𝜃, und -1, falls 𝑓(𝑥) < 𝜃
• Beispiel: Spamfilter
x1
x2
x3
x4
𝜃?
w1
w2
w3
w4
+1
-1
11-10Data Mining WS 2018/19
Perceptrons
• Ziel: Finden von Parametern 𝒘 und 𝜃, so dass der Raum der Feature-
Vektoren in zwei Teile aufgespalten wird und Punkte mit dem gleichen
Label auf der gleichen Seite sind
- ---
-
- --- -
-𝑤𝑣
𝑥
11-11Data Mining WS 2018/19
Perceptrons
• Ziel: Finden von Parametern 𝒘 und 𝜃, so dass der Raum der Feature-
Vektoren in zwei Teile aufgespalten wird und Punkte mit dem gleichen
Label auf der gleichen Seite sind
- ---
-
- --- -
-
𝒘 ∙ 𝒙+ = 𝒗+ 𝒘 > 𝒗 |𝒘| = 𝜽
𝑤𝑣+
𝑥+
11-12Data Mining WS 2018/19
Perceptrons: Berechnung von w
• Lernrate 𝜂 > 0
• Sei 𝒘′ = (𝑤1, … , 𝑤𝑛, 𝜃)
• Beginne mit 𝒘′ = 𝟎
• Iteration über Trainigsdaten 𝒙, 𝑦– Sei 𝒙′ = (𝑥1, … , 𝑥𝑛, −1)
– Berechne 𝑦∗ = 𝑠𝑖𝑔𝑛(𝒘′ ∙ 𝒙′)
– Falls 𝑦∗ = 𝑦: Keine Änderung
– Sonst: 𝒘′ ← 𝒘′ + 𝑦 𝒙′
• Falls ein Vektor 𝒘’ existiert, so dass die Daten linear trennbar sind, dann
konvergiert der Algorithmus.
• Falls die Daten nicht linear trennbar sind,
dann wird der Algorithmus unendlich und
zyklisch laufen.
w'
𝒚𝒙′
𝒙′ mit 𝒚 = 𝟏
w'
11-13Data Mining WS 2018/19
Beispiel
• 𝜂 = 0.5 und 𝜃 = 0
• 𝒘 = 0,0,0,0,0
• Iteration über Zeilen
• Schritt 1:
– 𝑠𝑖𝑔𝑛 𝒘 ∙ 𝒂 = 𝑠𝑖𝑔𝑛(0) ≠ +𝟏
– 𝒘 ← 𝒘 + 𝜂𝑦𝒂 = 0,0,0,0,0 + (0.5,0.5,0,0.5,0.5)
• Schritt 2:
– 𝑠𝑖𝑔𝑛 𝒘 ∙ 𝒃 = 𝑠𝑖𝑔𝑛 0.5 ≠ −𝟏
– 𝒘 ← 𝒘 + 𝜂𝑦𝒃 = 0.5,0.5,0,0.5,0.5 − 0,0,0.5,0.5,0 =(0.5,0.5, −0.5,0,0.5)
• …
• Konvergenz zu: 𝒘 = (0, 1, 0, −0.5, 0.5)– 𝑠𝑖𝑔𝑛 𝒘 ∙ 𝒂 = 𝑠𝑖𝑔𝑛 𝒘 ∙ 𝒄 = 𝑠𝑖𝑔𝑛 𝒘 ∙ 𝒆 = +1
– 𝑠𝑖𝑔𝑛 𝒘 ∙ 𝒃 = 𝑠𝑖𝑔𝑛 𝒘 ∙ 𝒅 = 𝑠𝑖𝑔𝑛 𝒘 ∙ 𝒇 = −1
11-14Data Mining WS 2018/19
Multiclass Perceptrons
• Mehr als 2 Klassen
• Ein Perceptron pro Klasse:
– Gewichte 𝑤𝑐 für Klasse c
– Globaler Schwellenwert 𝜃
• Berechnung der Aktivierung für jede Klasse:
𝑓𝑐(𝒙) = 𝒙 ∙ 𝒘𝑐
• Vorausgesetzt 𝑓𝑐 (𝒙) > 𝜃 für mind. eine Klasse c, wähle Klasse
𝑐 = argmax𝑐
𝑓𝑐(𝒙)
wA
wC
wB
𝒘𝑨𝒙
𝒘𝑪𝒙
𝒘𝑩𝒙
11-15Data Mining WS 2018/19
Support Vector Machines
Ziel ist es wieder die Daten mit Label “+1” von den Daten mit Label “-1” durch
eine Hyperebene (z.B. Linie im 2-dim. Raum) zu trennen
+
++
+
+ + --
-
-
--
-
Welche Hyperebene ist die beste?
11-16Data Mining WS 2018/19
+ +
+
+
+
+
+
+
+
-
--
-
--
-
-
-
A
B
C
Größter Abstand
• Die Distanz zwischen Punkt
und Hyperebene kann als
„Konfidenz“ der Vorhersage
interpretiert werden
• Beispiel: über die Zuordnung
der neuen Punkte A und B
zu “+1” ist man sich sicherer
als eine Zuordnung des
Punktes C zu “+1”
11-17Data Mining WS 2018/19
Größter Abstand
• Rand 𝜸: Abstand zwischen Daten und Hyperebene
• Ziel ist es diesen Rand zu maximieren
𝜸
11-18Data Mining WS 2018/19
Support Vector Machines
• Trennende Hyperebene wird
über Support Vectors definiert
– Punkte des Datensatzes mit dem
Abstand 𝛾 von der Hyperebene
– Im Allgemeinen gibt es, im d-dim.
Raum, d+1 Support Vectors
• Ziel: Suche nach Parametern
𝒘 = 𝑤1, … , 𝑤𝑛 und 𝑏 mit
minimalen 𝒘 = 𝒘 ∙ 𝒘, so dass,
für alle Daten (𝒙,𝑦), gilt:
𝑦 𝒘 ∙ 𝒙 + 𝑏 ≥ 1
𝜸
11-19Data Mining WS 2018/19
Support Vector Machines
• Minimiere |𝒘| = 𝒘 ∙ 𝒘, so dass
𝑦 𝒘 ∙ 𝒙 + 𝑏 ≥ 1
• Für alle Punkte 𝒙𝟎 auf Hyperebene
gilt:
𝒘 ∙ 𝒙0 + 𝑏 = 0
• Und:
𝒘 ∙ 𝒙0 + 𝑏 = 𝒘 𝒗 + 𝑏
• Also: 𝒘 𝒗 = −𝑏
𝒙𝟎
𝒗
11-20Data Mining WS 2018/19
Support Vector Machines
• Minimiere |𝒘| = 𝒘 ∙ 𝒘, so dass
𝑦 𝒘 ∙ 𝒙 + 𝑏 ≥ 1
• Für 𝒙𝟏 gilt: 𝒘 ∙ 𝒙1 + 𝑏 = 1 und
𝒘 ∙ 𝒙1 + 𝑏 = 𝒘 𝒗′ + 𝑏
= 𝒘 |𝒗| + 𝛾 + 𝑏
= 𝒘 𝒗 + 𝒘 𝛾 + 𝑏
= (−𝑏 + 𝒘 𝛾 + 𝑏)
• Also: 𝒘 𝛾 = 1 bzw. 𝛾 =1
|𝒘|
𝒙𝟏
𝒗𝒗′
𝜸
𝒙𝟎
Rand 𝛾 ist maximal, wenn |𝒘| minimal
11-21Data Mining WS 2018/19
Untrennbare Daten
• Falls Daten nicht linear trennbar, Einführung einer Bestrafung für falsche
Zuordnungen:
min𝒘
𝟏
𝟐𝒘 𝟐 + 𝑪 ∙ (# 𝐟𝐚𝐥𝐬𝐜𝐡𝐞 𝐙𝐮𝐨𝐫𝐝𝐧𝐮𝐧𝐠𝐞𝐧)
• Optimaler Wert für den Parameter C
kann über Testdaten ermittelt werden
– 𝑪 groß: wichtig ist die Trennung der
Daten (soweit möglich)
– 𝑪 klein: wichtig ist ein großer Rand
++
++
+
+
-
-
-
-
--
-
+-
-
𝑪 groß
𝑪 klein
11-22Data Mining WS 2018/19
Untrennbare Daten
• Nicht alle falschen Zuordnungen sind
gleich wichtig
• Bestrafung 𝜉𝑖
min𝒘
𝟏
𝟐𝒘 𝟐 + 𝑪 ∙
𝑖
𝜉𝑖
• Hinge Loss für Datenpunkt (𝒙𝑖 , 𝑦𝑖) :
𝜉𝑖 ≔ max 0,1 − 𝑦𝑖(𝒘 ∙ 𝒙𝒊 + 𝑏 )
++
+
+
+
++ -
-
---
+
j
- i
-1 0 1
𝜉𝑖
𝑦𝑖(𝒘 ∙ 𝒙𝑖 + 𝑏)
11-23Data Mining WS 2018/19
Schätzung der Parameter
• Minimiere:
𝑓 𝑤, 𝑏 =1
2𝒘 2 + 𝐶 ∙
𝑖
𝑚𝑎𝑥(0,1 − 𝑦𝑖 (𝑤 ∙ 𝑥𝑖 + 𝑏))
• Für große Datensätze: (Stochastic) Gradient Descent
• Gradient:
𝛻𝑓𝑗 =𝜕𝑓(𝑤, 𝑏)
𝑤𝑗= 𝑤𝑗 + 𝐶
𝑖
𝐿𝑖𝑗
mit 𝐿𝑖𝑗 = ቊ0 , falls 𝑦𝑖(𝑤𝑥 + 𝑏) ≥ 1
−𝑦𝑖𝑥𝑖𝑗 , sonst
11-24Data Mining WS 2018/19
Inhaltsverzeichnis
• k-Nearest Neighbors
• Support Vector Machines
• Decision Trees
11-25Data Mining WS 2018/19
Decision Trees
• 𝑑 Features/Attribute: 𝑥1, 𝑥2, … , 𝑥𝑑 mit Domänen 𝑂1, 𝑂2, … , 𝑂𝑑– Kategorien, z.B. 𝑂𝑗 = {𝑟𝑒𝑑, 𝑏𝑙𝑢𝑒}
– Numerisch, z.B. 𝑂𝑗 = (0, 10)
• Kategoriale Variable 𝑌 mit
Domäne 𝑂𝑌• Daten: 𝑛 Einträge (𝒙, 𝒚) wobei
𝒙 ein 𝑑-dimensionaler Vektor
• Aufgabe: Vorhersage von 𝒚für ein gegebenes 𝒙
• Decision Tree: Vorhersage über
eine Baumstruktur
– Aufspaltung der Daten an jedem
inneren Knoten
– Vorhersage von Y an Blattknoten
A
𝒙𝟐 < 𝒗
C
D E
F H I
Y = 4
𝒙𝟏{𝒂, 𝒃, 𝒅}
Y = 1
𝒙𝟑 < 𝒘 𝒙𝟒 > 𝒖
11-26Data Mining WS 2018/19
Erstellen eines Decision Tree
• Trainingsdaten 𝐷∗ mit
𝑛 = 100
• Sei 𝐷𝑖 die Daten, die
Knoten 𝑖 erreichen
• Entscheidung:
– Blattknoten oder
– Fortfahren
• Falls Blattknoten: Nimm
häufigsten Wert als
Vorhersage
• Falls Fortfahren
– Auswahl eines Attributs
– Auswahl einer
Entscheidung (z.B.
Schwellenwert)
A
𝒙𝟐 < 𝒗
C
D E
F H I
Y = 4
𝒙𝟏{𝒂, 𝒃, 𝒅}
Y = 1
𝒙𝟑 < 𝒘 𝒙𝟒 > 𝒖
|𝐷𝐵| = 10 |𝐷𝐶| = 90
|𝐷𝐸| = 45
|𝐷𝐻| = 30|𝐷𝐹| = 20
11-27Data Mining WS 2018/19
Beste Aufteilung eines Knotens
• Auswahl eines Attributs und einer Entscheidung (z.B. Schwellenwert)
• Entropie: Maß für den mittleren Informationsgehalt
𝑯 𝑌 = −
𝑦∈𝑂𝑌
𝑝𝑦 log2 𝑝𝑦
• Der Wert 𝑝𝑦 gibt die Wahrscheinlichkeit der Ausprägung 𝑌 = 𝑦
• Hohe Entropie: gleichverteiltes Y
• Niedrige Entropie ungleiche Verteilung über 𝑂𝑌
Niedrige Entropie Hohe Entropie
11-28Data Mining WS 2018/19
Entropie: Beispiel
• 𝑿: Abschluss
• 𝒀: mag den Film “Casablanca”
• Schätzen der Wahrscheinlichkeiten
über relative Häufigkeiten
– 𝑃 𝑌 = 𝐽𝑎 =3
8, 𝑃 𝑌 = 𝑁𝑒𝑖𝑛 =
5
8
– 𝑃 𝑌 = 𝐽𝑎|𝑋 = 𝑀𝑎𝑡ℎ𝑒 =1
4
– 𝑃 𝑌 = 𝑁𝑒𝑖𝑛|𝑋 = 𝑀𝑎𝑡ℎ𝑒 =3
4
• Entropie:
𝐻 𝑌 = −3
8log2
3
8−5
8log2
5
8≈ 0.95
• Spezifische bedingte Entropie:
𝐻 𝑌 𝑋 = 𝑀𝑎𝑡ℎ𝑒 = −1
4log
1
4−3
4log
3
4≈ 0.81
X Y
Mathe Ja
Geschichte Nein
Informatik Ja
Mathe Nein
Mathe Nein
Informatik Ja
Mathe Nein
Geschichte Nein
11-29Data Mining WS 2018/19
Entropie: Beispiel
• Bedingte Entropie:
𝐻 𝑌 𝑋 =
𝑥∈𝑂𝑋
𝑃 𝑋 = 𝑥 𝐻(𝑌|𝑋 = 𝑥)
𝐻 𝑌 𝑋 =1
2∙ 0.81 +
1
4∙ 0 +
1
4∙ 0 = 0.4
• Ziel: Auswahl des Attributs X mit niedrigstem 𝐻(𝑌|𝑋)
X Y
Mathe Ja
Geschichte Nein
Informatik Ja
Mathe Nein
Mathe Nein
Informatik Ja
Mathe Nein
Geschichte Nein
𝑥 𝑃(𝑋 = 𝒙) 𝐻(𝑌|𝑋 = 𝒙)
Mathe 1
2
0.81
Geschichte 1
4
0
Informatik 1
4
0
11-30Data Mining WS 2018/19
Beste Aufteilung eines Knotens
• Anschließend
– X ist numerisch: Auswahl des Schwellenwertes
– X ist kategorisch: Auswahl von Kategorien
• Beispiel:
– Aufteilung: 𝑋 = 𝑀𝑎𝑡ℎ𝑒 vs. 𝑋 ≠ 𝑀𝑎𝑡ℎ𝑒
• 𝐻(𝑌|𝑋 = 𝑀𝑎𝑡ℎ𝑒) = 0.81 und 𝐻(𝑌|𝑋 ≠ 𝑀𝑎𝑡ℎ𝑒) = 1
• Spezifische bedingte Entropie gewichtet nach der Anzahl der Einträge pro Kindsknoten: 1
2∙ 𝐻(𝑌│𝑋 = 𝑀𝑎𝑡ℎ𝑒) +
1
2𝐻(𝑌|𝑋 ≠ 𝑀𝑎𝑡ℎ𝑒) = 0.9
– Aufteilung: 𝑿 = 𝑰𝒏𝒇𝒐𝒓𝒎𝒂𝒕𝒊𝒌 vs. 𝑿 ≠ 𝑰𝒏𝒇𝒐𝒓𝒎𝒂𝒕𝒊𝒌
• 𝐻 𝑌|𝑋 = 𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑘 = 0 und 𝐻 𝑌|𝑋 ≠ 𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑘 = 0.65
•1
4∙ 𝐻 𝑌 𝑋 = 𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑘 +
3
4𝐻 𝑌|𝑋 ≠ 𝐼𝑛𝑓𝑜𝑟𝑚𝑎𝑡𝑖𝑘 = 𝟎. 𝟒𝟖
– Aufteilung: 𝑋 = 𝐺𝑒𝑠𝑐ℎ𝑖𝑐ℎ𝑡𝑒 vs. 𝑋 ≠ 𝐺𝑒𝑠𝑐ℎ𝑖𝑐ℎ𝑡𝑒
• 𝐻 𝑌|𝑋 = 𝐺𝑒𝑠𝑐ℎ𝑖𝑐ℎ𝑡𝑒 = 0 und 𝐻 𝑌|𝑋 ≠ 𝐺𝑒𝑠𝑐ℎ𝑖𝑐ℎ𝑡𝑒 = 1
•1
4∙ 𝐻 𝑌 𝑋 = 𝐺𝑒𝑠𝑐ℎ𝑖𝑐ℎ𝑡𝑒 +
3
4𝐻 𝑌|𝑋 ≠ 𝐺𝑒𝑠𝑐ℎ𝑖𝑐ℎ𝑡𝑒 =
3
4
A
C
D F
Y = 4
𝒙𝟐 < 𝒗
𝒙𝟏{𝑴𝒂𝒕𝒉𝒆}
11-31Data Mining WS 2018/19
Decision Trees
• DTs sind leicht zu verstehen, implementieren und interpretieren
• Parallelisierbar:
– B. Panda, J. S. Herbach, S. Basu, and R. J. Bayardo. PLANET: Massively parallel
learning of tree ensembles with MapReduce. In Proc. VLDB 2009.
– J. Ye, J.-H. Chow, J. Chen, Z. Zheng. Stochastic Gradient Boosted Distributed
Decision Trees. In Proc. CIKM 2009.
• Sowohl für kategoriale als auch metrische Ergebnisvariable Y geeignet
• Problem: Overfitting (Überanpassung des Modells an die Daten)
– Overfitting bei zu vielen Ebenen
– Doch bei wenigen Ebenen können nur wenig Attribute verwendet werden und die
Vorhersagegenauigkeit ist oft gering
11-32Data Mining WS 2018/19
Bagging Decision Trees
• Ausweg: Kombination mehrerer Decision Trees geringer Tiefe
• Über z.B. Bagging
– Ziehen mehrerer Zufallsstichproben aus den Daten (mit Zurücklegen)
– Ein Decision Tree pro Stichprobe
– Mittelwert/häufigster Wert über alle Decision Trees ergibt Vorhersage
• Random Forest:
Zusätzlich zum Bagging
wird beim Lernen der
Trees an jedem Knoten
nur eine kleine (zufällige)
Auswahl der Attribute
betrachtet
11-33Data Mining WS 2018/19
Vergleich
Support Vector Machines Decision Trees
Klassifikation: gewöhnlich 2 Klassen
(erweiterbar auf mehrere Klassen)
Regression & Klassifikation (mehrere
(~10) Klassen)
Attribute sind numerisch Attribute sind numerisch oder
kategorial
Mehrere tausende, spärlich besetzte
Attribute
Wenige, dicht besetzte Attribute
Schwer interpretierbar Gut interpretierbar
Beispiele:
• Textklassifikation (Genre,
Sentiment Analysis, Spamfilter)
• Gesichtserkennung
Beispiele:
• Kundenklassifikation
(Segmentierung)
• Operations Research
(Entscheidungen in Unternehmen)
11-34Data Mining WS 2018/19
Referenzen, Beispiele, Übungen
Kapitel 12 aus „Mining of Massive Datasets“:
http://www.mmds.org/
11-35Data Mining WS 2018/19
Klausurthemen
• MapReduce
• LSH & Min-Hashing
• Data Streams
– DGIM
– Bloom Filter
– Flajolet-Martin-Algorithmus
• PageRank
– Probleme
– Effiziente Berechnung
• Frequent Itemsets
– A-Priori
– PCY
• Clustering:
– Hierarchisch
– K-Means
• Recommendation Systems
– Inhaltsbasiert
– Collaborative Filtering
• Social Network Graphs
– Girvan-Newman
– Spectral Clustering
– AGM
• Singular Value Decomposition