\chapter{Clustering Algorithms}\label{clustering algorithms}
    \includegraphics[width = .6\textwidth]{clustering_algorithms.png} 

    \section{partition based algorithms}
    \label{partition based clustering}
        Partitionsbasierte Clustering Algorithmen starten mit einer vordefinierten Partitionierung.
        Anschließend werden die Elemente so lange zwischen den Partitionen verschoben, bis  das optimale Ziel erreicht ist.
        Die meisten dieser Algorithmen erfordern, dass die Anzahl der angestrebten Partitionen vorgegeben ist.\\
        \begin{tabular}{|p{.475\textwidth}|p{.475\textwidth}|}
            \hline
            \textbf{Vorteile} & \textbf{Nachteile}\\
            \hline
            \begin{itemize}
                \item geringe Komplexität
                \item hohe Recheneffizienz
            \end{itemize}&
            \begin{itemize}
                \item nicht geeignet für nicht-konvexe Daten
                \item stark durch Ausreißer beeinflusst
                \item Anzahl der Cluster muss bekannt sein 
                \item Ergebnis ist abhängig von der Anzahl der Cluster
            \end{itemize}\\
            \hline
        \end{tabular}

        \paragraph{Zeitliche Komplexität}\mbox{}\\
            \includegraphics[width = \textwidth]{partition_based_clustering_complexity.png}
        
        \subsection{Verfahren}
            \includegraphics[width = .6\textwidth]{partition_based_clustering.png}

        \subsection{k-means}
            \begin{itemize}
                \item Anzahl der angestrebten Cluster ist bekannt
                \item Das Zentrum der Cluster entspricht dem Zentrum der jeweiligen Datenpunkte
                \item Das Das zuvor beschriebene Verfahren wird so lange wiederholt, bis ein Konvergenzkriterium erreicht wurde
            \end{itemize}
            \subsubsection{Beispiel}
                \includegraphics[width = .9\textwidth]{k-means.png}

    \section{Hierachische Verfahren}
    \label{hierarchical clustering}
        \includegraphics[width = \textwidth]{hierachische Verfahren.png}\\
        \begin{tabular}{|p{.475\textwidth}|p{.475\textwidth}|}
            \hline
            \textbf{Vorteile} & \textbf{Nachteile}\\
            \hline
            \begin{itemize}
                \item für Datensätze mit beliebiger Form und Typ geeignet
                \item Erkennung von hierarchischen Zusammenhängen ist einfach
                \item gut skalierbar
            \end{itemize}&
            \begin{itemize}
                \item Hohe zeitliche Komplexität
            \end{itemize}\\
            \hline
        \end{tabular}
        \paragraph{Zeitliche Komplexität}\mbox{}\\
            \includegraphics[width = .5\textwidth]{hierarchical_clustering_complexity.png}

        \paragraph{Dendogramm}\mbox{}\\
            \includegraphics[width=.6\textwidth]{dendogramm.png}
        
        \subsection{Algorithmus}
            \begin{enumerate}
                \item erzeuge für jeden Punkt aus dem Datensatz ein separates Cluster
                \item Berechne den Abstand zwischen allen Clustern
                \item Verschmelze die beiden Cluster, die den geringsten Abstand zueinander haben
                \item Aktualisiere die Distanzen zwischen den Clustern bis alle Punkte in dem gleichen Cluster liegen
                \item goto 3.
            \end{enumerate}
            Meistens wird in den Algorithmus eine Abbruchbedingung eingebaut, damit nicht alle Elemente in dem gleichen Cluster zusammengefasst werden.
            Diese Abbruchbedingung definiert sich über den maximalen Abstand der Elemente in einem Cluster.

    \subsection{Abstand zwischen Clustern}
        Es gibt mehrer Möglichkeiten um den Abstand zwischen zwei Clustern festzustellen

        \paragraph{Single Link}\mbox{}\\
            \includegraphics[width=.8\textwidth]{single-link.png}

        \paragraph{Complete Link}\mbox{}\\
            \includegraphics[width=.8\textwidth]{complete-link.png}

        \paragraph{Average Link}\mbox{}\\
            \includegraphics[width=.8\textwidth]{average-link.png}

        \paragraph{Abstand der Zentroide der beiden Cluster}\mbox{}\\
            \includegraphics[width=.8\textwidth]{centroid-distance.png}

        \begin{tabular}{|p{.475\textwidth}|p{.475\textwidth}|}
            \hline
            \textbf{Vorteile} & \textbf{Nachteile}\\
            \hline
            \begin{itemize}
                \item hocheffizientes Clustering 
                \item geeignet für viele verschiedene Clusterformen
            \end{itemize}&
            \begin{itemize}
                \item schlechte Qualität bei ungleichmäßiger Dichte der Datenpunkte in einem Cluster
                \item hoher Speicherplatzbedarf bei großer Datenmenge
                \item starke Abhängigkeit von den Parametern
            \end{itemize}\\
            \hline
        \end{tabular}
        \paragraph{Zeitliche Komplexität}\mbox{}\\
            $O(n\cdot \log n)$

    \section{density based clustering}\label{density based clustering}
        Algorithmen, die davon ausgehen, dass die Elemente in einem Cluster nach einer bestimmbaren Funktion normalverteilt um ein Zentrum liegen werden als \ac{DBSCAN} bezeichnet.
        Hierfür benötigt der \ac{DBSCAN} Algorithmus 2 Parameter:\\
        \includegraphics[width = .8\textwidth]{dbscan-parameters.png}\\
        Für eine gute Auswahl der Parameter ist Vorwissen über den Datensatz erforderlich.\\
        \includegraphics[width = .6\textwidth]{eps_minPts_estimation.png}

        \subsection{Beispiele}
            \includegraphics[width = \textwidth]{dbscan_examples.png}