Skip to content
This repository was archived by the owner on Oct 23, 2022. It is now read-only.

Commit 40936fa

Browse files
committed
Finished chapter 6 for now
added comments on different Parts
1 parent a74137f commit 40936fa

File tree

7 files changed

+130
-96
lines changed

7 files changed

+130
-96
lines changed

TODO.md

Lines changed: 34 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,16 @@
22

33
## Thesis
44

5-
- [ ] Kapitel 1 – Einleitung
6-
- [x] ausformulieren
7-
- [ ] Gegenlesen lassen
8-
- [ ] Robert
9-
- [x] Rossak
10-
- [x] Mama
11-
- [ ] Kapitel 2 – Clusteranalyse
12-
- [x] ausformulieren
13-
- [x] Begriff und Definition
14-
- [x] Notation
15-
- [x] Distanz- und Ähnlichkeitsmaße
16-
- [x] Clustering-Verfahren
17-
- [x] Quellen zu Agglomerative nachschauen
18-
- [x] schreiben
19-
- [x] Evaluation
20-
- [ ] Gegenlesen lassen
21-
- [ ] Rossak
22-
- [ ] Mama => nur noch Distanz- und Ähnlichkeitsmaße & Clustering-Verfahren
23-
- [ ] Kapitel 3 – Konzeption
5+
- [x] Kapitel 1 – Einleitung
6+
- [x] Kapitel 2 – Clusteranalyse
7+
- [x] Begriff und Definition
8+
- [x] Notation
9+
- [x] Distanz- und Ähnlichkeitsmaße
10+
- [x] Clustering-Verfahren
11+
- [x] Quellen zu Agglomerative nachschauen
12+
- [x] schreiben
13+
- [x] Evaluation
14+
- [x] Kapitel 3 – Konzeption
2415
- [x] Architektur-Überblick geben und einbauen
2516
- [x] mehr Informationen zu Icecat – warum verwenden wir es?
2617
- [x] ausformulieren
@@ -33,35 +24,23 @@
3324
- [x] Kriterien
3425
- [x] Aspekte
3526
- [x] Vorgehen
36-
- [ ] Gegenlesen lassen
37-
- [ ] Rossak
38-
- [ ] Mama => Überblick nochmal
39-
- [ ] Kapitel 4 – Implementierung
27+
- [x] Kapitel 4 – Implementierung
4028
- [x] Stichpunkte sammeln
4129
- [x] Stichpunkte gegenprüfen
4230
- [x] ausformulieren
4331
- [x] Überblick
4432
- [x] Datenset
4533
- [x] Clustering
4634
- [x] Evaluation
47-
- [ ] Gegenlesen lassen
48-
- [ ] Rossak
49-
- [ ] Mama
50-
- [ ] Kapitel 5 – Auswertung
35+
- [x] Kapitel 5 – Auswertung
5136
- [x] genaue Kapitelstruktur
5237
- [x] ausformulieren
5338
- [x] Datenset "Hüllen"
5439
- [x] Datenset "Phones"
5540
- [x] Datenset beide
56-
- [ ] Gegenlesen lassen
57-
- [ ] Rossak
58-
- [ ] Mama
59-
- [ ] Kapitel 6 – Fazit & Ausblick
60-
- [ ] Stichpunkte sammeln
61-
- [ ] ausformulieren
62-
- [ ] Gegenlesen lassen
63-
- [ ] Rossak
64-
- [ ] Mama
41+
- [x] Kapitel 6 – Fazit & Ausblick
42+
- [x] Stichpunkte sammeln
43+
- [x] ausformulieren
6544
- [ ] Anhang: Link zu Git und kurzer Überblick
6645
- [ ] Abstract
6746
- [ ] de
@@ -71,6 +50,24 @@
7150
- [x] Ränder bei Hausen-Vorlage abgleichen
7251
- [x] Autoren per Filter zählen und soa anpassen
7352
- [-] Listings-Verzeichnis
53+
- [ ] Gegenlesen
54+
- [ ] Ich
55+
- [ ] Mama
56+
- [ ] Kap 2: nur noch Distanz- und Ähnlichkeitsmaße & Clustering-Verfahren
57+
- [ ] Kap 3: Überblick nochmal
58+
- [ ] Kap 4
59+
- [ ] Kap 5
60+
- [ ] Kap 6
61+
- [ ] Rossak
62+
- [ ] Robert Queck
63+
- [ ] Sonstige:
64+
- [ ] alle Referenzen auf das Repo checken
65+
- [ ] Überarbeitungen:
66+
- [ ] Kap 1: Formulierungen
67+
- [ ] Kap 2: Nominale und Strings
68+
- [ ] Kap 3: Formulierungen + binäre Attribute Geschichte
69+
- [ ] Kap 5: nochmal durchgehen, Kommentare beachten, Zusammenfassung?
70+
- [ ] Kap 6: nochmal durchgehen
7471

7572
## Implementierung
7673

@@ -84,7 +81,7 @@
8481
- [x] Reports erstellen HTML
8582
- [ ] Reports erstellen PDF
8683
- [ ] README für `cluster-analysis`
87-
- [ ] `data` aufräumen und alle Referenzen auf das Repo im Text checken
84+
- [x] `data` aufräumen
8885

8986
## Sonstiges
9087

thesis/2-grundlagen.md

Lines changed: 49 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,6 @@
44

55
King definiert die *Clusteranalyse* als die "[...] Generierung eines Klassifizierungsschemas, welches Individuen in eine feste Anzahl an Gruppen einteilt, so dass sich die Individuen innerhalb einer Gruppe auf eine Art und Weise ähnlich sind und unähnlich denen in anderen Gruppen" [@king2015, Kap. 1.1 What Is a Cluster?]. Diese Gruppen werden auch als Cluster bezeichnet.
66

7-
Dieser Prozess des Clusterings ist eine Methode des *unüberwachten Lernens (unsupervised learning)* – einem Teilgebiet des maschinellen Lernens. Papp et al. schreiben dazu: "Machine Learning beschäftigt sich mit der Entwicklung von Methoden, die Modelle von Zusammenhängen aus Daten erlernen, anstatt sie *per Hand* zu implementieren" [@papp2019, Kap. 5 Statistik-Grundlagen]. Ferner geben sie an, dass die Unterschiede zur Statistik fließend sind [@papp2019, Kap. 5 Statistik-Grundlagen]. Unüberwachtes Lernen bedeutet dabei, dass die verwendeten Daten nicht im Vorhinein gekennzeichnet sind (Unlabeled Data). Stattdessen werden Ähnlichkeiten und Muster in den Daten selbst gesucht ohne eine vorgegebene Zielgröße. Häufig dienen diese Analysen als erste Schritte der *Data Exploration*, aus denen im Anschluss neue Erkenntnisse und Anwendungen abgeleitet werden. [@papp2019, Kap. 5.2.3 Unüberwachtes Lernen]
8-
9-
Allgemein wird die Clusteranalyse als eine Form des Data Minings gesehen. Laut Bissantz und Hagedorn "beschreibt [Data Mining] die Extraktion implizit vorhandenen, nicht trivialen und nützlichen Wissens aus großen, dynamischen, relativ komplex strukturierten Datenbeständen" [@bissantz2009]. Mit "Wissen" meinen sie dabei in den Daten implizit enthaltene Muster, welche für den Anwender interessant sind und mit einer hinreichenden Wahrscheinlichkeit tatsächlich in den Daten existieren. [@bissantz2009]
10-
11-
## Notation
12-
13-
Bevor konkrete Algorithmen und Verfahren der Clusteranalyse vorgestellt werden, müssen einige grundlegende Sachverhalte und ihre mathematische Definition geklärt werden:
14-
157
Die Objekte, welche es zu clustern gilt, werden in dieser Arbeit auch als *Datenpunkte* oder *Produkte* (da dies die Anwendung im Praxisteil ist) bezeichnet. Mathematisch werden sie i.d.R. mittels $x$ definiert. Diese Produkte bestehen aus einer festen Menge an Attributen (z.B. Farbe, Gewicht etc.). Mathematisch ist so ein Datenpunkt als ein Vektor definiert und jedes Element im Vektor steht für die Ausprägung eines spezifischen Attributes. Mittels Superskript werden spezifische Attribute eines Datenpunktes angesprochen. $x^i$ bezeichnet also das $i$-te Attribut von $x$.
168

179
\begin{equation}
@@ -34,6 +26,8 @@ Schlussendlich gibt es noch das *Clustering-Ergebnis* $Y$. Dies ist ein Vektor d
3426
Y = (l | l_i = \text{ label for } x_i \in X)
3527
\end{equation}
3628

29+
Dieser Prozess des Clusterings ist eine Methode des *unüberwachten Lernens (unsupervised learning)* – einem Teilgebiet des maschinellen Lernens. Papp et al. schreiben dazu: "Machine Learning beschäftigt sich mit der Entwicklung von Methoden, die Modelle von Zusammenhängen aus Daten erlernen, anstatt sie *per Hand* zu implementieren" [@papp2019, Kap. 5 Statistik-Grundlagen]. Unüberwachtes Lernen bedeutet dabei, dass die verwendeten Daten nicht im Vorhinein gekennzeichnet sind (Unlabeled Data). Stattdessen werden Ähnlichkeiten und Muster in den Daten selbst gesucht ohne eine vorgegebene Zielgröße. Häufig dienen diese Analysen als erste Schritte der *Data Exploration*, aus denen im Anschluss neue Erkenntnisse und Anwendungen abgeleitet werden. [@papp2019, Kap. 5.2.3 Unüberwachtes Lernen]
30+
3731
## Distanz- und Ähnlichkeitsmaße
3832

3933
### Definition
@@ -42,6 +36,8 @@ Die Forderung, dass Objekte in gleichen Clustern sich "ähnlich" sein sollen und
4236

4337
Mathematisch wird dieses Distanzmaß mittels der Funktion $d(x_1,x_2)$ (engl. distance) definiert, welche die Distanz zwischen zwei Datenpunkten $x_1$ und $x_2$ als skalaren Wert zurückgibt. Zusätzlich geben Kaufmann und Rousseeuw folgende Eigenschaften für $d$ an [@kaufman2009, Kap. 1.2.1 Interval-Scaled Variables]:
4438

39+
TODO: Grafik einfügen, welche DIstanzen verdeutlicht
40+
4541
||||
4642
|-|--------|----------|
4743
| 1. | $d(x_1,x_2) \geq 0$ | Distanzen sind stets positiv |
@@ -146,20 +142,47 @@ $|\{x \in X^i\}|$ ist dabei die Menge an auftretenden Labels. Dadurch liegen all
146142

147143
#### Nominale Attribute
148144

149-
Die Verarbeitung von nominalen Attributen geschieht über die vorherige Umwandlung in sog. binäre Attribute. Diese Attribute sind dadurch gekennzeichnet, dass sie nur zwei verschiedene Werte annehmen können (i.d.R. $0$/$1$ bzw. $false$/$true$) [@kaufman2009, Kap. 1.2.5 Nominal, Ordinal, and Ratio Variables]. Hier gilt es zwei Fälle zu unterscheiden:
145+
TODO: Abschnitt überarbeiten!
146+
147+
Die Verarbeitung von nominalen Attributen kann wieder über verschiedene Ansätze geschehen.
148+
149+
Eine Möglichkeit ist, die auftretenden Labels in eine künstliche Reihenfolge zu bringen. Dadurch entsprechen sie ordinalen Attributen, welche wie beschrieben in numerische Werte umgewandelt werden können. Die Berechnung des Abstands kann dann mit entsprechenden Distanzmaßen für numerische Attribute erfolgen. [@kaufman2009, Kap. 1.2.5 Nominal, Ordinal, and Ratio Variables]
150+
151+
Eine andere Möglichkeit ist die Codierung als sog. binäre Attribute. Diese sind dadurch gekennzeichnet, dass sie nur zwei verschiedene Werte annehmen können (i.d.R. $0$/$1$) [@kaufman2009, Kap. 1.2.5 Nominal, Ordinal, and Ratio Variables]. Hier gilt es zwei Fälle zu unterscheiden:
150152

151153
Kommen in den Labels eines Attributs maximal zwei verschiedene Werte vor (z.B. Ja/Nein, schwarz/weiß etc.), so werden diese in ein einzelnes binäres Attribut umgewandelt. Solche Attribute werden auch als *symmetrische* binäre Attribute bezeichnet. [@kaufman2009, Kap. 1.2.4 Binary Variables]
152154

153155
Bei mehr als zwei Wertausprägungen gibt es hingegen wiederum zwei Möglichkeiten:
154156

155-
- Zum einen können die vorkommenden Labels auf genau zwei verschiedene Wertausprägungen komprimiert werden, sodass wieder ein einzelnes binäres Attribut verwendet werden kann. Dieser Vorgang geht aber mit einem Informationsverlust einher. [@kaufman2009, Kap. 1.2.5 Nominal, Ordinal, and Ratio Variables]
156-
- Zum anderen kann für jedes vorkommende Label ein eigenes binäres Attribut angelegt werden. Das Attribut, welches das tatsächlich vorkommende Label eines Datenpunktes repräsentiert, wird entsprechend auf $true$ gesetzt und alle anderen auf $false$. Diese Umwandlung resultiert in sog. *asymmetrische* binäre Attribute. [@kaufman2009, Kap. 1.2.4 Binary Variables]
157+
- Zum einen können die vorkommenden Labels auf genau zwei verschiedene Wertausprägungen komprimiert werden, sodass wieder ein einzelnes binäres Attribut entsteht. Dieser Vorgang geht aber mit einem Informationsverlust einher. [@kaufman2009, Kap. 1.2.5 Nominal, Ordinal, and Ratio Variables]
158+
- Zum anderen kann für jedes vorkommende Label ein eigenes binäres Attribut angelegt werden. Das Attribut, welches das tatsächlich vorkommende Label eines Datenpunktes repräsentiert, wird entsprechend auf $1$ gesetzt und alle anderen auf $0$. Diese Umwandlung resultiert in sog. *asymmetrische* binäre Attribute. [@kaufman2009, Kap. 1.2.4 Binary Variables]
157159

158-
Kennzeichnend für die symmetrischen binäre Attribute ist, dass beide Wertausprägung eine konkrete Eigenschaft des Objektes darstellen (z.B. $0=\text{schwarz}$ und $1=\text{weiß}$). Asymmetrische zeigen hingegen nur das Vorhanden- oder Nicht-Vorhandensein einer bestimmten Eigenschaft an und müssen stets im Kontext der gesamten Gruppe betrachtet werden. Für beide Arten gibt es jeweils eigene Distanzmaße. [@kaufman2009, Kap. 1.2.4 Binary Variables]
160+
Kennzeichnend für die symmetrischen binäre Attribute ist, dass beide Wertausprägung eine konkrete Eigenschaft des Objektes darstellen (z.B. $0=\text{schwarz}$ und $1=\text{weiß}$). Asymmetrische zeigen hingegen nur das Vorhanden- oder Nicht-Vorhandensein einer bestimmten Eigenschaft an und müssen stets im Kontext der gesamten Gruppe betrachtet werden. [@kaufman2009, Kap. 1.2.4 Binary Variables]
161+
162+
Diese binären Attribute sind grundsätzlich wieder numerische Werte und könnten entsprechend verarbeitet werden. Allerdings gibt es jeweils spezielle Distanzmaße, die explizit für den Vergleich solcher binärer Attribute geeignet sind. In der Praxis empfiehlt es sich daher auf diese Maße zurückzugreifen, da sie die speziellen Eigenschaften kategorischer Attribute besser berücksichtigen. Außerdem existieren zu diesen speziellen Distanzmaßen verkürzte Varianten, welche eine vorherige binäre Codierung schlussendlich wieder unnötig machen. [@kaufman2009, Kap. 1.2.5 Nominal, Ordinal, and Ratio Variables]
159163

160164
##### Simple Matching
161165

162-
Das sog. Simple Matching ist für die Bewertung der Ähnlichkeit von Objekten mit ausschließlich symmetrischen binären Attributen geeignet [@kaufman2009, Kap. 1.2.4 Binary Variables]. Es berechnet sich wie folgt:
166+
Beim sog. Simple Matching wird die Menge an Attributen, in denen zwei Datenpunkte den gleichen Wert aufweisen, durch die Gesamtzahl der Attribute geteilt. Wurden die Werte zuvor in binäre Attribute umgewandelt, so entspricht das Simple Matching dem Manhattan-Abstand geteilt durch die Anzahl an Attributen. Das kommt daher, dass die Differenz zwischen den Werten der Attribute ausschließlich $0$ oder $1$ betragen kann. [@kaufman2009, Kap. 1.2.4 Binary Variables]
167+
168+
\begin{equation}
169+
s(x_1,x_2) = \frac{1}{n} \sum_{i=1}^n |x_1^i - x_2^i|
170+
\end{equation}
171+
172+
Das sog. Simple Matching ist für die Bewertung der Ähnlichkeit von Objekten mit ausschließlich symmetrischen binären Attributen geeignet. [@kaufman2009, Kap. 1.2.4 Binary Variables]
173+
174+
Formel überarbeiten => nochmal Quellen checken => Binary überhaupt nötig zu erwähnen?
175+
z.B. Huang =>
176+
\begin{align}
177+
s(x_1,x_2) &= \sum_i s'(x_1^i,x_2^i)
178+
s'(x_1^i,x_2^i) = \begin{case}
179+
180+
\end{case}
181+
\end{align}
182+
183+
=> 2 Formen: eine kompliziert mit Summen, eine einfach dargestellt
184+
185+
163186

164187
\begin{equation}
165188
s(x_1,x_2) = \frac{|x_1 \cap x_2| + |\bar{x_1} \cap \bar{x_2}|}{|x_1 \cup \bar{x_1} \cup x_2 \cup \bar{x_2}|}
@@ -183,7 +206,17 @@ Im Gegensatz zum Simple Matching werden hier alle Attribute, in denen beide Obje
183206

184207
### String-Attribute
185208

186-
Manche Autoren (z.B. [@rajalingam2011]) definieren eine weitere Gruppe sog. String-Attribute. Streng genommen sind dies ebenfalls nominale bzw. kategorische Attribute. Sie zeichnen sich aber durch eine hohe Variation an Werten aus, sodass häufig keine einzige Wertausprägung mehr als einmal vorkommt. Ein klassisches Beispiel wäre der Produkttitel. Es wird i.d.R. keine zwei Produkte mit dem gleichen Titel geben. Dies führt die Betrachtung dieser Attribute als "kategorisch" ad-absurdum, wenn jeder Datenpunkt seine eigene individuelle Kategorie definiert. Sollen diese Werte dennoch auf ihre Ähnlichkeit geprüft werden, so gibt es eine Reihe verschiedener Vorgehensweisen.
209+
TODO: das ist zu simpel, drei verschiedene Sorten Klopapier => alle drei heißen Toilettenpapier
210+
211+
Manche Autoren (z.B. [@rajalingam2011]) definieren eine weitere Gruppe sog. String-Attribute. Streng genommen sind dies ebenfalls nominale bzw. kategorische Attribute. Sie zeichnen sich aber durch eine hohe Variation an Werten aus, sodass häufig keine einzige Wertausprägung mehr als einmal vorkommt.
212+
213+
Ein klassisches Beispiel wäre der Produkttitel. Die meisten Produkte werden einen individuellen Titel aufweisen, damit sie direkt voneinander unterschieden werden können. Bspw. ist ein "Samsung Galaxy S20 128GB" sehr ähnlich zu einem "Samsung Galaxy S20 256GB". Da der Titel aber nicht exakt identisch ist, wird in der klassischen Verarbeitung als kategorische Attribute keine Ähnlichkeit zwischen diesen beiden Produkt festgestellt.
214+
215+
216+
sofort klar wird "Samsung Galaxy S20 128GB" , zum Beispiel das "Samsung Galaxy S20 128GB"
217+
218+
219+
Ein klassisches Beispiel wäre der Produkttitel. Es wird i.d.R. keine zwei Produkte mit dem gleichen Titel geben. Dies führt die Betrachtung dieser Attribute als "kategorisch" ad-absurdum, wenn jeder Datenpunkt seine eigene individuelle Kategorie definiert. Sollen diese Werte dennoch auf ihre Ähnlichkeit geprüft werden, so gibt es eine Reihe verschiedener Vorgehensweisen.
187220

188221
#### String-Metrics
189222

@@ -435,7 +468,6 @@ Um unabhängig von der Benennung der Labels zu werden, vergleicht man nicht wie
435468
|-|:-:|:-:|
436469
| Paar im gleichen Cluster | $a$ | $b$ |
437470
| Paar in anderem Cluster | $c$ | $d$ |
438-
439471
: Kontingenz der Datenpunkt-Paare in $Y$ und $Y'$ [@steinley2004]
440472

441473
Die Tabelle zeigt die möglichen Fälle: Ein Paar aus Datenpunkten kann entweder dem gleichen Cluster oder zwei unterschiedlichen Clustern zugeordnet worden sein. Haben sowohl $Y$ als auch $Y'$ das Paar jeweils in das gleiche Cluster (mit dem gleichen Label wie auch immer dieses benannt ist) zugordnet, so wird dieses Paar zu $a$ gezählt. Haben beide jeweils ein unterschiedliches Cluster zugeordnet, so wird das Paar in $d$ gezählt usw. [@steinley2004]
@@ -510,3 +542,5 @@ Die Ähnlichkeit zwischen den Clustern $K$ ($K$ steht hier für die Menge an gef
510542
Je kleiner der Wert des Indexes, desto enger liegen die Datenpunkte um ihren Cluster-Mittelpunkt im Verhältnis zum benachbarten Cluster. Möglichst niedrige Werte nahe der $0$ sind also als optimal anzusehen. [@davies1979]
511543

512544
Der große Vorteil von diesem Verfahren ist die geringere Laufzeit, da die Punkte der Cluster nur mit ihrem Mittelpunkt verrechnet werden. Nachteilig ist, dass die Be- und Verrechnung der Mittelpunkte primär nur für numerische Vektoren definiert ist. In den Versuchen von Rendón et al. [@rendon2011] schnitt dieser Index genauso gut ab wie der Silhouettenkoeffizient.
545+
546+
TODO: Abschließender Absatz, Für die Masterarbeit erscheinen als besonders geeignet, ... weil ...

0 commit comments

Comments
 (0)