Apache PredictionIO: Einfacheres maschinelles Lernen mit Spark

Die Apache Foundation hat ihrem Dienstplan ein neues Projekt für maschinelles Lernen hinzugefügt, Apache PredictionIO, eine Open-Source-Version eines Projekts, das ursprünglich von einer Tochtergesellschaft von Salesforce entwickelt wurde.

Was PredictionIO für maschinelles Lernen und Spark tut

Apache PredictionIO basiert auf Spark und Hadoop und liefert Spark-basierte Vorhersagen aus Daten mithilfe anpassbarer Vorlagen für allgemeine Aufgaben. Apps senden Daten an den Ereignisserver von PredictionIO, um ein Modell zu trainieren, und fragen dann die Engine nach Vorhersagen ab, die auf dem Modell basieren.

Spark, MLlib, HBase, Spray und Elasticsearch werden mit PredictionIO gebündelt. Apache bietet unterstützte SDKs für die Arbeit mit Java, PHP, Python und Ruby. Daten können in einer Vielzahl von Back-Ends gespeichert werden: JDBC, Elasticsearch, HBase, HDFS und ihre lokalen Dateisysteme werden standardmäßig unterstützt. Backends sind steckbar, sodass ein Entwickler einen benutzerdefinierten Backend-Connector erstellen kann.

Wie PredictionIO-Vorlagen es einfacher machen, Vorhersagen von Spark bereitzustellen

Der bemerkenswerteste Vorteil von PredictionIO ist das Vorlagensystem zum Erstellen von Engines für maschinelles Lernen. Vorlagen reduzieren das schwere Heben, das zum Einrichten des Systems für bestimmte Arten von Vorhersagen erforderlich ist. Sie beschreiben alle Abhängigkeiten von Drittanbietern, die für den Job erforderlich sein könnten, z. B. das App-Framework für maschinelles Lernen von Apache Mahout.

Einige vorhandene Vorlagen umfassen:

  • Eine universelle Empfehlungsmaschine.
  • Textklassifizierung.
  • Überlebensanalyse (für Vorhersagen zwischen Ausfallzeiten).
  • Beschriften von Themen mit Wikipedia als Wissensbasis.
  • Ähnlichkeitsanalyse.

Einige Vorlagen lassen sich auch in andere Produkte für maschinelles Lernen integrieren. Beispielsweise verwenden zwei der Vorhersagevorlagen, die sich derzeit in der Galerie von PredictionIO befinden, für die Erkennung der Abwanderungsrate und allgemeine Empfehlungen die Sparkling Water-Verbesserungen von H2O.ai für Spark.

PredictionIO kann auch automatisch eine Vorhersage-Engine auswerten, um die besten Hyperparameter zu ermitteln, die damit verwendet werden können. Der Entwickler muss Metriken dafür auswählen und festlegen, aber dies erfordert im Allgemeinen weniger Arbeit als das manuelle Einstellen von Hyperparametern.

Bei der Ausführung als Dienst kann PredictionIO Vorhersagen einzeln oder als Stapel akzeptieren. Batch-Vorhersagen werden automatisch über einen Spark-Cluster parallelisiert, solange die in einem Batch-Vorhersage-Job verwendeten Algorithmen alle serialisierbar sind. (Die Standardalgorithmen von PredictionIO sind.)

Wo kann ich PredictionIO herunterladen?

Der Quellcode von PredictionIO ist auf GitHub verfügbar. Zur Vereinfachung stehen verschiedene Docker-Images sowie ein Heroku-Build-Pack zur Verfügung.