Über unsMediaKontaktImpressum
Fabian Witt & Jonathan Staufer 06. November 2018

Machine Learning 101: Datenanalyse abseits des Hypes

Durch die Digitalisierung, das Internet of Things und die Industrie 4.0 fallen immer größere Datenmengen an. Die Auswertung durch Menschen ist schon lange undenkbar geworden, doch wie können sie sinnvoll genutzt werden, statt im Archiv zu verstauben? Machine Learning beschäftigt sich mit dieser Frage und bietet Möglichkeiten, sich durch den Datendschungel zu kämpfen, Muster zu erkennen und die Basis für fundierte Entscheidungen zu legen. Unabhängig von Hype-Themen wie Deep Learning und Künstlicher Intelligenz erfordert die automatisierte Auswertung von Daten grundlegende Vorbereitungsschritte. Schritte die ein jeder Akteur auf dem Feld des Machine Learning kennen sollte – das Einmaleins des Machine Learning.

Einführung Machine Learning

Machine Learning ist ein Gebiet der Informatik, das Einflüsse aus vielen anderen Disziplinen adaptiert, um Datenanalysen durchzuführen. Ziel ist es hierbei, Programme nicht mehr bis ins Detail manuell zu schreiben, sondern Algorithmen diese Aufgabe übernehmen zu lassen [1]. Sie sollen die unterliegenden Muster abstrahieren und auf deren Basis Vorhersagen (zum Beispiel für optimale Entscheidungen) erstellen. Dies erfolgt durch ein iteratives Training, bei dem die Parameter eines Modells an die Muster in den Daten angenähert werden.

Allgemein gilt, dass eine Problemstellung so nicht mehr bis ins Detail bekannt sein muss, solange dieser Zustand über die Menge an verfügbaren Daten ausgeglichen werden kann [2]. Vorhersagen sind selbstverständlich nur möglich, wenn die gefunden Muster auch für zukünftige Ereignisse ihre Gültigkeit behalten.

Begriffsklärung

Für die nachfolgende Detailbetrachtung sollten im Vorfeld einige Begrifflichkeiten definiert werden. Die verfügbaren Daten können grundlegend als Tabelle betrachtet werden. Eine Zeile dieser Tabelle wird üblicherweise als "Instanz" bezeichnet. Ein "Merkmal" stellt eine Spalte der Tabelle dar. Der Begriff "Target" definiert ein Merkmal, das das Vorhersageziel einer Analyse ist – den vorherzusagenden Wert.

Merkmale können grob nach vier Kategorien unterschieden werden:

  • Kategoriale Merkmale: Endliche Anzahl von eindeutigen Gruppen – Kategorien. Sie verfügen nicht zwangsläufig über eine logische Reihenfolge.
  • Binäre Merkmale: Merkmal, das die Werte 0 oder 1 annehmen kann. Zeigt typischerweise das Vorhandensein einer Eigenschaft
  • Diskrete Merkmale: Abzählbare Anzahl von numerischen Werten zwischen zwei beliebigen Grenzen.
  • Stetige Merkmale: Nicht abzählbare Anzahl von numerischen Werten zwischen zwei beliebigen Werten.

Algorithmen wenden basierend auf ihren Eigenschaften unterschiedliche Lernstrategien an. Grundlegend kann zwischen überwachtem und unüberwachtem Lernen unterschieden werden. Bei überwachtem Lernen erhält der Algorithmus Feedback durch einen Beobachter. Die Beurteilung der Leistung ermöglicht es im Anschluss, die Genauigkeit zu verbessern.

Unüberwachtes Lernen beinhaltet kein derartiges "Lehrer"-Feedback. Der Algorithmus muss die Muster in den Daten hierbei ohne Beobachter finden. Das seltener eingesetzte semi-überwachte Lernen und das verstärkende Lernen (Reinforcement Learning) stellen Sonderfälle des überwachten Lernens dar. Letzteres verwendet eine Bewertungsmetrik, um den Algorithmus durch Feedback in Form von Belohnung oder Bestrafung zu leiten.

Machine-Learning-Workflow

Wie eingangs beschrieben, ist der Einsatz eines bestimmten Algorithmus nur ein Teil der Aktivitäten im Rahmen einer Auswertung. Der vollständige Prozess ist in seinen Schritten immer ähnlich, weshalb mehrere Vorlagen, wie der Workflow einer Datenanalyse mit Machine Learning aussehen könnte, existieren. Die nachfolgende Graphik skizziert den Ablauf der Arbeitsschritte.

Das Erhalten, Sammeln und Vorbereiten der Daten stellt erfahrungsgemäß den größten Aufwand innerhalb des Workflows dar. Die gesammelten Daten müssen je nach Datenqualität vor einer Analyse vereinheitlicht und auf fehlende Werten untersucht werden. Das Sampling beschreibt die Auswahl der Daten für das Training des Modells sowie der Evaluierungs- oder Testdaten. Im Rahmen des Trainings wird eine Abstraktion der Muster innerhalb der Daten durch einen zuvor ausgewählten Algorithmus durchgeführt, welcher eine Konfiguration in Form von Hyperparametern erhält. Das Ergebnis eines Trainings stellt ein Modell dar: Ein Algorithmus, der auf Basis von bestimmten Hyperparametern unter der Verwendung von expliziten Daten trainiert wurde. Das Verhalten eines Modells wird anschließend durch den Entwickler/ Data Scientist beurteilt. Die Modell Evaluation stellt einen iterativen Prozess dar, der auf Basis der Testdaten zwei Aspekte bewertet:

  • Die Eignung des Algorithmus, die in den Daten vorhandenen Muster abzubilden und
  • die Qualität der übergebenen Hyperparameter, welche in den Iterationen optimiert werden.

Hyperparameter und Art des Algorithmus werden im Rahmen des Trainings nicht automatisch verändert, sondern sind durch den Entwickler/ Data Scientist vorgegeben und im Rahmen eines Modelltrainings festgelegt. Die Optimierung der Hyperparameter ermöglicht es, passende Algorithmen weiter auf die gegebenen Muster einzustellen und somit zuverlässigere Ergebnisse zu erhalten.

Raw-Data-Collection: Ohne Daten auch keine Analysen

Im Rahmen eines Projektes, das den Einsatz von Machine Learning zum Ziel hat, gibt es sehr verallgemeinert zwei Szenarien:

  • Es gibt ein Analyseziel, die Verfügbarkeit der Daten ist jedoch offen.
  • Es gibt Daten, das Ziel der Analyse ist jedoch offen.

Im ersten Fall gilt es nach Möglichkeiten zu suchen, aussagekräftige Daten aufzuzeichnen oder zu generieren. Zum Teil ist Firmen auch nicht bekannt, dass benötigte Daten bereits aufgezeichnet werden, zum Beispiel in Form von Log-Dateien. Der zweite Fall stellt den einfacheren Einstieg dar, da keine weiteren Hürden genommen werden müssen. Hier kann es allerdings an Zielbewusstsein fehlen: Die Notwendigkeit intensiver Analysen und deren möglicher Vorteile wird nicht gesehen.

Der strenge Datenschutz und die Vorsicht von Firmen stellt umfassende Analyseprojekte in Deutschland vor Herausforderungen. Insbesondere im Angesicht der DSGVO, welche kürzlich noch strengere Vorgaben und hohe Strafgebühren implementierte, verstärken Firmen diese Haltung. Häufig stammen erhaltene Daten aus unterschiedlichen Datenquellen und müssen konsolidiert werden. Hierbei ist es wichtig, den Rat der Fachabteilungen zu berücksichtigen, um falsche Rückschlüsse über Aussagen und Inhalte der Daten zu vermeiden. Darüber hinaus sollte es sich nicht um einmalige Datenausgaben handeln – die Analyse hat zumeist einen zukunftsgerichteten Charakter und soll wiederholbar sein, weshalb persistente Datenquellen eine sinnvolle Grundlage darstellen.

Pre-Processing: Garbage in, Garbage out

Die Vorverarbeitung dient grundlegend dem Schaffen eines Verständnisses für die Daten und dem Anheben der Datenqualität. Die erste Visualisierung der Daten in ihrer konsolidierten Form gibt Auskunft über Zusammenhänge und notwendige Schritte vor, um den später folgenden Lernprozess zu optimieren. Die Datenqualität hat erheblichen Einfluss auf die Qualität der Ergebnisse und wird oft als "Garbage in, Garbage out" zusammengefasst. In diesem Schritt des Analyseworkflows müssen verschiedene Faktoren berücksichtigt werden. Im Folgenden gehen wir auf ein paar typische Fälle ein.

Datenfehler: Es kommt vor, dass innerhalb von Merkmalen unterschiedliche Datentypen eingesetzt werden (was gegen deren Definition geht). Diese müssen analysiert und behandelt werden.

Fehlende Werte: Fehlende Werte haben den gleichen Effekt wie Datenfehler – Aussagen entfallen einfach, da keine Informationen vorliegen. Generell gibt es vier Möglichkeiten, diese zu beheben:

  • Löschen der Instanz: Die gesamte Zeile wird aus den betrachteten Datensätzen entfernt.
  • Löschen des Merkmals: Das gesamte Merkmal (Spalte) wird aus den betrachteten Datensätzen entfernt.
  • Manuelles Füllen: Ein (hoffentlich) passender Wert wird durch den Entwickler/ Data Scientist ausgewählt.
  • Automatisches Füllen: Für ein automatisches Füllen können verschiedene Optionen gewählt werden. Vom einfachen Einfügen der Mittelwerte eines Features bis hin zum Erstellen von Machine-Learning-Algorithmen, die Prognosen für Fehlwerte bilden, ist alles möglich.

Beim Auffüllen von Fehl- oder Falschwerten besteht jedoch immer die Gefahr einer Verzerrung der Originaldaten.

Ausreißer/ "Noise": Hierbei handelt es sich um Datensätze, die außerhalb der gesuchten Muster liegen und während des Lernprozesses zu verfälschenden Ergebnissen führen können. Ein Beispiel hierfür sind Messfehler bei Sensoreinheiten. Die betroffenen Instanzen sollten über Algorithmen ausfindig gemacht und aus den weiterverwendeten Datensätzen entfernt werden.

Nach dem Heben der Datenqualität sind Vorbereitungen für die folgende Auswertung zu treffen. Skalen sollten normiert, stetige Features diskretisiert und Werteeinheiten in eine einheitliche Form gebracht werden. Aus den gesäuberten und vereinheitlichten Daten können an diesem Punkt sogar neue Merkmale auf Basis von Algorithmen generiert werden.

Abschließend sollten alle Datensätze einheitlich formatiert sein und die gleichen Einheiten innerhalb der Merkmale verwenden. Auf dieser Basis kann ein vollständiges Datenset erzeugt werden, aus dem nur noch die für die Analyse notwendigen Merkmale auszuwählen sind.

Auch wenn es sich hierbei erst um den zweiten Schritt im vorgestellten Machine-Learning-Workflow handelt, benötigt das Sammeln und Vorbereiten den zeitlich gesehen größten Anteil eines Data-Science-Projektes. Bis zu 60 Prozent des Aufwandes [3] einer Analyse mit Machine Learning liegt in diesen beiden Vorbereitungsschritten.

Sampling

Sampling, also die Entnahme von Datenproben aus dem generierten Datenset, hat zum Ziel, die Daten in drei Subsets aufzuteilen:

  1. Training Set: Trainingsdaten werden eingesetzt, um das Modell grundlegend in Abhängigkeit zu den Hyperparametern zu trainieren.
  2. Validation Set: Dieses optionale Subset erlaubt es dem Entwickler, das Modell während des Trainings mit den Trainingsdaten zu validieren um zu erkennen, ob ein Lernen stattfindet oder ob der Algorithmus im Modell die Daten nur auswendig lernt (Overfitting).
  3. Test Set: Testdaten bieten die Möglichkeit, das zuvor erzeugte Modell auf dessen Fähigkeit, bisher unbekannte Daten vorherzusagen, zu testen. Hierdurch wird eine Aussage über Modelqualität und mögliches Overfitting möglich.

Das Best Practice stellt ein zufälliges Sampling von Werten dar, wobei darauf zu achten ist, dass bei Klassifizierung die Ergebnisalternativen ungefähr gleichverteilt in den Trainingsdaten vorliegen. Eine Aufteilung der Daten ist nur notwendig, wenn ein bewertetes Training des Algorithmus in dessen Lernmethodik vorgesehen ist.

Model Training

Nach der Sammlung und Vorbereitung der Daten kann nun endlich ein Machine-Learning-Algorithmus zum Einsatz kommen, um ein Modell zu erstellen. Aber welcher? Die Auswahl von möglichen Algorithmen wird durch zwei Aspekte eingegrenzt:

  • Ziel der Analyse: Welche Fragen sollen beantwortet werden?
  • Art der verfügbaren Daten: Können die Fragen beantwortet werden?

Klassifikation benötigt innerhalb der Daten Klassen, welche der Algorithmus erlernt und im Anschluss auf unbekannte Daten übertragen kann. Regression benötigt als Ziel Zahlenwerte, die vorherzusagen sind. Für diese Form von Vorhersagen ist zumeist ein überwachtes Training notwendig. Analysen über die Struktur der Daten benötigen im Allgemeinen kein explizites Training, da kein Feedback über deren Richtigkeit möglich ist (unüberwachtes Lernen).

Selbst wenn diese Fragen beantwortet wurden, so verbleibt eine Vielzahl von Algorithmen mit unterschiedlichen Stärken und Schwächen. Erfahrene Entwickler/ Data Scientists können an diesem Punkt oftmals besser geeignete Algorithmen eingrenzen, generell sollten jedoch mehrere Alternativen getestet werden.

Ist der passende Algorithmus gefunden, muss sichergestellt werden, dass das Modell die Trainingsdaten nicht einfach nur auswendig lernt. Dieser als Overfitting bezeichnete Zustand verursacht, dass ein Modell sich zu stark an die Trainingsdaten anpasst und keine bisher unbekannten Daten einordnen oder vorhersagen kann. Muster innerhalb der Daten werden so nicht ausreichend abstrahiert.

Model Evaluation

Die Evaluierung eines Modells erfolgt abhängig von den eingesetzten Lernmethoden. Häufig werden in diesem Schritt mehrere Modelle und Konfigurationen verglichen. Unüberwachtes Lernen verfügt über kein Testdatenset und die Beurteilung kann durch den Entwickler / Data Scientist individuell oder auf Basis von internen (der Datenstruktur inne liegenden) Indices erfolgen. Überwachtes Lernen und dessen Untergruppen ermöglichen hingegen automatisierte Richtig-/Falsch-Analysen, wodurch die Qualität des Modells objektiver einschätzbar ist. Das Modell soll bei diesem Vorgehen die zuvor separierten Testdaten vorhersagen bzw. klassifizieren. Gelingt dies dem Modell nur unzureichend, kann dies auf mehrere Ursachen zurückzuführen sein:

  • Wurden die richtigen Daten gewählt?
  • Ist die Qualität der Daten ausreichend?
  • Kann der Algorithmus die Muster der vorliegenden Daten verlässlich zu einem Modell abstrahieren?
  • Ist das Modell zu sehr an die Daten angepasst – liegt Overfitting vor?
  • Wurden die Hyperparameter des Algorithmus an das vorliegende Modell angepasst?

Die ersten drei Fälle wurden bereits im Workflow betrachtet. Sollten diese zutreffen, so muss zum entsprechenden Workflow-Schritt zurückgekehrt werden, um Anpassungen vorzunehmen.

Overfitting kann auf verschiedene Arten entgegengewirkt werden. Die häufigste Methode stellt die k-fache Kreuzvalidierung (k-fold Cross Validation) dar. Bei diesem Vorgehen werden die Trainingsdaten in k-viele-Teile aufgeteilt. Das Modell wird mit allen bis auf einen Teil der Daten trainiert. Der zuvor ausgeschlossene Teil wird im Anschluss als Testdaten für die Beurteilung des Modells verwendet. Danach wiederholt sich der Prozess mit dem Unterschied, dass ein anderer Teil des Datensets aus dem Training für einen anschließenden Test zurückgehalten wird. Dies wiederholt sich k-mal [4].

Für eine Gesamtbewertung des Modells wird im Anschluss der durchschnittliche Fehler bzw. ein Durchschnitt der eingesetzten Bewertungsmetrik aller Wiederholungen berechnet. Es wird zu jedem Zeitpunkt ein Teil der Daten zurückgehalten und das Modell kennt nie das vollständige Datenset innerhalb eines Validierungsschrittes. Dadurch ist sichergestellt, dass ein Auswendiglernen nicht als verlässlichster Weg für die Bildung einer Prognose gewählt wird.

Sollte hiernach immer noch keine Verbesserung der Vorhersagen eintreten, so muss spätestens an dieser Stelle die Konfiguration der Hyperparameter des Algorithmus an den Analysefall angepasst werden.

Hyperparameter Optimization

Algorithmen verfügen über "Stellschrauben", die durch den Entwickler für ein Feintuning verwendet werden sollten. Diese stellen den Algorithmus auf den vorliegenden Analysefall ein und ermöglichen so noch genauere Vorhersagen.

Hyperparameter werden nicht beim Training verändert, sondern im Vorfeld definiert und in einem interaktiven Prozess über mehrere Trainingswiederholungen justiert. Für das Optimieren der Parameter existieren verschiedene Vorgehen, zum Beispiel das zufällige Auswählen von Werten für die Parameter (Random Search) oder das gezielte Ausprobieren von Parametern über mehrere parallele Trainings (Grid Search) um systematisch Hinweise und ein "Gespür" für eine optimale Einstellung des Analysefalls zu erhalten.

Jeder Algorithmus verfügt über unterschiedliche Hyperparameter. Die Optimierung der Hyperparameter ist sehr aufwändig, insbesondere bei Betrachtung von mehreren Parameterkombinationen und unterschiedlich eingesetzten Algorithmen.

Deployment

Ein Modell erstellt man nun natürlich nicht (nur), weil man auf der Suche nach einem neuen Hobby ist – letztlich geht es darum, Anwendungsfälle verschiedenster Art zu lösen. Nicht nur die klassische Analyse von Daten und anschließende Beratung ist nachgefragt, die Integration von Modellen in Software ("KI-Programme", wie es einem im Moment oft hinterher geworfen wird) aber auch Hardware hat in einfacheren Fällen erheblich an Bedeutung gewonnen. Die vorgefertigten Modelle generieren mit geringem Aufwand aus den Eingabedaten der Umgebung Prognosen und Klassifizierungen. Der Lern- und Optimierungsprozess stellt, wie beschrieben, den ressourcenintensivsten Anteil des Machine-Learning-Workflows dar.

Beim produktiven Einsatz von Modellen darf nicht außer Acht gelassen werden, dass Muster sich über die Zeit hinweg ändern können. Dies beinhaltet nicht nur Änderungen, die sich zum Beispiel durch geänderte Trends ergeben, sondern auch saisonale Schwankungen oder Veränderungen der Datenquellen. Ein Monitoring der Performance sowie eine nachträgliche Aktualisierung des Modells sollte also bereits während der Entwicklung und des Deployments berücksichtigt werden.

Zusammenfassung

Die stetig wachsende Datenmenge ist durch den Menschen unmöglich zu bewältigen. Dennoch ist Machine Learning mehr als nur ein Buzzword und KI ein größerer Bereich als Machine Learning selbst. Um eine Auswertung erfolgreich zu gestalten, reicht es nicht, irgendwelche Daten in irgendeiner Form in einen Algorithmus zu kippen – der Großteil des Analyseaufwands entfällt auf das Sammeln und die Vorbereitung der Daten. Der vorgestellte Workflow ist hierbei eine allgemeine Vorlage, die nicht für jedes Projekt vollständig zutreffen muss. Das Sammeln und Vorverarbeiten der Daten sowie das Suchen nach einem verlässlichen Modell stellen jedoch Konstanten in allen Anwendungen dar. Bei der Wahl der Algorithmen muss der Fokus darauf liegen, eine auf die vorliegende Komplexität des Problems passende Lösung zu finden. Alles mit Deep Learning zu erschlagen, ist nicht zielführend und erzeugt einen erheblichen Mehraufwand, der nicht notwendig ist.

Quellen
  1. A. L. Samuel; 1959: Some Studies in Machine Learning Using the Game of Checkers. In: IBM Journal of Research and Development (Volume:3, Issue: 3), S. 210.
  2. E. Alpaydin; 2010: Introduction to machine learning. 2nd ed. Cambridge, Mass: MIT Press (Adaptive computation and machine learning)
  3. CrowdFlower; 2016: Data Science Report
  4. Github – S. Raschka: Predictive modeling, supervised machine learning, and pattern classification - the big picture

Weitere Informationen und Beispiele in Python finden Sie unter

Autoren

Jonathan Staufer

Jonathan Staufer ist bei der Firma Redheads Ltd. seit 2018 als Softwareentwickler und Data Scientist Teil des Data-Science-Teams.
>> Weiterlesen

Fabian Witt

Fabian Witt ist bei der Firma Redheads Ltd. seit 2017 als Technical Lead für den Bereich Data Science verantwortlich.
>> Weiterlesen
Das könnte Sie auch interessieren
botMessage_toctoc_comments_9210