Mise en route / Ateliers / …
Génération de prédictions de machine learning sans écrire de code
GUIDE DE MISE EN ROUTE
Présentation
Qu'allez-vous apprendre ?
Avec ce guide, vous allez :
- Importer des jeux de données
- Sélectionner la variable cible pour la classification
- Inspecter visuellement les jeux de données
- Créer un modèle de ML avec la fonctionnalité de création rapide de SageMaker Canvas
- Comprendre les caractéristiques et les métriques du modèle
- Générer et comprendre des prédictions globales et individuelles
Prérequis
Pour pouvoir démarrer ce guide, vous avez besoin de ce qui suit :
- Un compte AWS : si vous n'en avez pas encore, suivez les instructions du guide de mise en route Configuration de votre environnement pour une présentation rapide.
Expérience AWS
Débutant
Durée
20 minutes
Coût de réalisation
Consultez la tarification de SageMaker Canvas pour estimer le coût de ce didacticiel.
Éléments requis
Vous devez être connecté à un compte AWS.
Services utilisés
Amazon SageMaker Canvas
Date de la dernière mise à jour
28 juin 2022
Cas d'utilisation
Dans ce didacticiel, vous créez un modèle de ML capable de prédire l'heure d'arrivée prévue (ETA) des expéditions (mesurée en jours). Vous utilisez un jeu de données qui contient des données d'expédition complètes pour les produits livrés, notamment l'heure estimée, l'expédition, la priorité, le transporteur et l'origine.
Étape 1 : configuration du domaine Amazon SageMaker Studio
Un compte AWS ne peut avoir qu'un seul domaine SageMaker Studio par région AWS. Si vous possédez déjà un domaine SageMaker Studio dans la région USA Est (Virginie du Nord), suivez le Guide de configuration de SageMaker Studio pour joindre les politiques AWS IAM requises à votre compte SageMaker Studio, puis sautez l'étape 1 et passez directement à l'étape 2.
Si vous ne disposez pas d'un domaine SageMaker Studio existant, poursuivez avec l'étape 1 pour exécuter un modèle AWS CloudFormation qui crée un domaine SageMaker Studio et ajoute les autorisations requises pour la suite de ce didacticiel.
Choisissez le lien de la pile AWS CloudFormation. Ce lien ouvre la console AWS CloudFormation et crée votre domaine SageMaker Studio ainsi qu'un utilisateur nommé studio-user. Il ajoute également les autorisations requises à votre compte SageMaker Studio. Dans la console CloudFormation, confirmez que USA Est (Virginie du Nord) est la région affichée dans le coin supérieur droit. Le nom de la pile doit être CFN-SM-IM-Lambda-Catalog, et ne doit pas être modifié. Cette pile prend environ 10 minutes pour créer toutes les ressources.
Cette pile repose sur l'hypothèse que vous avez déjà configuré un VPC public dans votre compte. Si vous ne disposez pas d'un VPC public, veuillez consulter la rubrique VPC with a single public subnet (VPC avec un seul sous-réseau public) pour savoir comment créer un VPC public.
Sélectionnez I acknowledge that AWS CloudFormation might create IAM resources (J'accepte qu'AWS CloudFormation puisse créer des ressources IAM), puis choisissez Create stack (Créer la pile).
Dans le volet CloudFormation, choisissez Stacks (Piles). Il faut environ 10 minutes pour que la pile soit créée. Lorsque la pile est créée, son statut doit passer de CREATE_IN_PROGRESS (Création en cours) à CREATE_COMPLETE (Création terminée).
Étape 2 : connexion à SageMaker Canvas et chargement du jeu de données dans le compartiment Amazon S3
Saisissez SageMaker Canvas dans la barre de recherche de la console AWS et accédez à SageMaker Canvas.
Choisissez Canvas dans le panneau de configuration du volet gauche, puis choisissez USA Est (Virginie du Nord) dans la liste déroulante Region (Régions) en haut à droite.
- Sur la page SageMaker Canvas, choisissez Launch SageMaker Canvas (Lancer SageMaker Canvas).
- Sur la page du panneau de configuration, sélectionnez Canvas dans la liste déroulante Lancer l'application à côté de studio-user.
- L'écran de Creating application (Création de l'application) SageMaker Canvas s'affiche. L'application prend quelques minutes pour se charger.
Si c'est la première fois que vous utilisez SageMaker dans la région USA-Est 1, SageMaker Canvas crée un compartiment Amazon S3 avec un nom qui utilise le modèle suivant : sagemaker-<votre-région>-<votre-identifiant-de-compte>. Avant de poursuivre avec le reste du didacticiel, téléchargez les jeux de données ci-dessous et enregistrez-les sur votre ordinateur local. Vous chargez ensuite les jeux de données dans le compartiment S3 par défaut que SageMaker Canvas a créé pour vous.
Téléchargez le journal d'expédition synthétique et les jeux de données des produits.
Dans la barre de recherche de la console AWS, saisissez S3, puis sélectionnez S3.
Lorsque la console S3 s'ouvre, vous pouvez trouver votre compartiment par défaut que SageMaker Canvas a créé pour vous dans la section Buckets (Compartiments). Choisissez le compartiment nommé sagemaker-<votre-région>-<votre-identifiant-de-compte> et sur la page suivante, choisissez Upload (Charger).
Sur la page Upload (Charger), choisissez Add files (Ajouter des fichiers) et sélectionnez les deux jeux de données que vous avez téléchargés à l'étape précédente. Faites défiler jusqu'au bas de la page, puis choisissez Upload (Charger). SageMaker Canvas accède à ces fichiers avant de créer le modèle.
Étape 3 : configuration de SageMaker Canvas pour créer automatiquement des modèles
Importez des données dans SageMaker Canvas pour une inspection visuelle et pour créer des modèles.
Importez le jeu de données dans SageMaker Canvas.
- Dans l'interface SageMaker Canvas, choisissez Datasets (Jeux de données) dans le volet de gauche, puis choisissez + Import (Importer).
- Sélectionnez le compartiment Amazon S3 nommé sagemaker-<votre-région>-<votre-identifiant-de-compte> dans lequel vous avez chargé les jeux de données à l'étape précédente. Sélectionnez les jeux de données shipping_logs.csv et product_descriptions.csv en cochant les cases à leur gauche. Deux nouveaux boutons apparaissent au bas de votre page : Preview all (Prévisualiser tout) et Import Data (Importer des données). Choisissez Preview all (Prévisualiser tout). Cela vous permet de voir un aperçu de 100 lignes des jeux de données.
- Après avoir vérifié les jeux de données, choisissez Import data (Importer des données) pour les importer dans SageMaker Canvas.
Sur la page SageMaker Canvas, dans la section Datasets (Jeux de données), vous trouvez les deux jeux de données que vous avez importés. Choisissez Join data (Joindre les données).
Sur la page Join Datasets (Joindre les jeux de données), faites glisser les deux jeux de données du panneau de gauche vers le panneau de droite. Sélectionnez l'icône de jointure entre les deux jeux de données. Une fenêtre pop-up montrant les détails de la jointure apparaît. Assurez-vous que le type de jointure est Inner et que la colonne de jointure est ProductId. Sélectionnez Save & close (Enregistrer et fermer), puis Import data (Importer des données).
- Dans la boîte de dialogue Import data (Importer des données), saisissez le nom ConsolidatedShippingData dans le champ Import dataset name (Nom du jeu de données à importer) et sélectionnez Import data (Importer des données).
Étape 4 : création, entraînement et analyse d'un modèle de ML
Configurez la variable cible, inspectez visuellement les propriétés des données et lancez le processus de création du modèle.
Dans l'interface utilisateur de SageMaker Canvas, choisissez Models (Modèles), puis + New model (Nouveau modèle). Dans la boîte de dialogue Create new model (Créer un modèle), saisissez ShippingForecast dans le champ Model name (Nom du modèle) et choisissez Create (Créer).
La page d'affichage du modèle se compose de 4 onglets qui représentent les étapes à suivre pour créer un modèle et obtenir des prédictions. Les onglets sont :
- Select (Sélectionner) : configurer les données d'entrée.
- Build (Créer) : créer le modèle ML.
- Analyze (Analyser) : analyser la sortie et les caractéristiques du modèle.
- Predict (Prédire) : exécuter des prédictions en vrac ou sur un seul échantillon.
Dans l'onglet Select (Sélectionner), sélectionnez le bouton radio correspondant au jeu de données ConsolidatedShippingData que vous avez créé à l'étape précédente. Ce jeu de données contient 16 colonnes et 10 000 lignes. Il contient également une description de haut niveau de la forme et de la taille du jeu de données. Choisissez Select dataset (Sélectionner un jeu de données).
Après avoir sélectionné le jeu de données, SageMaker Canvas passe automatiquement à la phase Build (Créer). Dans cet onglet, choisissez la colonne cible, qui est ActualShippingDays dans cet exemple. Comme cette colonne contient le nombre historique de jours nécessaires à l'arrivée des marchandises, elle peut être utilisée comme colonne cible.
- Une fois la colonne cible sélectionnée, SageMaker Canvas tente automatiquement de déduire le type de problème. Puisque vous souhaitez savoir combien de jours il faudra pour que les marchandises arrivent chez le client, il s'agit d'un problème de régression ou de prédiction numérique. La régression permet d'estimer les valeurs d'une variable cible dépendante en fonction d'une ou plusieurs autres variables ou attributs qui sont corrélés avec elle. Dans ce cas, SageMaker Canvas peut initialement prédire que ce cas d'utilisation est un problème du genre Time series forecasting type (Type de prévisions de séries temporelles) car il a détecté une colonne avec des dates dans le jeu de données. Cependant, vous pouvez changer le genre de problème en Numeric model type (Type de modèle numérique) en le sélectionnant manuellement avec le lien Change type (Changer de type) au centre de la page.
- Remarquez que la corrélation des colonnes XShippingDistance et YShippingDistance avec la cible est négligeable.
- Puisque les caractéristiques ayant une corrélation négligeable avec la cible ne sont pas assez informatives pour la tâche de prédiction en cours, vous pouvez supprimer les colonnes XShippingDistance, YShippingDistance, ProductID et OrderID, car elles contiennent des clés primaires et ne sont pas censées contenir des informations pertinentes. Les cases à cocher correspondantes peuvent être désélectionnées.
- Vous pouvez sélectionner l'icône des barres verticales pour inspecter les distributions des colonnes. Ceci est très utile pour mettre en évidence les déséquilibres et les biais potentiels dans les données.
Pour les besoins de ce didacticiel, choisissez Quick build (Création rapide) pour commencer à créer des modèles. Ce processus prend moins de 5 minutes.
Une fois la création du modèle terminée, SageMaker Canvas passe automatiquement à l'onglet Analyze (Analyser) pour afficher les résultats de l'entraînement rapide. Le modèle SageMaker Canvas créé à l'aide de Quick build peut prédire le nombre de jours d'expédition à +/-1,2333 jour près de la valeur réelle. Le machine learning introduit une certaine stochasticité dans le processus d'entraînement des modèles, ce qui peut conduire à des résultats différents selon les modèles créés. Par conséquent, les performances exactes en termes de métriques que vous voyez peuvent être différentes.
Sous l'onglet Overview (Aperçu), SageMaker Canvas affiche l'impact de la colonne ou l'importance estimée de chaque colonne d'entrée dans la prédiction de la colonne cible. Dans cet exemple, la colonne ExpectedShippingDays a l'impact le plus significatif sur la prédiction du nombre de jours d'expédition. Sur le panneau de droite, vous pouvez également voir la direction de l'impact d'une caractéristique. Par exemple, plus la valeur de ExpectedShippingDays est élevée, plus son impact sur la prédiction du nombre de jours d'expédition est positif.
Sous l'onglet Scoring (Notation), vous pouvez voir un graphique représentant la ligne de régression la mieux ajustée pour ActualshippingDays. En moyenne, la prédiction du modèle présente une différence de +/- 1,2333 par rapport à la valeur réelle de ActualShippingDays. La section Scoring (Notation) pour la prédiction numérique montre une ligne pour indiquer la valeur prédite du modèle par rapport aux données utilisées pour faire les prédictions. Les valeurs de la prédiction numérique sont souvent +/- la valeur RMSE (root mean squared error, erreur quadratique moyenne). La valeur que le modèle prédit se situe souvent dans la fourchette de l'erreur quadratique moyenne (RMSE). La largeur de la bande violette autour de la ligne indique la plage de l'erreur quadratique moyenne (RMSE). Les valeurs prédites se situent souvent dans cette fourchette. Pour mieux comprendre les performances du modèle, sélectionnez le lien Advanced metrics (Métriques avancées) sur la droite pour afficher la page des Advanced metrics (Métriques avancées).
- Les différentes métriques affichées sur la page des Advanced metrics (Métriques avancées) sont R2, l'erreur absolue moyenne (MAE, Mean Absolute Error), le pourcentage d'erreur absolue moyenne (MAPE, Mean Absolute Percentage Error) et l'erreur quadratique moyenne (RMSE). La page des métriques avancées présente également des graphiques permettant une inspection visuelle des performances du modèle. Une image montre un graphique des résidus ou des erreurs. La ligne horizontale indique une erreur de 0 ou une prédiction parfaite. Les points bleus représentent les erreurs. Leur distance par rapport à la ligne horizontale indique l'ampleur des erreurs.
- En faisant défiler la page des Advanced metrics (Métriques avancées), vous pouvez voir un graphique de densité d'erreurs qui montre la distribution des erreurs et leur dispersion par rapport aux valeurs MAE et RMSE du modèle. Une densité d'erreur dont la forme est similaire à une distribution normale indique une bonne performance du modèle.
Étape 5 : génération des prédictions du modèle
Maintenant que vous disposez d'un modèle de régression, vous pouvez soit utiliser le modèle pour effectuer des prédictions, soit créer une nouvelle version de ce modèle pour l'entraîner avec le processus de construction standard. Au cours de cette étape, vous utilisez SageMaker Canvas pour générer des prédictions sur des jeux de données individuels ou en masse.
Pour commencer à générer des prédictions, choisissez l'onglet Predict (Prédire).
- Choisissez le bouton Predict (Prédire) en bas de la page Analyze (Analyser), ou choisissez l'onglet Predict. Sur la page Predict, la Batch prediction (Prédiction par lot) est déjà sélectionnée. Choisissez Select dataset (Sélectionner un jeu de données), puis sélectionnez le jeu de données ConsolidatedShippingData. Dans les flux de travail de ML réels, ce jeu de données doit être séparé du jeu de données d'entraînement. Toutefois, pour plus de simplicité, vous utiliserez le même jeu de données pour montrer comment SageMaker Canvas génère des prédictions. Choisissez Generate predictions (Générer des prédictions).
- Après quelques secondes, la prédiction est terminée. Choisissez l'icône des options et sélectionnez preview (aperçu) pour voir un aperçu des prédictions en passant la souris sur le nom ou l'état du jeu de données des prédictions. Vous pouvez également choisir Download (Télécharger) pour télécharger un fichier CSV contenant le résultat complet. SageMaker Canvas renvoie une prédiction pour chaque ligne de données. Dans ce didacticiel, la caractéristique la plus importante est ExpectedShippingDays. Elle est également présentée à côté des prédictions pour une comparaison visuelle.
- Sur la page Predict (Prédire), vous pouvez générer des prédictions pour un seul échantillon en sélectionnant Single prediction (Prédiction unique). SageMaker Canvas présente une interface dans laquelle vous pouvez saisir manuellement les valeurs de chacune des variables d'entrée utilisées dans le modèle. Ce type d'analyse est idéal pour les scénarios de type « what-if » (scénarios hypothétiques) où vous voulez savoir comment la prédiction change lorsqu'une ou plusieurs variables augmentent ou diminuent en valeur. Grâce à la prédiction de l'ensemble unique de valeurs de colonnes, SageMaker Canvas fournit l'importance individuelle des caractéristiques. Ceci indique les colonnes ayant la plus grande influence sur la prédiction de l'échantillon actuel.
Dans le cadre de ce didacticiel, le modèle standard n'est pas abordé. Cependant, l'entraînement dans ce mode est similaire aux étapes décrites dans ce didacticiel.
Vous pouvez commencer par donner un nom au modèle, tel que ShippingForecastStandardModel. En outre, dans l'onglet Build (Créer), vous pouvez choisir Standard Model (Modèle standard) au lieu de Quick Model (Modèle rapide). À partir de là, procédez aux étapes restantes. Le mode de création standard offre la fonctionnalité supplémentaire de pouvoir partager le modèle entraîné avec les scientifiques des données via SageMaker Studio. Cela permet la collaboration, le raffinement rapide du modèle et les itérations. L'option de partage est disponible dans l'onglet Analyze (Analyser) une fois l'entraînement du modèle terminé.
Étape 6 : nettoyage de vos ressources AWS
Une bonne pratique consiste à supprimer les ressources que vous n'utilisez plus afin de ne pas encourir de frais imprévus.
Accédez à la console S3 et sélectionnez l'option de menu Buckets (Compartiments).
Supprimez l'objet de test de votre compartiment de test. Sélectionnez le nom du compartiment avec lequel vous avez travaillé pour ce didacticiel. Cochez la case située à gauche du nom de votre objet de test, puis sélectionnez le bouton Delete (Supprimer). Sur la page Delete objects (Supprimer des objets), vérifiez que vous avez sélectionné le bon objet à supprimer et tapez permanently delete (supprimer définitivement) dans la case de confirmation des Permanently delete objects (Supprimer définitivement des objets). Ensuite, sélectionnez le bouton Delete object (Supprimer l'objet) pour continuer. Ensuite, une bannière vous indique si la suppression a réussi.
Sur la page principale de SageMaker Canvas, choisissez Models (Modèles). Dans le volet de droite, le modèle que vous avez créé est visible. Choisissez l'ellipse verticale à droite de l'option View (Afficher) et sélectionnez Delete model (Supprimer le modèle).
Dans la console SageMaker Studio, sélectionnez studio-user et pour chaque application listée sous Apps (Applications), choisissez Delete app (Supprimer l'application). Suivez les instructions à l'écran pour confirmer l'opération de suppression. Attendez jusqu'à ce que le statut indique Deleted (Supprimé).
Si vous avez utilisé un domaine SageMaker Studio existant à l'étape 1, ignorez le reste de l'étape 6 et passez directement à la section de conclusion.
Si vous avez exécuté le modèle CloudFormation à l'étape 1 pour créer un domaine SageMaker Studio, poursuivez les étapes suivantes pour supprimer le domaine, l'utilisateur et les ressources créés par le modèle CloudFormation.
Pour ouvrir la console CloudFormation, saisissez CloudFormation dans la barre de recherche de la console AWS, puis choisissez CloudFormation dans les résultats de la recherche.
Dans le volet CloudFormation, choisissez Stacks (Piles). Dans la liste déroulante Status (Statut), sélectionnez Active (Actif). Sous Stack name (Nom de la pile), choisissez CFN-SM-IM-Lambda-Catalog pour ouvrir la page des détails de la pile.
Sur la page de détails de la pile CFN-SM-IM-Lambda-Catalog, choisissez Delete (Supprimer) pour supprimer la pile ainsi que les ressources qu'elle a créées à l'étape 1.
Conclusion
Félicitations ! Vous avez terminé le didacticiel Génération de prédictions de machine learning sans écrire de code.
Vous avez utilisé avec succès Amazon SageMaker Canvas pour importer et préparer un jeu de données pour le ML depuis Amazon S3, sélectionner la variable cible, créer un modèle de ML à l'aide du mode de création rapide et utiliser l'interface visuelle.
Prochaines étapes
Entraîner un modèle de machine learning
Étiqueter les données d'entraînement pour le machine learning