[PYTHON] Faire des inférences à l'aide du modèle entraîné de scicit-learn dans PySpark

introduction

Lorsque vous effectuez un apprentissage automatique avec PySpark, la bibliothèque ML peut ne pas être entièrement fonctionnelle et vous pouvez utiliser une autre bibliothèque telle que scicit-learn.

L'apprentissage à ce moment-là doit être effectué séparément car le DataFrame de Spark ne le prend pas en charge en premier lieu, mais l'inférence peut être effectuée en douceur en utilisant UDF, elle est donc publiée comme un rappel.

manière

Si vous avez un modèle entraîné (image model: scikit-learn), procédez comme suit: «data» est le DataFrame des données d'inférence et «features» est la liste des variables explicatives.

Ici, le résultat prédit par model.predict (x) est retourné, et il est nécessaire de le remplacer par la fonction de prédiction du modèle créé le cas échéant. De même, si la valeur de retour est une valeur continue, changez-la en «DoubleType ()».

Inférence utilisant un modèle entraîné sur 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))

référence

Recommended Posts

Faire des inférences à l'aide du modèle entraîné de scicit-learn dans PySpark
Utiliser un modèle scikit-learn formé à PySpark
Comment faire un modèle pour la détection d'objets avec YOLO en 3 heures
Modèle de reconnaissance d'image utilisant l'apprentissage profond en 2016
Avantages de l'utilisation de slugfield dans le modèle Django
Faire de n'importe quelle clé la clé primaire dans le modèle Django
Modèle utilisant un réseau neuronal convolutif dans le traitement du langage naturel
Visualisation bidimensionnelle des vecteurs de documents à l'aide du modèle entraîné Word2Vec