forked from TH_General/Template_Summary
108 lines
4.6 KiB
TeX
108 lines
4.6 KiB
TeX
\chapter{Clustering}%
|
|
\label{cha:Clustering}
|
|
Beim Clustering geht es darum Datenpunkte auf Basis der Ähnlichkeit ihrer Eigenschaften zu gruppieren.
|
|
Ein Problem des Clusterings besteht allerdings darin,
|
|
dass die Auswahl der Ähnlichkeit sehr subjektiv sein kann.
|
|
Das Ziel ist es ein Ähnlichkeitsmaß zu finden,
|
|
dass die Datenpunkte in die vom Anwender gewünschten Gruppen clustert.
|
|
|
|
\section{K-Means Lagorithm}%
|
|
\label{sec:K-Means Lagorithm}
|
|
Das Ziel des K-Means Algorithmus ist es eine vorgegebene Anzahl an Clustern zu finden.
|
|
Das Ziel ist es die \gls{SSD} zu reduzieren.
|
|
\begin{equation} \label{eq:SSD}
|
|
\nomeq{sum_of_squared_distances}(C,\mathcal D) = \sum_{i=1}^n d(\bm x_i,c(\bm x_i))^2
|
|
\end{equation}
|
|
\begin{itemize}
|
|
\item $\mathcal D = \{\bm x_1,\dots,\bm x_n\}$: die gegebenen Datenpunkte
|
|
\item $C = \{\bm c_1,\dots,\bm c_k\}$: die aktuellen Mittelpunkte der Cluster
|
|
\item $c(\bm x)$: gibt den Cluster"~Mittelpunkt $\bm c\in C$ zurück, welcher $\bm x$ am nächsten liegt
|
|
\item $d(\bm x,\bm c)$: Abstand zwischen $\bm c$ und $\bm x$
|
|
\end{itemize}
|
|
\begin{mybox}
|
|
\textbf{\Large K-Means Algorithmus} \\
|
|
\begin{enumerate}
|
|
\item beliebige Cluster"~Mittelpunkte $K$ wählen
|
|
\item jeden Datenpunkt zu dem nächstgelegenen Cluster"~Mittelpunkt zuweisen\\
|
|
$z_n = \argmin_k\|\bm c_k - \bm x_n\|^2$
|
|
\item jeder Cluster"~Mittelpunkt wird an den Mittelpunkt der ihm zugeteilten Datenpunkte verschoben\\
|
|
$\bm c_k = \frac{1}{|X_k|}\sum_{\bm x_i\in X_k}\bm x_i,\quad X_k = \{\bm x_n|z_n=k\}$
|
|
\item Durchlauf ab Schritt 2 wiederholen, bis sich nichts mehr ändert
|
|
\end{enumerate}
|
|
\end{mybox}
|
|
\begin{figure}[H]
|
|
\centering
|
|
\begin{subfigure}[t]{.3\textwidth}
|
|
\centering
|
|
\includegraphics[width=\linewidth]{k-means_1.png}
|
|
\caption{Schritt 1: Initialisierung}
|
|
\label{fig:k-means_1}
|
|
\end{subfigure}\hfill
|
|
\begin{subfigure}[t]{.3\textwidth}
|
|
\centering
|
|
\includegraphics[width=\linewidth]{k-means_2.png}
|
|
\caption{Schritt 2: Zuordnung der Datenpunkte}
|
|
\label{fig:k-means_2}
|
|
\end{subfigure}\hfill
|
|
\begin{subfigure}[t]{.3\textwidth}
|
|
\centering
|
|
\includegraphics[width=\linewidth]{k-means_3.png}
|
|
\caption{Schritt 3: Verschiebung der Cluster"~Mittelpunkte}
|
|
\label{fig:k-means_3}
|
|
\end{subfigure}
|
|
\begin{subfigure}[t]{.3\textwidth}
|
|
\centering
|
|
\includegraphics[width=\linewidth]{k-means_4.png}
|
|
\caption{Schritt 2: Zuordnung der Datenpunkte}
|
|
\label{fig:k-means_4}
|
|
\end{subfigure}\hfill
|
|
\begin{subfigure}[t]{.3\textwidth}
|
|
\centering
|
|
\includegraphics[width=\linewidth]{k-means_5.png}
|
|
\caption{Schritt 3: Verschiebung der Cluster"~Mittelpunkte}
|
|
\label{fig:k-means_5}
|
|
\end{subfigure}\hfill
|
|
\begin{subfigure}[t]{.3\textwidth}
|
|
\centering
|
|
\includegraphics[width=\linewidth]{k-means_6.png}
|
|
\caption{Schritt 2: Zuordnung der Datenpunkte\\ Schritt 3: keine Änderung nötig $\Rightarrow$ Beendigung des Algorithmus'}
|
|
\label{fig:k-means_6}
|
|
\end{subfigure}
|
|
|
|
\caption{K-Means Algorithmus in Aktion}
|
|
\label{fig:}
|
|
\end{figure}
|
|
|
|
\subsection{Konvergenz}%
|
|
\label{sub:K-Means:Konvergenz}
|
|
Es kann gezeigt werden,
|
|
dass K-Means konvergiert ({\color{red} Gesamtfoliensatz Folie 683}).
|
|
Allerdings wird nur ein lokales Optimum gefunden.
|
|
Ob dieses dem globalen Optimum entspricht ist vor allem von der Initialisierung der Cluster"~ Mittelpunkte abhängig.
|
|
Die Suche nach dem globalen Optimum stellt allerdings ein NP-hartes Problem dar.
|
|
|
|
\subsection{K-Means++}%
|
|
\label{sub:K-Means++}
|
|
Besondere Form des K-Means Algorithmus',
|
|
bei dem der erste Cluster"~Mittelpunkt zufällig gewählt wird
|
|
und alle darauffolgenden Cluster"~Mittelpunkte auf die Datenpunkte gelegt werden,
|
|
die am weitesten von allen bisher festgelegten Cluster"~Mittelpunkten entfernt liegt.
|
|
\begin{equation} \label{eq:k-means++_centroid_selection}
|
|
\text{let} n = \argmax_{i\in\{1,\dots,n\}}\left( \min_{k'\in\{1,\dots,k-1\}} \| \bm x_i-\bm c'_k \|^2 \right),\qquad \bm c_k = \bm x_i
|
|
\end{equation}
|
|
|
|
\subsection{Number of Clusters}%
|
|
\label{sub:Number of Clusters}
|
|
Die Wahl der richtigen Clusterzahl ist das Kernproblem des K-Means Clustering.
|
|
Eine Methode zur Auswahl der Clusterzahl ist die \say{Knee-finding} Methode.
|
|
Hierbei wird der K-Means Algorithmus für verschiedene Clusterzahlen durchgeführt
|
|
und analysiert,
|
|
ab welcher Anzahl sich die Gesamtsumme der \glspl{SSD} nicht mehr signifikant ändert.
|
|
\begin{figure}[H]
|
|
\centering
|
|
\includegraphics[width=0.6\textwidth]{knee-finding_method.png}
|
|
\caption{Knee-finding Methode}
|
|
\label{fig:knee-finding_method}
|
|
\end{figure}
|
|
|