# Unüberwachtes Lernen

Unüberwachtes Lernen (englisch unsupervised learning) bezeichnet maschinelles Lernen ohne im Voraus bekannte Zielwerte sowie ohne Belohnung durch die Umwelt. Die (Lern-)Maschine versucht, in den Eingabedaten Muster zu erkennen, die vom strukturlosen Rauschen abweichen. Ein Lernalgorithmus, beispielsweise ein künstliches neuronales Netz, berechnet Ähnlichkeiten zwischen verschiedenen Inputwerten und erstellt daraus ein Modell, das an die Daten angepasst ist. Mit Hilfe des Modells kann man danach verschiedene Zusammenhänge in den Daten erkennen und weiter untersuchen. Typische Anwendungsgebiete sind die automatische Segmentierung (Clustering) oder die Hauptkomponentenanalyse von Daten zur Dimensionsreduktion.

## Vorteile des unüberwachten Lernens

Das unüberwachte Lernen kann einen entscheidenden Beitrag zum maschinellen Lernen liefern, wenn aus Eingabedaten gelernt werden soll, die keine Zielwerte enthalten. Das unüberwachte Lernen kann dabei unterstützen, Eingabedaten für das überwachte Lernen vorzubereiten.
Das überwachte Lernen ist auf gut strukturierte Eingabedaten mit Zielwerten angewiesen, um das Modell gut an die Daten anpassen zu können. Das unüberwachte Lernen bietet hier den Vorteil, dass es weniger gut strukturierten Daten verarbeiten kann.
Durch die geringeren Anforderungen an die zu verwendenden Daten kann das unüberwachte Lernen auch bisher unbekannte Strukturen in den Eingabedaten identifizieren. Hierbei werden aus den vorhandenen Daten Rückschlüsse bezüglich immer wieder auftretender Muster gezogen, sodass über diese Rückschlüsse in Zukunft weitere Daten strukturiert werden können.

## Clusteranalyse

Eine der Hauptaufgaben des unüberwachten Lernens ist die Findung von Clustern in unstrukturierten Daten.
Hierbei wird versucht zwischen den einzelnen Einträgen eines Datensatzes Gemeinsamkeiten zu finden und basierend auf die Gemeinsamkeiten Cluster zu bilden.
Hierbei existieren verschiedene Vorgehen wie die Einteilung in diese Cluster geschehen kann. Die Clusteranalyse unterscheidet hierbei unter anderem zwischen hierarchischem, partitionierendem, dichtebasierendem und gitterbasierendem Clustering.
Diese Vorgehen unterschieden sich hierbei teilweise deutlich in ihrem Ergebnis in Bezug auf die betrachteten Daten, sodass der optimale Algorithmus immer auf eine Einzelfallentscheidung hinaus läuft.
Zur Analyse der Güte der erstellten Cluster existieren verschiedene Metriken, um die einzelnen Algorithmen zu evaluieren.
Beispiele:
Hierarchisches Clustering:
* Minimum Linkage
* Maximum Linkage
* Ward Linkage
Partitionierendes Clustering
* k-means
* Fuzzy-c-means
* EM-Clustering
Dichtebasierendes Clustering
* DBSCAN
Gitterbasierendes Clustering
* STING
* CLIQUE

## Anomalieerkennung

Neben der Einteilung in einzelne Cluster können mittels unüberwachtem Lernen auch einzelne Ausreißer in einem Datensatz erkannt werden. Hierbei sollen Daten identifiziert werden, die sich von vorher definiertem normalem Verhalten unterschieden.
Die Umsetzung dieser Ausreißererkennung unterscheidet sich dabei stark zwischen den einzelnen Algorithmen. Ein beliebter Algorithmus in diesem Bereich ist der Isolation Forest Algorithmus. Diese Algorithmen des unüberwachten Lernens finden sich in unterschiedlichen Anwendungsszenarien in der Praxis wieder.
Im Bereich der Sicherheit werde sie zum Beispiel innerhalb von Intrusion Detection System angewendet. Hierbei sollen sie Angreifer mittels eines von der Norm abweichenden Verhalten erkennen. Die Modelle wurde dabei zuvor anhand des normalen Datenverkehrs trainiert.
Beispielalgorithmen:
* Local Outlier Factor
* Isolation Forest
* Autoencoder

## Hauptkomponentenanalyse

Hierbei ist das Ziel der Analyse eine Vielzahl einzelner Datenpunkte auf die wenigen aussagekräftigen Punkte zu reduzieren. Dieses Vorgehen wird oftmals mit der Clusteranalyse kombiniert, um die Anzahl betrachteter Punkte in dieser zu reduzieren.
Hierzu werden die einzelnen Spalten eines Datensatzes auf ihren Informationsgehalt geprüft. Spalten, die einen niedrigen Informationsgehalt besitzen werden eliminiert, bis eine vorher definierte Anzahl an übrigen Spalten erreicht wurde.