Référence de format des recettes - Amazon Machine Learning

Nous ne mettons plus à jour le service Amazon Machine Learning et n'acceptons plus de nouveaux utilisateurs pour ce service. Cette documentation est disponible pour les utilisateurs existants, mais nous ne la mettons plus à jour. Pour plus d'informations, veuillez consulter la rubriqueQu'est-ce qu'Amazon Machine Learning.

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.

Référence de format des recettes

Les recettes Amazon ML contiennent des instructions visant à transformer vos données dans le cadre du processus d'apprentissaie-machine. Les recettes sont définies à l'aide d'une syntaxe de type JSON, mais elles présentent des restrictions supplémentaires au-delà des restrictions JSON normales. Les recettes possèdent les sections suivantes, qui doivent apparaître dans l'ordre indiqué ici :

  • La section groups (groupes) permet le regroupement de plusieurs variables, simplifiant ainsi l'application de transformations. Par exemple, vous pouvez créer un groupe de toutes les variables ayant à faire avec les parties en texte libre d'une page web (titre, corps), puis effectuer une transformation globale sur l'ensemble de ces parties.

  • La section assignments (affectations) permet la création de variables nommées intermédiaires qui peuvent être réutilisées dans le traitement.

  • La section outputs (sorties) définit les variables qui seront utilisées dans le processus d'apprentissage, ainsi que les transformations (le cas échéant) qui s'appliquent à ces variables.

Groups

Vous pouvez définir des groupes de variables afin de transformer collectivement toutes les variables au sein des groupes ou d'utiliser ces variables pour l'apprentissage-machine sans les transformer. Par défaut, Amazon ML crée pour vous les groupes suivants :

ALL_TEXT, ALL_NUMERIC, ALL_CATEGORICAL, ALL_BINARY : groupes spécifiques aux types, basés sur les variables définies dans le schéma de source de données.

Note

Vous ne pouvez pas créer de groupe avec ALL_INPUTS.

Ces variables peuvent être utilisées dans la section outputs de votre recette sans être définies. Vous pouvez également créer des groupes personnalisés en ajoutant ou en soustrayant des variables dans les groupes existants, ou directement dans une collection de variables. Dans l'exemple suivant, nous illustrons ces trois approches, ainsi que la syntaxe pour l'affectation des groupements :

"groups": { "Custom_Group": "group(var1, var2)", "All_Categorical_plus_one_other": "group(ALL_CATEGORICAL, var2)" }

Les noms des groupes doivent commencer par un caractère alphabétique et peuvent comporter entre 1 et 64 caractères. Si le nom de groupe ne commence pas par un caractère alphabétique ou s'il contient des caractères spéciaux (, ' " \t \r \n ( ) \), le nom doit être placé entre guillemets pour être inclus dans la recette.

Assignments (affectations)

Vous pouvez affecter une ou plusieurs transformations à une variable intermédiaire, pour des raisons de commodité et de lisibilité. Par exemple, si vous avez une variable texte nommée email_subject et que vous lui appliquez la transformation en minuscules, vous pouvez nommer la variable résultante email_subject_lowercase, ce qui facilite son suivi ailleurs dans la recette. Les affectations peuvent également être chaînées, ce qui vous permet d'appliquer plusieurs transformations dans un ordre donné. L'exemple suivant montre des affectations individuelles et chaînées dans la syntaxe d'une recette :

"assignments": { "email_subject_lowercase": "lowercase(email_subject)", "email_subject_lowercase_ngram":"ngram(lowercase(email_subject), 2)" }

Les noms des variables intermédiaires doivent commencer par un caractère alphabétique et peuvent comporter entre 1 et 64 caractères. Si le nom ne commence pas par un caractère alphabétique ou s'il contient des caractères spéciaux (, ' " \t \r \n ( ) \), le nom doit être placé entre guillemets pour être inclus dans la recette.

Outputs

La section outputs contrôle quelles variables d'entrée seront utilisées pour le processus d'apprentissage et quelles transformations leur sont applicables. Une section outputs vide ou inexistante est une erreur, car aucune donnée ne sera transmise au processus d'apprentissage.

La section outputs la plus simple comprend simplement le groupe ALL_INPUTS prédéfini, ce qui indique à Amazon ML d'utiliser toutes les variables définies dans la source de données pour l'apprentissage :

"outputs": [ "ALL_INPUTS" ]

La section outputs peut également faire référence aux autres groupes prédéfinis en indiquant à Amazon ML d'utiliser toutes les variables de ces groupes :

"outputs": [ "ALL_NUMERIC", "ALL_CATEGORICAL" ]

La section outputs peut également faire référence à des groupes personnalisés. Dans l'exemple suivant, un seul des groupes personnalisés définis dans la section des affectations de groupement de l'exemple précédent sera utilisé pour l'apprentissage-machine. Toutes les autres variables seront ignorées :

"outputs": [ "All_Categorical_plus_one_other" ]

La section outputs peut également faire référence aux affectations de variables définies dans la section assignments :

"outputs": [ "email_subject_lowercase" ]

De plus, les transformations et les variables d'entrée peuvent être définies directement dans la section outputs :

"outputs": [ "var1", "lowercase(var2)" ]

La sortie doit spécifier explicitement toutes les variables et variables transformées qui sont censées être disponibles pour le processus d'apprentissage. Supposons, par exemple, que vous incluez dans la section outputs le produit cartésien de var1 et var2. Si vous souhaitez inclure à la fois les variables brutes var1 et var2, vous devez ajouter les variables brutes dans la section outputs :

"outputs": [ "cartesian(var1,var2)", "var1", "var2" ]

La section outputs peut inclure des commentaires pour des raisons de lisibilité, le texte de commentaire étant ajouté à côté de la variable :

"outputs": [ "quantile_bin(age, 10) //quantile bin age", "age // explicitly include the original numeric variable along with the binned version" ]

Vous pouvez combiner toutes ces approches dans la section outputs.

Note

Les commentaires ne sont pas autorisés dans la console Amazon ML lors de l'ajout d'une recette.

Exemple de recette complète

L'exemple suivant fait référence à plusieurs processeurs de données intégrés, qui ont été présentés dans les exemples précédents :

{ "groups": { "LONGTEXT": "group_remove(ALL_TEXT, title, subject)", "SPECIALTEXT": "group(title, subject)", "BINCAT": "group(ALL_CATEGORICAL, ALL_BINARY)" }, "assignments": { "binned_age" : "quantile_bin(age,30)", "country_gender_interaction" : "cartesian(country, gender)" }, "outputs": [ "lowercase(no_punct(LONGTEXT))", "ngram(lowercase(no_punct(SPECIALTEXT)),3)", "quantile_bin(hours-per-week, 10)", "hours-per-week // explicitly include the original numeric variable along with the binned version", "cartesian(binned_age, quantile_bin(hours-per-week,10)) // this one is critical", "country_gender_interaction", "BINCAT" ] }