Serie | Data Science – Maschinelles Lernen in Databricks mithilfe von MLlib 

Einführung

In den letzten Jahren hat maschinelles Lernen die Art und Weise, wie Unternehmen Daten analysieren und nutzen, erheblich verändert. Die MLlib-Bibliothek, bereitgestellt von Databricks, einer Multi-Cloud-Lakehouse-Plattform basierend auf Apache Spark, bietet eine Vielzahl an Werkzeugen für maschinelles Lernen. Eines dieser Werkzeuge ist die binäre Klassifikation, mit der sich dieser Impuls eingehend beschäftigt.

Binäre Klassifikation (binary classification)

Mittels der binären Klassifikation, die dank der MLlib-Bibliothek von Databricks ohne großen Aufwand nutzen lässt, können unter anderem E-Mails als Spam oder Nicht-Spam klassifiziert, die Relevanz von Werbung für einen Nutzer ermittelt oder Vorhersagen über das Wetter für die kommenden Tage getroffen werden.

Das Vorgehen zum Einsatz der binären Klassifikation gliedert sich in drei Schritte:

  1. Datenvorbereitung: Umwandlung der Daten in numerische Werte
  2. Modellbildung und -optimierung: Aufbau und Optimierung verschiedener Modelle, Validierung der Ergebnisse und Vergleich der Modelle bzw. der Ergebnisse
  3. Vorhersage: Erstellung der Vorhersage mithilfe des besten Modells und den zugrundeliegenden Eingangsdaten

 

1. Datenvorbereitung

In vielen Algorithmen, insbesondere im Bereich des maschinellen Lernens, ist es schwierig, mit nicht-numerischen Werten als Labels zu arbeiten. Um dieses Problem zu umgehen, können die vorhandenen Werte mithilfe verschiedener Methoden in numerische Werte umgewandelt werden.

Eine gängige Methode ist das Category Indexing, bei dem, wie unten dargestellt, jedem eindeutigen Label eine Zahl zugeordnet wird:

So erhält Kategorie 1 (Katze) die Ziffer 0, Kategorie 2 (Hund) die Ziffer 1 und Kategorie n die Ziffer n-1. Dies schafft eine Reihenfolge, die besonders nützlich ist, wenn die Variablen vorher ordinal angeordnet waren.

Eine weitere Methode ist das One-Hot-Encoding, bei dem jede Kategorie einer kategorialen Spalte in eine eigene Spalte umgewandelt wird. Jede dieser neuen Spalten repräsentiert eine Kategorie und enthält eine Eins, wenn die Kategorie in einer bestimmten Zeile zutrifft, und eine Null, wenn nicht. Auf diese Weise entsteht ein Vektor, der anzeigt, welche Kategorie in einer bestimmten Zeile vorhanden ist. Ordinale Beziehungen und Reihenfolgen werden dabei nicht berücksichtigt:

In einem weiteren Beispiel, bei dem vorhergesagt werden soll, ob eine Person mehr oder weniger als 50.000€ im Jahr verdient, basierend auf Variablen wie Alter, Abschluss, Geschlecht und Arbeitsstunden, wird One-Hot-Encoding verwendet. Um die Codierungsphasen besser zu organisieren, werden die Schritte in einer Pipeline angeordnet.

Der nachstehende Code wandelt kategoriale Variablen in numerische und One-Hot-encodierte Variablen um und organisiert diese in einer Pipeline. Mithilfe der Funktion StringIndexer wird jede kategoriale Spalte in Indizes umgewandelt, die dann in One-Hot-encodierte Variablen konvertiert werden:

Die verschiedenen Feature-Spalten werden mithilfe des VectorAssemblers zu einer einzigen Vektor-Spalte kombiniert. Anschließend muss die Pipeline nur noch ausgeführt werden, um alle Transformationen gleichzeitig auf die Daten anzuwenden.

 

2. Erstellung und Optimierung des Modells

Um eine binäre Klassifikation durchzuführen, gibt es mehrere verschiedene Algorithmen, wie zum Beispiel Logistic Regression, Decision Tree Classifier und Random Forest Classifier, mit deren Hilfe auf Basis der Analyse historischer Daten Vorhersagen getroffen werden können. Jeder dieser Algorithmen besitzt unterschiedliche Fähigkeiten.

Decision Trees können zum Beispiel direkt mit kategorialen Daten umgehen und unterstützen die Multiklassen-Klassifikation. Random Forests hingegen verbessern die Modellqualität, indem sie mehrere Bäume verwenden.

Die grundlegende Vorgehensweise besteht darin, ein initiales Modell zu erstellen, es zu optimieren und anschließend die Ergebnisse zu validieren.

In folgendem Beispiel wird ein Decision Tree Classifier erstellt. Dabei werden folgende Schritte durchlaufen:

    • Erzeugen eines Models und Training mit Hilfe der Trainingsdaten

 

    • Vorhersage treffen auf Basis von Testdaten

 

    • Bewerten des Modells

 

    • Validierung

 

    • Vorhersage anhand neuer Daten verproben

 

3. Treffen von Vorhersagen

Im letzten Schritt wird aus den zuvor erstellten Modellen das beste ausgewählt und auf das Datenset angewendet, um die Vorhersagen zu treffen.

Fazit ML in Databricks mithilfe von MLlib

Die MLlib-Bibliothek in Databricks stellt eine leistungsfähige und benutzerfreundliche Plattform für maschinelles Lernen bereit. Insbesondere die binäre Klassifikation wird durch die klar strukturierte Datenvorbereitung, Modellbildung und Vorhersage erheblich vereinfacht. Unternehmen können so präzise Vorhersagen und Klassifikationen durchführen, die ihre Entscheidungsprozesse und Geschäftsstrategien unterstützen. Die Integration von Databricks mit MLlib ermöglicht es, große Datenmengen effizient zu verarbeiten und komplexe Modelle zu implementieren, was letztlich die Nutzung von maschinellem Lernen in der Praxis erleichtert und verbessert.

Sie möchten mehr über ML in Databricks erfahren? Dann nichts wie ab zu unserem Data Strategy & Analytics Assessment!

 

Übersicht der Data Science (ML & AI) Serie:

 

Haben wir Ihr Interesse geweckt? Kontaktieren Sie uns.

Ihre Ansprechpartnerin

Datalytics Mitarbeiter Vorstellung Susanna-Strobl

Susanna Strobl

susanna.strobl@datalytics-consulting.com
+49 178 3984086