[PYTHON] Machen Sie Schlussfolgerungen mit dem trainierten Modell des Scicit-Learn in PySpark

Einführung

Wenn Sie maschinelles Lernen mit PySpark durchführen, ist die ML-Bibliothek möglicherweise nicht voll funktionsfähig, und Sie möchten möglicherweise eine andere Bibliothek wie scicit-learn verwenden.

Das Lernen zu diesem Zeitpunkt muss separat durchgeführt werden, da der DataFrame von Spark dies überhaupt nicht unterstützt. Die Inferenz kann jedoch mithilfe von UDF reibungslos durchgeführt werden, sodass es als Erinnerung veröffentlicht wird.

Weise

Wenn Sie ein geschultes Modell haben (model: scikit-learn image), gehen Sie wie folgt vor: data ist der DataFrame der Inferenzdaten und features ist die Liste der erklärenden Variablen.

Hier wird das von model.predict (x) vorhergesagte Ergebnis zurückgegeben, und es muss gegebenenfalls durch die Vorhersagefunktion des erstellten Modells ersetzt werden. Wenn der Rückgabewert ein kontinuierlicher Wert ist, ändern Sie ihn in "DoubleType ()".

Inferenz mit einem trainierten Modell auf pyspark


import pandas as pd
from pyspark.sql.functions import pandas_udf
from pyspark.sql.types import IntegerType

@pandas_udf(returnType=IntegerType())
def predict_udf(*cols):
    X = pd.concat(cols, axis=1)
    return pd.Series(model.predict(X))

data.withColumn('predict', predict_udf(*features))

Referenz

Recommended Posts

Machen Sie Schlussfolgerungen mit dem trainierten Modell des Scicit-Learn in PySpark
Verwenden Sie ein in PySpark geschultes Scikit-Lernmodell
So erstellen Sie mit YOLO in 3 Stunden ein Modell für die Objekterkennung
Bilderkennungsmodell mit Deep Learning im Jahr 2016
Vorteile der Verwendung von Slugfield im Django-Modell
Machen Sie einen beliebigen Schlüssel zum Primärschlüssel im Django-Modell
Modell unter Verwendung eines Faltungsnetzwerks in der Verarbeitung natürlicher Sprache
Zweidimensionale Visualisierung von Dokumentvektoren mit einem von Word2Vec trainierten Modell