Nous ne mettons plus à jour le service Amazon Machine Learning et n'acceptons plus de nouveaux utilisateurs pour celui-ci. Cette documentation est disponible pour les utilisateurs existants, mais nous ne la mettons plus à jour. Pour plus d'informations, consultez Qu'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.
Création d'un schéma de données pour Amazon ML
Un schéma est composé de tous les attributs figurant dans les données d'entrée et de leurs types de données correspondants. Il permet à Amazon ML de comprendre les données de la source de données. Amazon ML utilise les informations figurant dans le schéma pour lire et interpréter les données d'entrée, calculer des statistiques, appliquer les transformations d'attribut correctes et ajuster ses algorithmes d'apprentissage. Si vous ne fournissez pas de schéma, Amazon ML en déduire un des données.
Exemple de schéma
Pour qu'Amazon ML lise correctement les données d'entrée et génère des prédictions précises, chaque attribut doit se voir affecter le type de données approprié. Passons en revue un exemple pour voir comment les types de données sont attribués aux attributs et comment les attributs et les types de données sont inclus dans un schéma. Nous appellerons notre exemple « Campagne clients », car nous voulons prédire quels clients répondront à notre campagne d'e-mailing. Notre fichier d'entrée est un fichier .csv contenant neuf colonnes :
1,3,web developer,basic.4y,no,no,1,261,0 2,1,car repair,high.school,no,no,22,149,0 3,1,car mechanic,high.school,yes,no,65,226,1 4,2,software developer,basic.6y,no,no,1,151,0
Le schéma de ces données est le suivant :
{ "version": "1.0", "rowId": "customerId", "targetAttributeName": "willRespondToCampaign", "dataFormat": "CSV", "dataFileContainsHeader": false, "attributes": [ { "attributeName": "customerId", "attributeType": "CATEGORICAL" }, { "attributeName": "jobId", "attributeType": "CATEGORICAL" }, { "attributeName": "jobDescription", "attributeType": "TEXT" }, { "attributeName": "education", "attributeType": "CATEGORICAL" }, { "attributeName": "housing", "attributeType": "CATEGORICAL" }, { "attributeName": "loan", "attributeType": "CATEGORICAL" }, { "attributeName": "campaign", "attributeType": "NUMERIC" }, { "attributeName": "duration", "attributeType": "NUMERIC" }, { "attributeName": "willRespondToCampaign", "attributeType": "BINARY" } ] }
Dans le fichier de schéma de cet exemple, la valeur de rowId
est customerId
:
"rowId": "customerId",
L'attribut willRespondToCampaign
est défini en tant qu'attribut cible :
"targetAttributeName": "willRespondToCampaign ",
L'attribut customerId
et le type de données CATEGORICAL
sont associés à la première colonne, l'attribut jobId
et le type de données CATEGORICAL
sont associés à la deuxième colonne, l'attribut jobDescription
et le type de données TEXT
sont associés à la troisième colonne, l'attribut education
et le type de données CATEGORICAL
sont associés à la quatrième colonne, etc. La neuvième colonne est associée à l'attribut willRespondToCampaign
avec un type de données BINARY
, et cet attribut est également défini en tant qu'attribut cible.
Utilisation du champ targetAttributeName
La valeur targetAttributeName
est le nom de l'attribut que vous voulez prédire. Vous devez attribuer un targetAttributeName
lors de la création ou de l'évaluation d'un modèle.
Lorsque vous entraînez ou évaluez un modèle ML, letargetAttributeName
identifie le nom de l'attribut dans les données d'entrée qui contient les réponses « correctes » pour l'attribut cible. Amazon ML utilise la cible, qui inclut les réponses correctes, pour découvrir des tendances et générer un modèle d'apprentissage-machine.
Lorsque vous évaluez votre modèle, Amazon ML utilise la cible pour vérifier la précision de vos prédictions. Une fois que vous avez créé et évalué le modèle d'apprentissage-machine, vous pouvez utiliser les données avec un champ targetAttributeName
non attribué pour générer des prédictions avec votre modèle d'apprentissage-machine.
Vous définissez l'attribut cible dans la console Amazon ML lorsque vous créez une source de données, ou dans un fichier de schéma. Si vous créez votre propre fichier de schéma, utilisez la syntaxe suivante pour définir l'attribut cible :
"targetAttributeName": "exampleAttributeTarget",
Dans cet exemple, exampleAttributeTarget
est le nom de l'attribut dans votre fichier d'entrée qui est l'attribut cible.
Utilisation du champ rowID
Le champ row ID
est un indicateur optionnel associé à un attribut dans les données d'entrée. S'il est spécifié, l'attribut marqué en tant que row ID
est inclus dans la prédiction fournie en sortie. Cet attribut permet d'associer plus facilement les prédictions aux observations correspondantes. Par exemple, un ID client ou un attribut unique similaire constitue un champ row ID
efficace.
Note
L'ID de ligne est fourni à titre de référence uniquement. Amazon ML ne l'utilise pas lors de la formation d'un modèle d'apprentissage-machine. Le fait de sélectionner un attribut en tant qu'ID de ligne exclut l'éventualité d'utiliser l'attribut pour former un modèle d'apprentissage-machine.
Définissez lerow ID
dans la console Amazon ML lorsque vous créez une source de données, ou dans un fichier de schéma. Si vous créez votre propre fichier de schéma, utilisez la syntaxe suivante pour définir le champ row ID
:
"rowId": "exampleRow",
Dans l'exemple précédent, exampleRow
est le nom de l'attribut figurant dans votre fichier d'entrée qui est défini comme ID de ligne.
Lors de la génération de prédictions par lots, vous pouvez obtenir le résultat suivant :
tag,bestAnswer,score 55,0,0.46317 102,1,0.89625
Dans cet exemple, RowID
représente l'attribut customerId
. Par exemple, il est prédit que le client customerId 55
répondra à notre campagne d'e-mailing avec un faible degré de confiance (0,46317), tandis qu'il est prédit que le client customerId
102
répondra à notre campagne d'e-mailing avec un niveau de confiance élevé (0,89625).
Utilisation du champ AttributeType
Dans Amazon ML, il existe quatre types de données pour les attributs :
- Binaire
-
Choisissez
BINARY
pour un attribut qui a seulement deux états possibles, tels queyes
etno
.Par exemple, l'attribut
isNew
, permettant de vérifier si une personne est un nouveau client, a une valeurtrue
si la personne est un nouveau client ou une valeurfalse
si elle n'est pas un nouveau client.Les valeurs négatives valides sont
0
,n
,no
,f
etfalse
.Les valeurs positives valides sont
1
,y
,yes
,t
ettrue
.Amazon ML ignore la casse des entrées binaires et supprime les espaces adjacents. Par exemple,
" FaLSe "
est une valeur binaire valide. Vous pouvez combiner les valeurs binaires que vous utilisez dans la même source de données, par exemple en utilisanttrue
,no
, et1
. sorties Amazon ML uniquement0
et1
pour les attributs binaires. - Categorical (catégorie)
-
Choisissez
CATEGORICAL
pour un attribut qui accepte un nombre limité de valeurs de chaîne uniques. Par exemple, un ID d'utilisateur, le mois et un code postal sont des valeurs de catégorie. Les attributs de catégorie sont traités comme une chaîne individuelle et ne sont pas tokenisés davantage. - Numérique
-
Choisissez
NUMERIC
pour un attribut qui accepte une quantité en tant que valeur.Par exemple, une température, un poids et un taux de clics sont des valeurs numériques.
Tous les attributs qui contiennent des nombres ne sont pas numériques. Les attributs de catégorie, telles que les jours du mois et les ID, sont souvent représentés par des nombres. Pour être considéré comme numérique, un nombre doit être comparable à un autre nombre. Par exemple, l'ID client
664727
ne vous dit rien sur l'ID client124552
, alors qu'un poids de10
indique que l'attribut est plus lourd qu'un attribut avec un poids de5
. Les jours du mois ne sont pas numériques, car le premier d'un mois peut se produire avant ou après le second d'un autre mois.Note
Lorsque vous utilisez Amazon ML pour créer votre schéma, il attribue le
Numeric
type de données pour tous les attributs qui utilisent des nombres. Si Amazon ML crée votre schéma, cherchez d'éventuelles erreurs d'affectation et définissez les attributs correspondants surCATEGORICAL
. - Text
-
Choisissez
TEXT
pour un attribut qui est une chaîne de mots. Lorsque vous lisez des attributs texte, Amazon ML les convertit en jetons, délimités par des espaces.Par exemple,
email subject
devientemail
etsubject
, etemail-subject here
devientemail-subject
ethere
.
Si le type de données d'une variable dans le schéma de formation ne correspond pas au type de données de la variable dans le schéma d'évaluation, Amazon ML change le type de données d'évaluation pour qu'il corresponde au type de données de formation. Par exemple, si le schéma de données de formation attribue un type de données deTEXT
vers la variableage
, mais le schéma d'évaluation attribue un type de données deNUMERIC
pourage
, Amazon ML traite ensuite les âges des données d'évaluation commeTEXT
variables au lieu deNUMERIC
.
Pour obtenir des informations sur les statistiques associées à chaque type de données, consultez Statistiques descriptives.
Fourniture d'un schéma à Amazon ML
Chaque source de données a besoin d'un schéma. Vous avez le choix entre deux méthodes pour fournir un schéma à Amazon ML :
-
Autoriser Amazon ML à déduire les types de données de chaque attribut dans le fichier de données d'entrée et à créer automatiquement un schéma pour vous.
-
Fournissez un fichier de schéma lorsque vous chargez vos données Amazon Simple Storage Service (Amazon S3).
Autoriser Amazon ML à créer votre schéma
Lorsque vous utilisez la console Amazon ML pour créer une source de données, Amazon ML utilise des règles simples, basées sur les valeurs de vos variables, pour créer votre schéma. Nous vous recommandons fortement d'examiner le schéma créé par Amazon ML et de corriger les types de données s'ils ne sont pas corrects.
Fourniture d'un schéma
Une fois que vous avez créé votre fichier de schéma, vous devez le mettre à la disposition d'Amazon ML. Vous avez deux options :
-
Fournissez le schéma à l'aide de la console Amazon ML.
Utilisez la console pour créer votre source de données et incluez le fichier de schéma en ajoutant l'extension .schema au nom de fichier de votre fichier de données d'entrée. Par exemple, si l'URI Amazon Simple Storage Service (Amazon S3) de vos données d'entrée est s3 : //my-bucket-name/data/input.csv, l'URI de votre schéma sera s3 : //my-bucket-name/data/input.csv.schema. Amazon ML localise automatiquement le fichier de schéma que vous fournissez au lieu d'essayer de déduire le schéma de vos données.
Afin d'utiliser un répertoire de fichiers pour entrer vos données dans Amazon ML, ajoutez l'extension .schema au chemin d'accès de votre répertoire. Par exemple, si vos fichiers de données résident dans l'emplacement s3://examplebucket/path/to/data/, l'URI de votre schéma sera s3://examplebucket/path/to/data/.schema.
-
Fournissez le schéma à l'aide de l'API Amazon ML.
Si vous envisagez d'appeler l'API Amazon ML pour créer votre source de données, vous pouvez charger le fichier de schéma dans Amazon S3, puis fournir l'URI de ce fichier dans le
DataSchemaLocationS3
Attribut deCreateDataSourceFromS3
API. Pour plus d'informations, consultez CreateDataSourceFromS3.Vous pouvez fournir le schéma directement dans la charge utile de
CreateDataSource
*APIs
au lieu de l'enregistrer dans Amazon S3. Pour ce faire, vous devez placer la chaîne de schéma complète dans l'attributDataSchema
des APICreateDataSourceFromS3
,CreateDataSourceFromRDS
etCreateDataSourceFromRedshift
. Pour plus d'informations, consultez la Référence d'API Amazon Machine Learning.