Chaque semaine, découvrez de nouvelles astuces et bonnes pratiques pour devenir un expert !
Voir l'indexDans cet article, nous ferons l'intégration d'un modèle disponible dans la librairie scikit-learn.
L'objectif étant de montrer comment l'intégration du code peut se faire et quelle est la manière pour envoyer les données à l'outil Python et récupérer les résultats.
Les bénéfices à utiliser Alteryx Designer pour la préparation des données sont multiples :
Afin d'illustrer notre propos, nous utiliserons un exemple de prédiction du niveau de satisfaction de la population en fonction d'un indicateur de santé économique d'un pays comme le PIB par habitant.
(Cet exemple est tiré du Livre d'Aurélien Géron Hands-On Machine Learning with Scikit-Learn and TensorFlow).
Tout d'abord, commençons par examiner les données. Nous avons deux fichiers:
Exemple des données de PIB:
Exemple des données de l'OCDE:
La première étape va consister à préparer les données pour les associer.
Voici où nous en sommes:
Imaginons maintenant que nous cherchons à prédire l'indice de satisfaction de Chypre en fonction du PIB par habitant qui est de 22587 en 2015).
Nous créons cette entrée de donnée avec un Text Input et nous renseignons les informations :
Puis nous connectons maintenant l'outil Python qui va recevoir à la fois les données d'entrainement et les données à scorer.
Voici enfin le code Python du modèle (ici documentation de l'outil Pyhton), à noter que la librairie scikit-learn est incluse en standard dans l'outil.
from ayx import Alteryx
import numpy as np
import pandas as pd
import sklearn.linear_model
#Load the data from Alteryx WF
df=Alteryx.read("#1")
newdata=Alteryx.read("#2")
# Prepare the data
X = np.c_[df["GDP per capita"]]
y = np.c_[df["Life satisfaction"]]
# Select a linear model
model = sklearn.linear_model.LinearRegression()
# Train the model
model.fit(X, y)
# Make a prediction for New Data coming from #2 Alteryx Connection
X_new = pd.DataFrame(newdata["GDP per capita"])
dfres=pd.DataFrame((model.predict(X_new)))
#Write to Alteryx WF output #1
Alteryx.write(dfres,1)
Explications:
Les instructions df=Alteryx.read("#1") et newdata=Alteryx.read("#2") permettent de lire les données en provenance des connexions #1 et #2 (respectivement sortie de la jointure et Text Input) sous forme de DataFrame. Le DataFrame est une structure de donnée très courant en Python et lors de l'utilisation de modèles de Machine Learning.
Plus de littérature sur les structures DataFrame ici.
Nous utilisons ensuite la librairie numpy pour accéder aux deux colonnes de données qui nous intéressent (le PIB pour l'ensemble des pays et le PIB pour Chypre).
Plus d'information sur numpy ici.
La suite du code contient :
Finalement, le résultat est ensuite renvoyé au workflow dans le connecteur n°1 de l'outil python à l'aide de l'instruction :
Vous pouvez ensuite sauvegarder le résultat dans un fichier.yxdb par exemple.
Voici le workflow finalisé :
N'hésitez pas à envoyer vos commentaires ou difficultés à faire fonctionner cet exemple.
Pour ajouter un commentaire ici, vous devez être inscrit. Si vous êtes déjà inscrit, connectez-vous. Dans le cas contraire, inscrivez-vous puis connectez-vous.