Clustering - Gruppieren von Datenpunkten

35
1 Clustering Gruppieren von Datenpunkten Programmiererversion Nicco Kunzmann nicco @gmail.com Jugend Hackt 2014 kunzmann

description

Wie Gruppiere ich meine Daten? Wie finde ich heraus, welche Personen, Sensorwerte, Koordinaten zusammen gehören? Dieser Vortrag behandelt vier einfache Algorithmen, die darauf Antwort geben. Im Rahmen von Jugend Hackt http://jugendhackt.de/ .

Transcript of Clustering - Gruppieren von Datenpunkten

Page 1: Clustering - Gruppieren von Datenpunkten

1

Clustering

Gruppieren von DatenpunktenProgrammiererversion

Nicco Kunzmann nicco @gmail.comJugend Hackt 2014

kunzmann

Page 2: Clustering - Gruppieren von Datenpunkten

2

Clustering

Gruppieren von DatenpunktenProgrammiererversion

Nicco Kunzmann nicco @gmail.comJugend Hackt 2014

kunzmann

Page 3: Clustering - Gruppieren von Datenpunkten

3

Clustering

Gruppieren von DatenpunktenProgrammiererversion

Nicco Kunzmann nicco @gmail.comJugend Hackt 2014

kunzmann

Page 4: Clustering - Gruppieren von Datenpunkten

4

● Datamining

– Unsupervised Learning● Clustering

● Statistik● Information Retrieval (Film: „Brazil“)

Page 5: Clustering - Gruppieren von Datenpunkten

5

Daten

Name Alter vegetarier Geschwister

Benni 12.4 ja 1

Horst 14.2 nein 0

Irmel 16.0 nein 5

Lichtintensität

1

2

12

3

21

21

2

31

66

21

3

12

1

3

1

3

21

3

21

11

23

21

38

21

113

4 Features

Page 6: Clustering - Gruppieren von Datenpunkten

6

Abstand

Wer gehört zusammen?

Page 7: Clustering - Gruppieren von Datenpunkten

7

Abstand

Page 8: Clustering - Gruppieren von Datenpunkten

8

Abstand

25

3

2

?

1 0

Was ist sinnvoll?

Page 9: Clustering - Gruppieren von Datenpunkten

9

Abstand

Euklidischer Abstand

Page 10: Clustering - Gruppieren von Datenpunkten

10

Abstand

Manhattan

Page 11: Clustering - Gruppieren von Datenpunkten

11

Abstand

Manhattan

Stellt euch an dieser Stelle ein 10-Dimensionales Bild vor.

A ja ja ja ja X ja ja ja ja ja

B X ja ja ja X ja X ja X ja

C X X X X X X X X X X

Page 12: Clustering - Gruppieren von Datenpunkten

12

Abstand

Maximum

Page 13: Clustering - Gruppieren von Datenpunkten

13

Abstand

Cosinus

Page 14: Clustering - Gruppieren von Datenpunkten

14

Abstand

Es gibt auch noch - Pearson correlation für Lineare Abhängigkeit- Jaccard similarity für Mengen (Buchstaben)

Page 15: Clustering - Gruppieren von Datenpunkten

15

Algorithmen

● Single Link● Complete Link● K-Means● Mean Shift● Connected Components● Gaussian Mixture Model● DB-Scan

Page 16: Clustering - Gruppieren von Datenpunkten

16

Single Link & Complete Link

➢ Jeder Punkt in einen neuen Cluster➢ Bis es wenig Cluster gibt, tue:

➢ Finde die beiden Cluster mit min. dist(c1, c2)➢ Erzeuge einen neuen Cluster aus c1 + c2

Single Link: dist(c1, c2) = min({dist(x1, x2) | x1 c1, x2 c2})∈ ∈Complete Link:dist(c1, c2) = max({dist(x1, x2) | x1 c1, x2 c2})∈ ∈

Page 17: Clustering - Gruppieren von Datenpunkten

17

Single Link & Complete Link

Page 18: Clustering - Gruppieren von Datenpunkten

18

Single Link

Page 19: Clustering - Gruppieren von Datenpunkten

19

Complete Link

Page 20: Clustering - Gruppieren von Datenpunkten

20

Complete Link & Single Link

Problem: Ich will 2 Cluster

Page 21: Clustering - Gruppieren von Datenpunkten

21

K-Means

Page 22: Clustering - Gruppieren von Datenpunkten

22

K-Means

Page 23: Clustering - Gruppieren von Datenpunkten

23

K-Means

Page 24: Clustering - Gruppieren von Datenpunkten

24

K-Means

Page 25: Clustering - Gruppieren von Datenpunkten

25

K-Means

Page 26: Clustering - Gruppieren von Datenpunkten

26

K-Means

➢ Platziere eine Anzahl an Mittelpunkten zufällig➢ Bis sich nichts ändert, tue:

➢ Erzeuge für jeden Mittelpunkt einen leeren Cluster

➢ Füge die Punkte in den Cluster vom nächstliegendsten Mittelpunkt

➢ Bilde die Mittelpunkte aus den Clustern

Page 27: Clustering - Gruppieren von Datenpunkten

27

K-Means

● Probleme

Page 28: Clustering - Gruppieren von Datenpunkten

28

Mean-Shift

Row 1 Row 2 Row 3 Row 40

2

4

6

8

10

12

Column 1

Column 2

Column 3

Page 29: Clustering - Gruppieren von Datenpunkten

29

Mean-Shift

für Maxima & Minima

Page 30: Clustering - Gruppieren von Datenpunkten

30

Mean-Shift

➢ Verteile zufällig Punkte➢ Solange sich was ändert, tue:

➢ Für jeden Mittelpunkt p, tue:➢ p := Durchschnitt aus allen Daten nahe p

Gewichteter Durchschnitt für Normalverteilte Daten

Page 31: Clustering - Gruppieren von Datenpunkten

31

Mean-Shift

● Probleme

Page 32: Clustering - Gruppieren von Datenpunkten

32

Algorithmen

● Single Link● Complete Link● K-Means● Mean Shift● Connected Components (für Bilder)● Gaussian Mixture Model (besseres K-Means)● DB-Scan

Page 33: Clustering - Gruppieren von Datenpunkten

33

Featureanpassung

Beispiel: Lichtsensorwerte:

– Weiß: 1-6– Grau: 7-100– Schwarz: 101 - 10000

Feature := log(Lichtsensorwert)

Daten anpassen, da Algorithmen doofe Annahmen treffen.

Page 34: Clustering - Gruppieren von Datenpunkten

34

Implementieren

● Implementierung := Algorithmus + Featureauswahl + Featureanpassung + Abstandsfunktion + Leere Cluster behandeln

Page 35: Clustering - Gruppieren von Datenpunkten

35

Quellen

● Vorlesung Datamining 2013/14 am HPI– I. H. Witten, E. Frank, M. A. Hall: Data Mining - Practical

Machine Learning Tools and Techniques (Chapters 1 – 6)

– C. Bishop: Pattern Recognition and Machine Learning (Chapters 1 – 4, 8, 9)

– T. M. Mitchell: Machine Learning (Chapters 3 – 6, 8, 10)

– P. Flach: Machine Learning – The Art and Science of Algorithms that make Sense of Data (Chapters 1 – 3, 5 – 11)

– D. J. C. MacKay: Information Theory, Inference and Learning Algorithms (Chapters 1 – 6)