2014-06-13 18 views
6

Ich habe einen Spam-Klassifikator mit Pandas und Scikit entwickelt, um es in unser hadoop-basiertes System integrieren zu können. Zu diesem Zweck muss ich meinen Klassifikator in ein gebräuchlicheres Format als das Beizen exportieren.Exportieren eines Scikit Learn Random Forest für die Verwendung auf Hadoop Platform

Die Predictive Model Markup Language (PMML) ist mein bevorzugtes Exportformat. Es spielt hervorragend mit Cascading, das wir bereits verwenden. Ich finde jedoch überraschenderweise keine Python-Bibliotheken, die Scikit-Lern-Modelle in PMML exportieren.

Hat jemand Erfahrung mit diesem Anwendungsfall? Gibt es eine Alternative zu PMML, die Interoperabilität zwischen scikit-learn und hadoop ermöglichen würde? Was ist mit einer soliden PMML-Exportbibliothek?

+0

gibt es eine ähnliche Frage bei Quora http://www.quora.com/How-do-I-use-scikit-learn-with-Hadoop-and-Mapreduce – miraculixx

+0

Danke für die Eingabe. Die Verwendung der Streaming-API ist nicht ideal, aber ich muss möglicherweise darauf zurückgreifen, wenn alles andere fehlschlägt. –

+0

Spam-Klassifizierung wie in E-Mail-Spam? Wie bist du dazu gekommen, einen Random Forest zu benutzen? –

Antwort

9

Sie könnten Py2PMML verwenden, um das Modell in PMML zu exportieren und es anschließend in Hadoop mit JPMML-Cascading zu bewerten. JPMML ist Open Source, aber Py2PMML von Zementis scheint ein kommerzielles Produkt zu sein. Neben dieser Alternative gibt es keine anderen Tools, um Scikit-Modelle als PMML auf Java/Hadoop zu exportieren. Das Core-Scikit-Team ist planning, um jedoch einen PMML-Exporteur zu implementieren. Aber wenn Sie wollen keine kommerziellen Lösungen oder für ein solches Werkzeug warten Sie noch einige Optionen implementiert werden, aber sie erfordern einige Codierung:

  • anpassen Projekt, so dass es Java/MapReduce-Code generiert statt C.
  • Mit der export_graphviz Funktion erhalten Sie die DOT-Repräsentation jedes Entscheidungsbaumes und schreiben einen kleinen Java-Interpreter.
  • Vergessen Sie Java und Hadoop, verwenden Sie Apache Spark und bewerten Sie jeden der Entscheidungsbäume parallel mit Python, Scikit und PySpark.

Hoffe es hilft!

+2

Der Export von SkLearn-Modellen in PMML kann jetzt von der JPMML-SkLearn (https://github.com/jpmml/jpmml-sklearn) -Bibliothek/Befehlszeilenanwendung gehandhabt werden. Es ist viel robuster und einfacher zu bearbeiten als Py2PMML. – user1808924