Créez une tâche de régression ou de classification pour les données tabulaires à l'aide de l'API AutoML - Amazon SageMaker

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez une tâche de régression ou de classification pour les données tabulaires à l'aide de l'API AutoML

Vous pouvez créer une expérience Autopilot pour les données tabulaires par programmation en appelant l'action de l'API CreateAutoMLJobV2 dans n'importe quel langage pris en charge par Autopilot ou AWS CLI.

Pour plus d'informations sur la façon dont cette action d'API se traduit par une fonction dans le langage de votre choix, consultez la section Voir aussi de CreateAutoMLJobV2 et choisissez un kit SDK. À titre d'exemple, pour les utilisateurs de Python, consultez la syntaxe complète des demandes de create_auto_ml_job_v2 dans le kit AWS SDK for Python (Boto3).

Note

CreateAutoMLJobv2 et DescribeAutoMLJobv2 sont de nouvelles versions de CreateAutoMLJob et DescribeAutoMLJob qui offrent une rétrocompatibilité.

Nous vous recommandons d'utiliser CreateAutoMLJobV2. CreateAutoMLJobV2 peut gérer des types de problèmes tabulaires identiques à ceux de sa version précédente CreateAutoMLJob, ainsi que des types de problèmes non tabulaires, tels que la classification d'image ou de texte, et les prédictions de séries temporelles.

Au minimum, toutes les expériences sur des données tabulaires nécessitent de spécifier le nom de l'expérience, de fournir des emplacements pour les données d'entrée et de sortie, et de spécifier les données cibles à prévoir. Vous pouvez également éventuellement spécifier le type de problème que vous souhaitez résoudre (régression, classification, classification multiclasse), choisir votre stratégie de modélisation (ensembles empilés ou optimisation des hyperparamètres), sélectionner la liste des algorithmes utilisés par la tâche de pilote automatique pour entraîner les données, etc.

Une fois l'expérience exécutée, vous pouvez comparer les essais et étudier en détail les étapes de prétraitement, les algorithmes et les plages d'hyperparamètres de chaque modèle. Vous avez également la possibilité de télécharger leurs rapports d'explicabilité et de performance. Utilisez les blocs-notes fournis pour voir les résultats de l'exploration automatique des données ou les définitions de modèles candidats.

Vous trouverez ci-dessous un ensemble de paramètres de demande d'entrée obligatoires ou facultatifs pour l'action d'API CreateAutoMLJobV2. Vous pouvez trouver les informations alternatives pour la version précédente de cette action, CreateAutoMLJob. Toutefois, nous vous recommandons d'utiliser CreateAutoMLJobV2.

Trouvez les instructions indiquant comment migrer CreateAutoMLJob vers CreateAutoMLJobV2 dans Migrer un CreateAuto MLJob vers MLJobv2 CreateAuto.

Paramètres requis

CreateAutoMLJobV2

Lorsque vous appelez CreateAutoMLJobV2 pour créer une expérience Autopilot pour des données tabulaires, vous devez fournir les valeurs suivantes :

  • Un paramètre AutoMLJobName pour spécifier le nom de votre tâche.

  • Au moins un paramètre AutoMLJobChannel dans AutoMLJobInputDataConfig pour spécifier votre source de données.

  • À la fois une métrique AutoMLJobObjective et le type de problème d'apprentissage supervisé que vous avez choisi (classification binaire, classification multi-classes, régression) dans AutoMLProblemTypeConfig, ou aucun des deux. Pour les données tabulaires, vous devez choisir TabularJobConfig comme type de AutoMLProblemTypeConfig. Vous définissez le problème d'apprentissage supervisé dans l'attribut ProblemType de TabularJobConfig.

  • Un élément OutputDataConfig pour spécifier le chemin de sortie Amazon S3 pour stocker les artefacts de votre tâche AutoML.

  • Un élément RoleArn pour spécifier l'ARN du rôle utilisé pour accéder à vos données.

CreateAutoMLJob

Lorsque vous appelez CreateAutoMLJob pour créer une expérience AutoML, vous devez fournir les quatre valeurs suivantes :

  • Un paramètre AutoMLJobName pour spécifier le nom de votre tâche.

  • Au moins un paramètre AutoMLChannel dans InputDataConfig pour spécifier votre source de données.

  • Un élément OutputDataConfig pour spécifier le chemin de sortie Amazon S3 pour stocker les artefacts de votre tâche AutoML.

  • Un élément RoleArn pour spécifier l'ARN du rôle utilisé pour accéder à vos données.

Tous les autres paramètres sont facultatifs.

Paramètres facultatifs

Les sections suivantes fournissent des détails sur certains paramètres facultatifs que vous pouvez transmettre à votre action d'API CreateAutoMLJobV2 lorsque vous utilisez des données tabulaires. Vous pouvez trouver les informations alternatives pour la version précédente de cette action, CreateAutoMLJob. Toutefois, nous vous recommandons d'utiliser CreateAutoMLJobV2.

Pour les données tabulaires, l'ensemble d'algorithmes exécutés sur vos données pour entraîner vos modèles candidats dépend de votre stratégie de modélisation (ENSEMBLING ou HYPERPARAMETER_TUNING). Vous trouverez ci-dessous des informations sur la façon de définir ce mode d'entraînement.

Si vous laissez le champ vide (ou null), le Mode est déduit en fonction de la taille de votre jeu de données.

Pour plus d'informations sur les méthodes d'entraînement d'Autopilot par ensembles empilés et par optimisation des hyperparamètres, consultez Modes d'entraînement et prise en charge des algorithmes

CreateAutoMLJobV2

Pour les données tabulaires, vous devez choisir TabularJobConfig comme type de AutoMLProblemTypeConfig.

Vous pouvez définir la méthode d'entraînement d'une tâche AutoML V2 à l'aide du paramètre TabularJobConfig.Mode.

CreateAutoMLJob

Vous pouvez définir la méthode d'entraînement d'une tâche AutoML à l'aide du paramètre AutoMLJobConfig.Mode.

Sélection des fonctionnalités

Autopilot fournit des étapes de prétraitement automatique des données, notamment la sélection et l'extraction des fonctionnalités. Toutefois, vous pouvez fournir manuellement les fonctionnalités à utiliser lors de l'entraînement avec l'attribut FeatureSpecificatioS3Uri.

Les fonctionnalités sélectionnées doivent être contenues dans un fichier JSON au format suivant :

{ "FeatureAttributeNames":["col1", "col2", ...] }

Les valeurs répertoriées dans ["col1", "col2", ...] ne sont pas sensibles à la casse. Il doit s'agir d'une liste de chaînes contenant des valeurs uniques qui sont des sous-ensembles des noms de colonnes dans les données d'entrée.

Note

La liste des colonnes fournies en tant que fonctionnalités ne peut pas inclure la colonne cible.

CreateAutoMLJobV2

Pour les données tabulaires, vous devez choisir TabularJobConfig comme type de AutoMLProblemTypeConfig.

Vous pouvez définir l'URL sur les fonctionnalités que vous avez sélectionnées à l'aide du paramètre TabularJobConfig.FeatureSpecificatioS3Uri.

CreateAutoMLJob

Vous pouvez définir l'FeatureSpecificatioS3Uriattribut AutoML CandidateGenerationConfig dans l'API CreateAutoMLJob au format suivant :

{ "AutoMLJobConfig": { "CandidateGenerationConfig": { "FeatureSpecificationS3Uri":"string" }, } }

Sélection des algorithmes

Par défaut, votre tâche Autopilot exécute une liste prédéfinie d'algorithmes sur votre jeu de données afin d'entraîner les modèles candidats. La liste des algorithmes dépend du mode d'entraînement (ENSEMBLING ou HYPERPARAMETER_TUNING) utilisé par la tâche.

Vous pouvez fournir un sous-ensemble de la sélection par défaut d'algorithmes.

CreateAutoMLJobV2

Pour les données tabulaires, vous devez choisir TabularJobConfig comme type de AutoMLProblemTypeConfig.

Vous pouvez spécifier un tableau de sélectionnés AutoMLAlgorithms dans l'AlgorithmsConfigattribut de CandidateGenerationConfig.

Voici un exemple d'attribut AlgorithmsConfig répertoriant exactement trois algorithmes (« xgboost », « fastai », « catboost ») dans son champ AutoMLAlgorithms pour le mode d'entraînement ensembliste.

{ "AutoMLProblemTypeConfig": { "TabularJobConfig": { "Mode": "ENSEMBLING", "CandidateGenerationConfig": { "AlgorithmsConfig":[ {"AutoMLAlgorithms":["xgboost", "fastai", "catboost"]} ] }, }, }, }
CreateAutoMLJob

Vous pouvez spécifier un tableau de selected AutoMLAlgorithms dans l'AlgorithmsConfigattribut de AutoML CandidateGenerationConfig.

Voici un exemple d'attribut AlgorithmsConfig répertoriant exactement trois algorithmes (« xgboost », « fastai », « catboost ») dans son champ AutoMLAlgorithms pour le mode d'entraînement ensembliste.

{ "AutoMLJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig":[ {"AutoMLAlgorithms":["xgboost", "fastai", "catboost"]} ] }, "Mode": "ENSEMBLING" }

Pour obtenir la liste des algorithmes disponibles par Mode d'entraînement, consultez AutoMLAlgorithms. Pour plus d'informations sur chaque algorithme, consultez Modes d'entraînement et prise en charge des algorithmes.

Vous pouvez fournir votre propre jeu de données de validation et un rapport de répartition des données personnalisé, ou laisser Autopilot répartir automatiquement le jeu de données.

CreateAutoMLJobV2

Chaque AutoMLJobChannelobjet (voir le paramètre requis AutoML JobInputDataConfig) possède unChannelType, qui peut être défini sur des validation valeurs qui spécifient la manière dont les données doivent être utilisées lors de la création d'un modèle d'apprentissage automatique. training Au moins une source de données doit être fournie et deux sources de données maximum sont autorisées : une pour les données d'entraînement et l'autre pour les données de validation.

Le fractionnement des données en jeux de données d'entraînement et de validation varie selon que vous disposiez d'une ou de deux sources de données.

  • Si vous n'avez qu'une source de données, ChannelType est défini sur training par défaut et doit avoir cette valeur.

    • Si la valeur ValidationFraction de AutoMLDataSplitConfig n'est pas définie, 0,2 (20 %) des données de cette source sont utilisées pour la validation par défaut.

    • Si ValidationFraction est défini sur une valeur comprise entre 0 et 1, le jeu de données est divisé en fonction de la valeur spécifiée, où la valeur spécifie la fraction du jeu de données utilisé pour la validation.

  • Si vous disposez de deux sources de données, le ChannelType de l'un des objets AutoMLJobChannel doit être défini sur training (valeur par défaut). Le ChannelType de l'autre source de données doit être défini sur validation. Les deux sources de données doivent avoir le même format, CSV ou Parquet, et le même schéma. Vous ne devez pas définir la valeur de ValidationFraction dans ce cas, car toutes les données de chaque source sont utilisées à des fins d'entraînement ou de validation. La définition de cette valeur provoque une erreur.

CreateAutoMLJob

Chaque AutoMLChannelobjet (voir le paramètre requis InputDataConfig) possède unChannelType, qui peut être défini sur l'une training ou l'autre des validation valeurs spécifiant la manière dont les données doivent être utilisées lors de la création d'un modèle d'apprentissage automatique. Au moins une source de données doit être fournie et deux sources de données maximum sont autorisées : une pour les données d'entraînement et l'autre pour les données de validation.

Le fractionnement des données en jeux de données d'entraînement et de validation varie selon que vous disposiez d'une ou de deux sources de données.

  • Si vous n'avez qu'une source de données, ChannelType est défini sur training par défaut et doit avoir cette valeur.

    • Si la valeur ValidationFraction de AutoMLDataSplitConfig n'est pas définie, 0,2 (20 %) des données de cette source sont utilisées pour la validation par défaut.

    • Si ValidationFraction est défini sur une valeur comprise entre 0 et 1, le jeu de données est divisé en fonction de la valeur spécifiée, où la valeur spécifie la fraction du jeu de données utilisé pour la validation.

  • Si vous disposez de deux sources de données, le ChannelType de l'un des objets AutoMLChannel doit être défini sur training (valeur par défaut). Le ChannelType de l'autre source de données doit être défini sur validation. Les deux sources de données doivent avoir le même format, CSV ou Parquet, et le même schéma. Vous ne devez pas définir la valeur de ValidationFraction dans ce cas, car toutes les données de chaque source sont utilisées à des fins d'entraînement ou de validation. La définition de cette valeur provoque une erreur.

Pour en savoir plus sur la répartition et la validation croisée dans Autopilot, consultez Validation croisée dans Autopilot.

CreateAutoMLJobV2

Pour les données tabulaires, vous devez choisir TabularJobConfig comme type de AutoMLProblemTypeConfig.

Vous pouvez également spécifier le type de problème d'apprentissage supervisé (classification binaire, classification multi-classes, régression) disponible pour les modèles candidats de votre tâche AutoML V2 à l'aide du paramètre TabularJobConfig.ProblemType.

CreateAutoMLJob

Vous pouvez définir le type de problème sur une tâche AutoML avec le paramètre CreateAutoPilot.ProblemType. Cela limite le type de prétraitement et les algorithmes essayés par Autopilot. Une fois la tâche terminée, si vous aviez défini l'élément CreateAutoPilot.ProblemType, l'élément ResolvedAttribute.ProblemType correspond au ProblemType que vous avez défini. Si vous le laissez vide (ou null), le ProblemType est déduit à votre place.

Note

Dans certains cas, lorsque Autopilot ne peut pas inférer le ProblemType avec une fiabilité suffisante, vous devez fournir cette valeur pour que la tâche réussisse.

Vous pouvez ajouter une colonne de poids d'échantillons à votre jeu de données tabulaire, puis la transmettre à votre tâche AutoML pour demander à ce que les lignes du jeu de données soient pondérées pendant l'entraînement et l'évaluation.

La prise en charge des poids d'échantillons est disponible en mode ensembliste uniquement. Vos poids doivent être numériques et non négatifs. Les points de données sans valeur de poids ou avec une valeur de poids non valide sont exclus. Pour plus d'informations sur les métriques d'objectif disponibles, consultez Métriques pondérées Autopilot.

CreateAutoMLJobV2

Pour les données tabulaires, vous devez choisir TabularJobConfig comme type de AutoMLProblemTypeConfig.

Pour définir les poids d'échantillon lors de la création d'une expérience (voir CreateAutoMLJobv2), vous pouvez transmettre le nom de votre colonne de poids d'échantillon dans l'SampleWeightAttributeNameattribut de l'TabularJobConfigobjet. Cela garantit que votre métrique d'objectif utilisera les poids pour l'entraînement, l'évaluation et la sélection des modèles candidats.

CreateAutoMLJob

Pour définir les poids d'échantillon lors de la création d'une expérience (voir CreateAutoMLJob), vous pouvez transmettre le nom de votre colonne de poids d'échantillon dans l'SampleWeightAttributeNameattribut de l'objet AutoMLChannel. Cela garantit que votre métrique d'objectif utilisera les poids pour l'entraînement, l'évaluation et la sélection des modèles candidats.

Migrer un CreateAuto MLJob vers MLJobv2 CreateAuto

Nous recommandons aux utilisateurs de l'action CreateAutoMLJob de migrer vers l'action CreateAutoMLJobV2.

Cette section explique les différences entre les paramètres d'entrée entre CreateAutoMLJob et CreateAutoMLJobv2 en mettant en évidence les changements de position, de nom ou de structure des objets et des attributs de la demande d'entrée entre les deux versions.

  • Attributs de demande qui n'ont pas changé entre les versions.

    { "AutoMLJobName": "string", "AutoMLJobObjective": { "MetricName": "string" }, "ModelDeployConfig": { "AutoGenerateEndpointName": boolean, "EndpointName": "string" }, "OutputDataConfig": { "KmsKeyId": "string", "S3OutputPath": "string" }, "RoleArn": "string", "Tags": [ { "Key": "string", "Value": "string" } ] }
  • Attributs de demande qui ont changé de position et de structure entre les versions.

    Les attributs suivants ont changé de position : DataSplitConfig, Security Config, CompletionCriteria, Mode, FeatureSpecificationS3Uri, SampleWeightAttributeName, TargetAttributeName.

    CreateAutoMLJob
    { "AutoMLJobConfig": { "Mode": "string", "CompletionCriteria": { "MaxAutoMLJobRuntimeInSeconds": number, "MaxCandidates": number, "MaxRuntimePerTrainingJobInSeconds": number }, "DataSplitConfig": { "ValidationFraction": number }, "SecurityConfig": { "EnableInterContainerTrafficEncryption": boolean, "VolumeKmsKeyId": "string", "VpcConfig": { "SecurityGroupIds": [ "string" ], "Subnets": [ "string" ] } }, "CandidateGenerationConfig": { "FeatureSpecificationS3Uri": "string" } }, "GenerateCandidateDefinitionsOnly": boolean, "ProblemType": "string" }
    CreateAutoMLJobV2
    { "AutoMLProblemTypeConfig": { "TabularJobConfig": { "Mode": "string", "ProblemType": "string", "GenerateCandidateDefinitionsOnly": boolean, "CompletionCriteria": { "MaxAutoMLJobRuntimeInSeconds": number, "MaxCandidates": number, "MaxRuntimePerTrainingJobInSeconds": number }, "FeatureSpecificationS3Uri": "string", "SampleWeightAttributeName": "string", "TargetAttributeName": "string" } }, "DataSplitConfig": { "ValidationFraction": number }, "SecurityConfig": { "EnableInterContainerTrafficEncryption": boolean, "VolumeKmsKeyId": "string", "VpcConfig": { "SecurityGroupIds": [ "string" ], "Subnets": [ "string" ] } } }
  • Les attributs suivants ont changé de position et de structure entre les versions.

    Le JSON suivant illustre le fonctionnement d'AutoMLJobConfig. CandidateGenerationConfigde type AutoML CandidateGenerationConfig déplacé vers AutoML. ProblemTypeConfig TabularJobConfig. CandidateGenerationConfigde type CandidateGenerationConfigV2.

    CreateAutoMLJob
    { "AutoMLJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig": [ { "AutoMLAlgorithms": [ "string" ] } ], "FeatureSpecificationS3Uri": "string" } }
    CreateAutoMLJobV2
    { "AutoMLProblemTypeConfig": { "TabularJobConfig": { "CandidateGenerationConfig": { "AlgorithmsConfig": [ { "AutoMLAlgorithms": [ "string" ] } ], }, } }, }
  • Attributs de demande dont le nom et la structure ont changé.

    Le JSON suivant illustre comment InputDataConfig(un tableau d'AutoMLChannel) est devenu AutoML JobInputDataConfig (un tableau d'AutoML) dans la V2. JobChannel Notez que les attributs SampleWeightAttributeName et TargetAttributeName sortent de InputDataConfig et sont placés dans AutoMLProblemTypeConfig.

    CreateAutoMLJob
    { "InputDataConfig": [ { "ChannelType": "string", "CompressionType": "string", "ContentType": "string", "DataSource": { "S3DataSource": { "S3DataType": "string", "S3Uri": "string" } }, "SampleWeightAttributeName": "string", "TargetAttributeName": "string" } ] }
    CreateAutoMLJobV2
    { "AutoMLJobInputDataConfig": [ { "ChannelType": "string", "CompressionType": "string", "ContentType": "string", "DataSource": { "S3DataSource": { "S3DataType": "string", "S3Uri": "string" } } } ] }