From e5cb5ef2f4e49c80845be325b42322a138d85b02 Mon Sep 17 00:00:00 2001 From: paul-loedige Date: Wed, 27 Jan 2021 21:46:32 +0100 Subject: [PATCH] =?UTF-8?q?Basic=20elements=20of=20clustering=20hinzugef?= =?UTF-8?q?=C3=BCgt?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Content.tex | 1 + chapters/Unsupervised Learning/Clustering.tex | 87 ++++++++++++++++++ images/clustering_definition.png | Bin 0 -> 26766 bytes parts/Unsupervised Learning.tex | 3 + 4 files changed, 91 insertions(+) create mode 100644 chapters/Unsupervised Learning/Clustering.tex create mode 100644 images/clustering_definition.png create mode 100644 parts/Unsupervised Learning.tex diff --git a/Content.tex b/Content.tex index fa74256..2c7f3ca 100644 --- a/Content.tex +++ b/Content.tex @@ -3,5 +3,6 @@ \input{parts/Basics.tex} \input{parts/Supervised Learning.tex} +\input{parts/Unsupervised Learning.tex} \input{parts/Mathematische Grundlagen.tex} \ No newline at end of file diff --git a/chapters/Unsupervised Learning/Clustering.tex b/chapters/Unsupervised Learning/Clustering.tex new file mode 100644 index 0000000..a3f9d82 --- /dev/null +++ b/chapters/Unsupervised Learning/Clustering.tex @@ -0,0 +1,87 @@ +\chapter{Clustering} + \section{Definition} + Allgemein gesagt bestimmt ein Clustering-Verfahren, ob zwei Elemente ähnlich bzw. unähnlich sind.\\ + \includegraphics[width = .6\textwidth]{clustering_definition.png}\\ + Ein Cluster ist eine Partition einer Datenstruktur in einem unbekannten Bereich. + Damit das Clustering funktioniert müssen folgende Bedingungen gegeben sein: + \begin{enumerate} + \item Elemente in einem Cluster sind so ähnlich wie möglich\\ + (qualitativ bewertendende Features sollten möglichst große Ähnlichkeiten erzeugen) + \item der Unterschied von Elementen in unterschiedlichen Clustern sollte so groß wie möglich sein\\ + (quantitativ bewertende Features sollten möglichst große Unähnlichkeiten erzeugen) + \item die Messung der Ähnlichkeit bzw. Unähnlichkeit muss klar definiert sein und sollte einen praktischen Ursprung haben + \end{enumerate} + \section{Standardverfahren} + \begin{enumerate} + \item \textbf{Feature extraction and selection:} Auswahl der repräsentativsten Merkmale aus dem Datensatz + \item \textbf{Clustering algorithm design:} Entwurf des Clustering Algorithmus in Abhängigkeit von den Eigenschaften des vorliegenden Problems + \item \textbf{Result evaluation:} Aus- und Bewertung der Rückgabe des Clustering Algorithmus + \item \textbf{Result explanation:} Erklärung der Ergebnisse des Clusterings + \end{enumerate} + + \section{Abstandsbestimmung} + Für den Abstand zwischen Elementen gelten 2 grundlegende Regeln: + \begin{itemize} + \item Triangle inequality: $d(x_i,x_j)\le d(x_i,x_j) + d(x_j,x_k) ~\forall x_i,x_j,x_k\in S$ + \item $d(x_i,x_j) = 0 \Rightarrow x_i = x_j ~\forall x_i,x_j\in S$ + \end{itemize} + + \subsection{Minkowski Abstand} + $$ \left(\sum^d_{i=1}|x_{il}-x_{jl}|^n\right)^{\frac{1}{n}} $$ + Hieraus leiten sich genauer definierte Abstandsfunktionen ab: + \begin{itemize} + \item $n=1$: City-block distance + \item $n=2$: Euclidean distance + \item $n\rightarrow\infty$: Chebyshev distance + \end{itemize} + + \section{Ähnlichkeitsbestimmung} + Die allgemeine Schreibweise für die Ähnlichkeitsfunktion (similarity function) ist $s(x_i,x_j)$. + Alle Ähnlichkeitsfunktionen haben gemeinsam, dass sie symmetrisch sind ($s(x_i,x_j) = s(x_j,x_i)$). + Meist sind die Funktionen so aufgebaut, dass sie die Ähnlichkeit im Intervall $[0,1]$, $[0,\infty]$ oder $[-\infty,\infty]$ angeben. + + \subsection{Cosine distance} + $$1-\cos \alpha = \frac{x_i^T x_j}{||x_i|| ||x_j||}$$ + Eigenschaften: + \begin{itemize} + \item unabhängig von der Rotation der Daten + \end{itemize} + + \subsection{Pearson correlation distance} + $$ 1-\frac{\text{Cov}(x_i,x_j)}{\sqrt{D(x_i)}\sqrt{D(x_j)}} $$ + Eigenschaften: + \begin{itemize} + \item $\text{Cov}=$ Covarianz + \item $D = $ Varianz + \item Misst den Abstand in Abhängigkeit von der linearen Korelation + \end{itemize} + + \subsection{Mahalanobis distance} + $$ \sqrt{(x_i-x_j)^T S^{-1}(x_i-x_j)} $$ + \begin{itemize} + \item $S =$ Covarianz Matrix innerhalb des Clusters + \item hohe rechnerische Komplexität + \end{itemize} + + \subsection{Jaccard similarity} + $$ J (A,B) = \frac{|A\cap B|}{|A\cup B|} $$ + \begin{itemize} + \item Misst die Ähnlichkeit von zwei Sets + \item $|X|=$ Anzahl der Elemente in einem Set + \item $\text{Jaccard distance} = 1-\text{Jaccard similarity}$ + \end{itemize} + + \subsection{Hamming similarity} + \say{minimale Anzahl von Substitutionen um einen Datenpunkt in einen anderen zu transformieren} + + \section{Bewertung des Clustering Algorithmus} + Die Bewertung eines Clustering Algorithmus ist nur sehr schwer objektiv Möglich. + Aufgrund dessen sind die meisten Bewertungen abhängig von den Kriterien des Bewertenden. + Allgmein wird zwischen internen Bewertungskriterien (internal evaluation indicators) und externen Bewertungskriterien (external evaluation indicators) unterschieden.\\ + Beispiele für interne Bewertungskriterien sind die \say{intra-cluster homogenity} und die \say{inter-cluster separability}. + Diese lassen sich allerdings auch kombinieren. + Alle internen Bewertungskriterien haben gemein, dass sie keine Informationen ausserhalb der Datenbasis in dei Bewertung einschließen.\\ + Externe Bewertungskriterien vergleichen meist extern bekannte Beziehungen mit den vom Clustering Algorithmus ermittelten. + Ein Beispiel für ein externes Bewertungskriterium ist der \say{Rand indicator}: + $$ RI = \frac{TP+TN}{TP+FP+FN+TN} $$ + diff --git a/images/clustering_definition.png b/images/clustering_definition.png new file mode 100644 index 0000000000000000000000000000000000000000..7376c5304547bb7e25c74c7daee799ef966fd939 GIT binary patch literal 26766 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 literal 0 HcmV?d00001 diff --git a/parts/Unsupervised Learning.tex b/parts/Unsupervised Learning.tex new file mode 100644 index 0000000..69d86b0 --- /dev/null +++ b/parts/Unsupervised Learning.tex @@ -0,0 +1,3 @@ +\part{Unsupervised Learning} + +\input{chapters/Unsupervised Learning/Clustering.tex} \ No newline at end of file