

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](https://docs.aws.amazon.com/machine-learning/latest/dg/what-is-amazon-machine-learning.html) ?

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
<a name="creating-a-data-schema-for-amazon-ml"></a>

 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. Cela permet à Amazon ML de comprendre les données de la source de données. Amazon ML utilise les informations du schéma pour lire et interpréter les données d'entrée, calculer les statistiques, appliquer les transformations d'attributs correctes et affiner ses algorithmes d'apprentissage. Si vous ne fournissez pas de schéma, Amazon ML en déduit un à partir des données. 

## Exemple de schéma
<a name="schema-example"></a>

Pour qu'Amazon ML puisse lire correctement les données d'entrée et produire des prédictions précises, le type de données approprié doit être attribué à chaque attribut. 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 targetAttributeName terrain
<a name="using-the-targetattributename-field"></a>

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 de machine learning, `targetAttributeName` identifie le nom de l'attribut dans les données d'entrée qui contient les « bonnes » réponses pour l'attribut cible. Amazon ML utilise la cible, qui inclut les bonnes réponses, pour découvrir des modèles et générer un modèle de machine learning.

Lorsque vous évaluez votre modèle, Amazon ML utilise la cible pour vérifier l'exactitude de vos prévisions. 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
<a name="using-the-rowid-field"></a>

 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 de ML. 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.

Vous le définissez `row 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 AttributeType terrain
<a name="assigning-data-types"></a>

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 que `yes` et `no`.  
Par exemple, l'attribut `isNew`, permettant de vérifier si une personne est un nouveau client, a une valeur `true` si la personne est un nouveau client ou une valeur `false` si elle n'est pas un nouveau client.  
Les valeurs négatives valides sont `0`, `n`, `no`, `f` et `false`.  
Les valeurs positives valides sont `1`, `y`, `yes`, `t` et `true`.  
Amazon ML ignore le cas des entrées binaires et supprime l'espace blanc environnant. Par exemple, `" FaLSe "` est une valeur binaire valide. Vous pouvez mélanger les valeurs binaires que vous utilisez dans la même source de données, par exemple en utilisant `true``no`, et`1`. Amazon ML produit des sorties uniquement `0` et `1` 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 catégoriels, tels que les jours du mois et IDs, 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 client `124552`, alors qu'un poids de `10` indique que l'attribut est plus lourd qu'un attribut avec un poids de `5`. 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.  
Lorsque vous utilisez Amazon ML pour créer votre schéma, il attribue le type de `Numeric` données à tous les attributs utilisant des nombres. Si Amazon ML crée votre schéma, vérifiez qu'il n'y a pas d'assignations incorrectes et définissez ces attributs sur`CATEGORICAL`. 

**Text**  
Choisissez `TEXT` pour un attribut qui est une chaîne de mots. Lors de la lecture d'attributs de texte, Amazon ML les convertit en jetons, délimités par des espaces blancs.   
Par exemple, `email subject` devient `email` et `subject`, et `email-subject here` devient `email-subject` et `here`. 

Si le type de données d'une variable du schéma d'entraînement ne correspond pas au type de données de cette variable dans le schéma d'évaluation, Amazon ML modifie le type de données d'évaluation pour qu'il corresponde au type de données d'entraînement. Par exemple, si le schéma de données de formation attribue un type de données de `TEXT` à la variable`age`, mais que le schéma d'évaluation attribue un type de données de `NUMERIC` à`age`, Amazon ML traite les âges des données d'évaluation comme des `TEXT` variables plutôt que comme des variables. `NUMERIC`

Pour obtenir des informations sur les statistiques associées à chaque type de données, consultez [Statistiques descriptives](data-insights.md#descriptive-statistics).

## Fourniture d'un schéma à Amazon ML
<a name="methods-for-creating-a-data-schema"></a>

Chaque source de données a besoin d'un schéma. Vous pouvez choisir entre deux méthodes pour fournir un schéma à Amazon ML : 
+  Autorisez 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
<a name="allowing-amazon-create-your-schema"></a>

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 vivement de consulter le schéma créé par Amazon ML et de corriger les types de données s'ils ne sont pas exacts. 

### Fourniture d'un schéma
<a name="providing-schema-to-amazon-ml"></a>

 Après avoir créé votre fichier de schéma, vous devez le mettre à la disposition d'Amazon ML. Vous avez deux options : 

1.  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) vers vos données d'entrée est s3 :my-bucket-name///data/input.csv, the URI to your schema will be 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 à partir de vos données. 

    Pour utiliser un répertoire de fichiers comme entrée de données dans Amazon ML, ajoutez l'extension .schema au chemin de votre répertoire. Par exemple, si vos fichiers de données se trouvent à l'emplacement s3 ://examplebucket/path/to/data/, the URI to your schema will be s3://examplebucket/path/to/data/.schema. 

1.  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 télécharger le fichier de schéma dans Amazon S3, puis fournir l'URI de ce fichier dans l'`DataSchemaLocationS3`attribut de l'`CreateDataSourceFromS3`API. Pour plus d'informations, consultez [CreateDataSourceFromS3](https://docs.aws.amazon.com/machine-learning/latest/APIReference/API_CreateDataSourceFromS3.html). 

    Vous pouvez fournir le schéma directement dans la charge utile `CreateDataSource` de\* `APIs` au lieu de l'enregistrer d'abord sur Amazon S3. Pour ce faire, placez la chaîne de schéma complète dans l'`DataSchema`attribut de `CreateDataSourceFromS3``CreateDataSourceFromRDS`, ou `CreateDataSourceFromRedshift` APIs. Pour plus d'informations, consultez la [Référence d'API Amazon Machine Learning](https://docs.aws.amazon.com/machine-learning/latest/APIReference/). 