Utilisation de SnapLogic pour la préparation des données afin de simplifier l'apprentissage automatique dans Snowflake

Nidhi Gupta, Sr. Partner Solutions Architect, Amazon Web Services
10 minutes de lecture

Les organisations d'aujourd'hui recherchent des analyses prédictives pour les guider vers l'avenir. Chaque organisation a besoin de modèles d'apprentissage automatique personnalisés, conçus pour répondre à ses besoins spécifiques. Dans les services financiers, un modèle précieux permet de prédire quel emprunteur est le plus susceptible de ne pas rembourser son prêt, quel produit mutuel convient à un client, etc. Mais les ingénieurs et les scientifiques des données sont confrontés à un certain nombre de défis lorsqu'ils élaborent des modèles d'apprentissage automatique efficaces, tels que la mauvaise qualité de l'ensemble des données d'entraînement, le temps passé à préparer les données pour l'entraînement et les grandes quantités de données nécessaires pour entraîner les modèles.

Dans ce billet, nous allons explorer un cas d'utilisation d'un service financier consistant à évaluer les informations relatives à un prêt afin de prédire si un emprunteur va manquer à ses engagements. L'ensemble de données de base a été dérivé des données de prêt de LendingClub. Cet ensemble de données contient les données des prêteurs sur les prêts accordés aux particuliers. Les données seront ensuite enrichies par des données sur le chômage provenant de Knoema sur la place de marché de données Snowflake. Nous utilisons SnapLogic pour transformer et préparer les données qui pourront ensuite être utilisées pour construire des modèles ML.

Conditions préalables

Cet article part du principe que vous disposez des éléments suivants :

  • Le compte d'un flocon de neige
  • Données dans un tableau dans Snowflake
  • Un godet Amazon Simple Storage Service (Amazon S3) dans lequel SnapLogic peut charger le modèle ML créé.

Configurer la source de données dans SnapLogic

Dans cette section, nous abordons la configuration de Snowflake en tant que source de données dans SnapLogic. Ce billet suppose que vous avez accès à SnapLogic. Pour plus d'informations sur les prérequis, voir Getting Started with SnapLogic.

Créer un nouveau pipeline

Pour créer un pipeline, suivez les étapes suivantes :

  • Dans le Designer, cliquez sur l'icône [+] à gauche des onglets. La boîte de dialogue Configuration d'un nouveau pipeline s'ouvre.

    Fiche de propriété du gazoduc
    Figure 1 : Fiche de propriétés du pipeline

  • Modify the Label (pipeline name) and project for the pipeline if necessary. Unless otherwise noted, the names of any asset or project is limited to UTF-8 alphanumeric characters and these punctuation characters !”#$%&'()*+,-.:;<=>?@[\]^_`{|}~.
  • Si vous connaissez des paramètres à définir pour cette canalisation, vous pouvez le faire maintenant ou plus tard dans la boîte de dialogue Propriétés de la canalisation.
  • Si vous utilisez une bibliothèque d'expressions, vous pouvez l'ajouter maintenant ou plus tard dans la boîte de dialogue Propriétés de la pipeline.
  • Cliquez sur Enregistrer.

Ajouter Snowflake comme source de données dans SnapLogic

Ensuite, nous ajoutons Snowflake comme source de données.

  • Faites glisser un flocon de neige - Sélectionnez Snap sur le canevas et cliquez sur le Snap pour ouvrir ses paramètres. Cliquez sur l'onglet Compte. Vous pouvez maintenant en créer un nouveau.
  • Cliquez sur Ajouter un compte dans la boîte de dialogue Référence du compte.
  • Sélectionnez le lieu dans lequel vous souhaitez créer le compte, puis sélectionnez Compte de base de données Snowflake S3 comme type de compte, puis cliquez sur Continuer. La boîte de dialogue Ajouter un compte associée au type de compte apparaît.

    Définition du compte Snap en flocon de neige
    Figure 2 : Définition du compte Snap Snowflake

  • Cliquez sur Valider pour vérifier le compte, si le type de compte prend en charge la validation.
  • Cliquez sur Appliquer pour terminer la configuration du compte Snowflake.
  • Aller dans l'onglet Paramètres
    • Nous sélectionnons le tableau dans lequel nous avons déjà chargé les données de prêt de Lending Club.
Flocon de neige Sélectionner les paramètres de l'instantané
Figure 3 : Paramètres de Snowflake Select Snap
  • Pour le compte Snowflake, entrez :
    •  Nom du schéma
    • Nom du tableau
  • Fixer la limite du nombre de lignes à 1000
  • Appuyer sur l'icône Enregistrer

Ajouter des Snaps ML au pipeline pour l'apprentissage automatique à l'aide de SnapLogic

SnapLogic Data Science comprend les Snap Packs ML suivants pour accélérer les projets ML.

  • ML Data Preparation Snap Pack - Le ML Data Preparation Snap Pack automatise diverses tâches de préparation des données pour un modèle d'apprentissage automatique. SnapLogic Data Science simplifie le processus de préparation des données et d'ingénierie des fonctionnalités à l'aide d'une interface visuelle.
  • ML Core Snap Pack - Le ML Core Snap Pack accélère la construction, l'entraînement et le test de votre modèle d'apprentissage automatique. Tirez parti du ML Core Snap Pack pour rationaliser la phase d'entraînement et d'évaluation du modèle dans le cycle de vie de l'apprentissage automatique.
  • ML Analy tics Snap Pack - Le ML Analytics Snap Pack permet de créer plus rapidement de meilleurs ensembles de données d'entraînement pour vos modèles d'apprentissage automatique. Obtenez rapidement des informations sur vos données grâce au ML Analytics Snap Pack.
  • Natural Language Processing Snap Pack - Le Natural Language Processing Snap Pack effectue des opérations de traitement du langage naturel.

Supprimer les lignes contenant des valeurs manquantes

La première étape consiste à traiter les valeurs manquantes dans un ensemble de données en supprimant ou en imputant (remplaçant) les valeurs.

  • Faites glisser l'accroche Clean Missing Values sur le canevas et cliquez sur l'accroche pour ouvrir ses paramètres.
  • Ajouter les colonnes REVOL_UTIL pour supprimer les lignes du jeu de données entrant si la valeur est manquante.

    Nettoyer les valeurs manquantes Paramètres de l'instantané
    Figure 4 : Nettoyer les valeurs manquantes Paramètres de l'instantané

Transformer les données

Ensuite, nous voulons transformer les données entrantes à l'aide des mappings donnés et produire de nouvelles données de sortie. Ce Snap évalue une expression et écrit le résultat sur le chemin cible spécifié.

  • Faites glisser l'instantané du mappeur sur le canevas et cliquez sur l'instantané pour ouvrir ses paramètres.
  • En examinant les colonnes, nous constatons que MNTHS_SINCE_LAST_DELINQ et MNTHS_SINCE_LAST_RECORD devraient très probablement être représentés sous la forme d'un nombre plutôt que d'une chaîne.
  • En examinant les données, nous constatons que les champs EMP_TITLE, URL, DESCRIPTION et TITLE n'apporteront probablement pas de valeur à notre modèle dans notre cas d'utilisation, et nous les supprimons donc.
  • Ensuite, nous recherchons les colonnes qui sont des données de type chaîne et qui peuvent être formatées pour une utilisation ultérieure plus avantageuse. En examinant notre ensemble de données, nous pouvons voir que INT_RATE pourrait être utile dans un futur modèle en tant que float, mais qu'il a un caractère de fin de ligne de %. Avant de pouvoir utiliser une autre transformation intégrée (parse as type) pour le convertir en float, nous devons supprimer le caractère de fin.
  • Nous mettons ensuite à jour la valeur de la chaîne dans la colonne TERM, en remplaçant l'espace par "_".
  • Nous créons une nouvelle colonne booléenne LOAN_STATUS basée sur LOAN_DEFAULT.
  • Cliquez sur le signe [+] à côté de Mapping table pour ajouter une nouvelle expression. Transformation à appliquer pour convertir les données dans les colonnes :
    Expression* Trajectoire cible
    parseFloat(+$MNTHS_SINCE_LAST_DELINQ) MNTHS_SINCE_LAST_DELINQ
    parseFloat(+$MNTHS_SINCE_LAST_RECORD) MOIS_DEPUIS_LE_DERNIER_ENREGISTREMENT
    parseFloat(+$INT_RATE.replace("%", "")) $INT_RATE_PERCENTAGE
    $TERM.replace(" months ", " _months ") $TERM
    $EMP_TITLE
    $URL
    $DESCRIPTION
    TITRE ($TITLE)
    MOIS_DEPUIS_LE_DERNIER_DERNIER_MAJEUR_DEROG
    $LOAN_DEFAULT == 1 ? true:false $LOAN_DEFAULT_STATUS
  • Appuyer sur l'icône Enregistrer

    Paramètres du Mapper Snap
    Figure 5 : Paramètres de l'instantanéité du mappeur

Obtenir des données sur le travail à partir de la place de marché Snowflake

Nous allons maintenant ajouter des données sur l'emploi provenant de Snowflake Marketplace qui peuvent être utiles pour améliorer les modèles ML. Il peut être intéressant d'examiner les données relatives à l'emploi dans la région lors de l'analyse des défauts de paiement. Nous obtiendrons Knoema - Labor Data Atlas de Snowflake Marketplace à la base de données Snowflake où les données de chargement existent déjà.

Ensuite, nous ajoutons Snowflake comme source de données.

  • Faites glisser un flocon de neige - Exécuter l'instantané sur le canevas et cliquez sur l'instantané pour ouvrir ses paramètres. Cliquez sur l'onglet Compte.
  • Sélectionnez le compte créé à l'étape précédente dans le menu Référence du compte dialogue.

    Snowflake Select Sélection du compte Snap
    Figure 6 : Sélection du compte Snap de Snowflake Select

  • Aller dans l'onglet Paramètres

    Paramètres de l'instantané de sélection du flocon de neige
    Figure 7 : Paramètres de l'instantané de sélection du flocon de neige

  • Saisissez la requête SQL à exécuter pour récupérer les données de travail formatées du compte Snowflake :
    • Déclaration SQL
  • Appuyer sur l'icône Enregistrer

Données du profil

  • Faites glisser l'icône Copier sur le canevas. Laissez les paramètres par défaut.
  • Faites glisser l'instantané du profil sur le canevas. Cela permet d'effectuer une analyse statistique des données dans les ensembles de données.

Effectuer un encodage à chaud

Ensuite, nous voulons rechercher des données catégorielles dans notre ensemble de données. SnapLogic dispose des snaps nécessaires pour encoder les données catégorielles en utilisant à la fois l'encodage à un coup et l'encodage des nombres entiers. En regardant notre jeu de données, nous pouvons voir que les colonnes TERM, HOME_OWNERSHIP et PURPOSE semblent être de nature catégorielle.

  • Faites glisser l'accrochage Catégorique vers Numérique sur le canevas et cliquez sur l'accrochage pour ouvrir ses paramètres.
  • Dans les paramètres, sous Politique, entrez ces noms de colonnes comme Champ et sélectionnez Un encodage à chaud comme Règle.

    Catégorique à numérique Paramètres d'enclenchement
    Figure 8 : Paramètres de conversion de catégorique en numérique

Charger les données préparées dans Snowflake

Ensuite, nous ajoutons Snowflake comme source de données.

  • Faites glisser un Snap Snowflake - Bulk Load sur le Canvas et cliquez sur le Snap pour ouvrir ses paramètres. Cliquez sur l'onglet Compte.

    Snowflake Bulk Load Snap account settings
    Figure 9 : Paramètres du compte Snowflake Bulk Load Snap

  • Sélectionnez le compte créé à l'étape précédente dans la boîte de dialogue Référence du compte. Vous pouvez également créer un nouveau compte si vous souhaitez stocker le résultat dans une base de données et un entrepôt Snowflake différents.
  • Aller dans l'onglet Paramètres

    Snowflake Bulk Load Snap settings
    Figure 10 : Paramètres de l'instantané Snowflake Bulk Load

  • Saisissez la requête SQL à exécuter pour récupérer les données de travail formatées du compte Snowflake :
    • Nom du schéma
    • Nom du tableau
  • Appuyer sur l'icône Enregistrer

Voici une capture d'écran du pipeline de préparation des données de bout en bout créé dans SnapLogic.

Pipeline de données terminé dans SnapLogic
Figure 11 : Pipeline de données terminé dans SnapLogic

Lorsque le pipeline est exécuté, il charge les données dans Snowflake. Il peut être déclenché ou programmé.

Conclusion

Dans cet article, nous avons abordé la configuration de Snowflake en tant que source de données pour SnapLogic afin de construire un modèle pour le pipeline de prédiction de prêt, y compris la configuration du point de terminaison Snowflake dans SnapLogic, la construction d'un pipeline avec des Snaps d'apprentissage automatique, la récupération des données de Snowflake Marketplace, et enfin le chargement des données préparées dans Snowflake. J'espère que vous avez suivi et construit un modèle d'apprentissage automatique pour vos besoins commerciaux spécifiques en utilisant ce processus facile à utiliser dans SnapLogic.

Nidhi Gupta, Sr. Partner Solutions Architect, Amazon Web Services
Architecte de solutions partenaires senior chez Amazon Web Services
Utilisation de SnapLogic pour la préparation des données afin de simplifier l'apprentissage automatique dans Snowflake

Nous recrutons !

Découvrez votre prochaine grande opportunité de carrière.