Machine Learning mit Apache Spark

Machine Learning mit Apache Spark ermöglicht komplexe Modelle in einem verteilten Cluster massiv zu skalieren. Apache Spark bietet mittlerweile viele Methoden des Machine Learnings für die verteilte Verarbeitung an: ML-Algorithmen, Tools zur Featureerstellung und Pipeline-Funktionalitäten.

Durch das ausgeprägte Schnittstellen und viele Funktionalitäten wird Apache Spark stark im Big Data-Umfeld eingesetzt und für Machine Learning genutzt. Ein Alleinstellungsmerkmal von Apache Spark ist die Möglichkeit skalierbare ETL-Prozesse und Machine Learning in einer Systemumgebung zu verwirklichen, dies hat den Vorteil, dass man keine Daten in andere Systeme bringen muss.

Wer mehr zu den Grundlagen von Apache Spark erfahren will, kann sich den Artikel: “Was ist Apache Spark?” von mir durchlesen.

Was zeige ich dir in diesem Artikel:

Was ist Apache Spark MLlib?

Spark MLlib wird genutzt um Machine Learning in Apache Spark anzuwenden. MLlib enthält viele bekannte Algorithmen und hilfreiche Funktionalitäten für Machine Learning.

Da einige Algorithmen auf einem verteilen System nicht funktionieren würden, nimmt MLlib diese Aufgabe ab und ermöglicht die Algorithmen auf einem verteilen System zu nutzen.

Apache Spark Core Komponenten
MLLib ist eine der Apache Spark Komponenten.

Spark MLlib Toolbox

Spark MLlib hat folgende Werkzeuge:

  • Machine Learning Algorithmen: dazu gehören gängige Methoden wie Klassifizierung, Regression, Clustering und Empfehlungsdienste (Collaborative Filtering).
  • Featurization: Machine Learning Feature Extraktion, Transformation, Dimensionsreduktion und Auswahl von ML Features.
  • ML-Pipeline: eine hilfreiche Funktion um Machine Learning Modelle in einem Prozess abzuspeichern, der auch für Produktionszwecke genutzt werden kann.
  • Modell und Pipeline Persistenz: Algorithmen und ML-Pipelines können in einem eigenen Format gespeichert und geladen werden.
  • weitere Werkzeuge: für lineares Algebra, Statistiken und Datenverarbeitungen.

Welche Algorithmen bietet Spark für Machine Learning?

Die bekanntesten ML-Algorithmen und Werkzeuge aus Apache Spark sind:

  • Klassifikation: Random Forest, Gradient Boosted Tree, einfach Entscheidungsbäume
  • Regression: Regression Trees, Generalized Linear Regression, Survival Regression etc.
  • Empfehlungsdienste (Recommender System): alternating least squares ALS
  • Clustering: K-Means, Gaussian mixtures (GMMs) etc.
  • Assoziationsanalyse: Frequent itemsets, association rules, and sequential pattern mining
  • Dimensionsreduktion: PCA, SVD
  • Basis Statistiken: Zusammenfassungen, Korrelationen, Sampling etc.

Ist Apache Spark gut für maschinelles Lernen?

Apache Spark lässt sich gut für maschinelles Lernen einsetzen und bietet gute Möglichkeiten der Skalierung. Wie bei jeder Designentscheidung, sollte man dabei abwägen, ob sich der Einsatz von einem Big Data System wie Apache Spark lohnt.

Oft sind die Datenmengen für das maschinelle Lernen nicht so groß das man zwingend Spark MLlib einsetzen muss, aber es kann von Vorteil sein, wenn man beispielsweise einen sehr aufwendigen ETL-Prozess hat und die Daten durch den Einsatz von Spark nicht in ein anderes System integrieren muss.

Dafür eigenen sich besonders die ML-Pipeline Funktionen von Apache Spark, die viele Schritte der Datenvorverarbeitung abnehmen und so 1:1 in einem Produktionsprozess eingesetzt werden können.

Unterstützt Spark Deep Learning?

Ja, Spark unterstützt auch Deep Learning. Unterstützt wird Transfer Learning, Hyperparamenter Tuning sowie das Erstellen von Deep Learning Modellen in Keras oder Tensorflow. Da das Erstellen von Deep Learning auf verteilten Infrastrukturen noch in den Anfängen steckt, gibt es hier viel Bewegung im Markt und viele Unternehmen versuchen diese Problem zu lösen.

Eine Firma, die eine Spark basierte Lösung entwickelt, ist Logical Clocks aus Stockholm. Hier arbeitet ein geschätzter Kollege, der aktiv an der Logical Clocks Lösung Maggy arbeitet. Das Projekt zeigt vielversprechende Ergebnisse und wir können gespannt sein, was sich daraus entiwckelt.

Auch die Firma databricks arbeitet mit Hochdruck an der besseren Deep Learning Fähigkeit von Spark.

Ihr Ansprechparnter: Laurenz Wuttke

Wir entwickeln Künstliche Intelligenz, mit der Sie mehr aus Ihren Kundendaten machen – für wachsende Umsätze und eine nachhaltig hohe Kundenzufriedenheit.

Auch interessant für Sie