Préparer les données d'entraînement

Cette page décrit comment préparer vos données d'entraînement avant de les importer dans AutoML Tables.

Introduction

La qualité de vos données d'entraînement influe fortement sur l'efficacité du modèle que vous créez et, par extension, sur la qualité des prédictions renvoyées par ce modèle. Vous ne pouvez pas modifier les données après les avoir importées. Si vous devez modifier vos données d'entraînement après les avoir importées, vous devez mettre à jour la source de données et les réimporter.

Comprendre comment vos données sont interprétées et utilisées par AutoML Tables vous permet d'importer des données nettoyées et efficaces.

Comprendre votre problème

Pour créer des données d’entraînement efficaces, la première étape consiste à s’assurer que votre problème est bien défini et qu’il produira les résultats de prédiction dont vous avez besoin. Si vous débutez en machine learning, vous devez passer en revue les types de problèmes traités par AutoML Tables et choisir le type de modèle à créer. Pour plus d'informations sur les types de problèmes traités par AutoML Tables, consultez la page Types de problèmes.

Déterminer ce qu'il faut inclure dans votre ensemble de données

Ensuite, vous devez déterminer les données à inclure dans vos données d'entraînement. Dans certains cas, vous pouvez utiliser une table qui existe déjà dans vos données d'entreprise. Dans d'autres cas, vous devrez rassembler des données provenant de différentes sources, éventuellement effectuer certaines transformations ou supprimer des colonnes afin de créer les données d'entraînement les plus efficaces possible.

Exigences relatives aux données d'entraînement

Vos données d'entraînement doivent respecter les exigences suivantes :

  • Elles ne doivent pas dépasser 100 Go.

  • La valeur que vous souhaitez prédire (votre colonne cible) doit être incluse.

    Si cette colonne n'est pas présente, AutoML Tables ne peut pas associer les données d'entraînement au résultat souhaité. Le type de données de cette colonne détermine également le type de votre modèle. En savoir plus

  • Au moins deux et pas plus de 1 000 colonnes doivent être présentes.

    Une colonne doit être la cible et au moins une caractéristique doit être disponible pour entraîner le modèle. Idéalement, vos données d'entraînement doivent comporter beaucoup plus que deux colonnes.

  • Au moins 1 000 lignes doivent être présentes, et pas plus de 200 000 000.

    En fonction du nombre de caractéristiques de l'ensemble de données, ce nombre minimal peut être insuffisant pour entraîner un modèle véritablement performant. En savoir plus

Caractéristiques supplémentaires basées sur les données d'entraînement

De plus, certaines caractéristiques d'AutoML Tables nécessitent l'ajout de données spécifiques dans les données d'entraînement :

Pour en savoir plus sur les bonnes pratiques en matière de données, consultez la page Bonnes pratiques de création des données d'entraînement.

Préparer votre source d'importation

Pour fournir des données d'entraînement de modèle à AutoML Tables, vous disposez de deux options :

La source que vous utilisez dépend de la manière dont vos données sont actuellement stockées, ainsi que de leur taille et de leur complexité. Si votre ensemble de données est peu important et que vous n'avez pas besoin de types de données plus complexes, un fichier CSV est la solution la plus simple. Pour les ensembles de données plus volumineux comprenant des tableaux et des structures, vous devez utiliser BigQuery.

Pour les deux sources d'importation, vos données doivent répondre aux exigences suivantes :

  • Comporter entre 1 000 et 200 000 000 de lignes.
  • Comporter entre 2 et 1 000 colonnes.
  • Ne pas dépasser 100 Go.

BigQuery

Votre table BigQuery doit utiliser un ensemble de données BigQuery multirégional résidant à l'emplacement US ou EU. En fonction de l'emplacement de la table BigQuery et de la source de données (qui peut être différent), vous devez mettre à jour les autorisations indiquées dans le tableau ci-dessous. Notez que des modifications d'autorisation peuvent être nécessaires pour votre projet de base (dans lequel est installé AutoML Tables) ou dans le projet étranger.

Type de table Emplacement de la table Emplacement de la source de données Ajout de rôle requis
Table BigQuery native Projet de base N/A Aucun
Table BigQuery native Projet étranger Non disponible BigQuery Data Viewer pour le projet étranger. En savoir plus
Vue BigQuery Même projet N/A Aucun
Vue BigQuery Projet différent Non disponible BigQuery Data Viewer pour le projet étranger. En savoir plus
Source de données BigQuery externe sauvegardée par Bigtable Projet de base Projet de base Bigtable Reader pour le projet de base. En savoir plus
Source de données BigQuery externe sauvegardée par Bigtable Projet de base Projet étranger Bigtable Reader pour le projet étranger. En savoir plus
Source de données BigQuery externe sauvegardée par Bigtable Projet étranger Projet étranger BigQuery Reader et Bigtable Reader pour le projet étranger. En savoir plus
Source de données BigQuery externe sauvegardée par Cloud Storage Projet de base Projet de base Aucun
Source de données BigQuery externe sauvegardée par Cloud Storage Projet de base Projet étranger Storage Object Viewer pour le projet étranger. En savoir plus
Source de données BigQuery externe sauvegardée par Cloud Storage Projet étranger Projet étranger Storage Object Viewer et BigQuery Data Viewer pour le projet étranger. En savoir plus
Source de données BigQuery externe sauvegardée par Google Sheets Projet de base Non disponible Partager votre fichier Sheets avec le compte de service AutoML. En savoir plus
Source de données BigQuery externe sauvegardée par Google Sheets Projet étranger Non disponible BigQuery Readerpour le projet étranger et partager votre fichier Sheets avec le compte de service AutoML.

Vous n'avez pas besoin de spécifier un schéma pour votre table BigQuery. AutoML Tables déduit automatiquement le schéma de la table lorsque vous importez les données.

Votre URI BigQuery (spécifiant l'emplacement de vos données d'entraînement) doit respecter le format suivant :

bq://<project_id>.<dataset_id>.<table_id>

L'URI ne peut pas contenir d'autres caractères spéciaux.

Pour vous documenter sur les types de données BigQuery et leur correspondance dans AutoML Tables, reportez-vous à la page Tables BigQuery. Pour plus d'informations sur l'utilisation des sources de données externes BigQuery, consultez la sectionPrésentation des sources de données externes.

Fichiers CSV

Exigences relatives aux fichiers CSV

Les fichiers CSV peuvent se trouver dans Cloud Storage ou sur votre ordinateur local. Ils doivent respecter les exigences suivantes :

  • La première ligne du premier fichier doit être un en-tête contenant le nom des colonnes. Si la première ligne d'un fichier suivant est identique à l'en-tête, elle est également traitée comme un en-tête. Sinon, elle est traitée comme des données.
  • Les noms de colonne peuvent inclure n’importe quel caractère alphanumérique ou un trait de soulignement (_). Le nom de la colonne ne peut pas commencer par un trait de soulignement.
  • Le caractère de séparation doit être une virgule (",").
  • Chaque fichier ne doit pas dépasser 10 Go.

    Vous pouvez inclure plusieurs fichiers, jusqu'à une taille maximale de 100 Go.

Vous n'avez pas besoin de spécifier un schéma pour vos données CSV. AutoML Tables déduit automatiquement le schéma de la table lorsque vous importez les données, et utilise la ligne d'en-tête pour les noms de colonne.

Pour plus d'informations sur le format de fichier CSV et les types de données, consultez la page Fichiers CSV.

Exigences de bucket Cloud Storage

Si vous importez vos données à partir de Cloud Storage, elles sont transférées dans un bucket qui doit répondre aux exigences suivantes :

  • Le bucket doit être conforme aux exigences de bucket Cloud Storage.
  • Si le bucket ne se trouve pas dans le même projet que AutoML Tables, vous devez attribuer le rôle Storage > Storage Object Viewer à AutoML Tables dans ce projet. En savoir plus

Si vous importez vos données depuis votre ordinateur local, vous devez disposer d'un bucket Cloud Storage répondant aux exigences suivantes :

  • Le bucket doit être conforme aux exigences de bucket Cloud Storage.
  • Si le bucket ne se trouve pas dans le même projet que AutoML Tables, vous devez attribuer le rôle Storage > Storage Object Creator à AutoML Tables dans ce projet. En savoir plus

AutoML Tables utilise ce bucket comme zone intermédiaire avant d'importer vos données.

Vous devez utiliser la console Google Cloud pour importer des fichiers CSV à partir de votre ordinateur local.

Utilisation des répartitions de données

Lorsque vous utilisez un ensemble de données pour entraîner un modèle, les données sont divisées en trois ensembles : un ensemble de données d'entraînement, un ensemble de données de validation et un ensemble de données de test.

Les ensembles de données d'entraînement et de validation permettent de tester un grand nombre de combinaisons d'options de prétraitement, d'architecture et d'hyperparamètres. Ces essais génèrent des modèles entraînés qui sont ensuite évalués sur l'ensemble de données de validation afin d'en déterminer la qualité et d'orienter l'exploration d'autres combinaisons d'options.

Lorsque des essais supplémentaires ne permettent plus d'améliorer la qualité, cette version du modèle est considérée comme le modèle entraîné final le plus performant. Ensuite, AutoML Tables entraîne deux autres modèles, en utilisant les paramètres et l'architecture déterminés lors de la phase de test en parallèle :

  1. Un modèle entraîné avec vos ensembles d'entraînement et de validation

    AutoML Tables génère les métriques d'évaluation du modèle sur ce modèle, à l'aide de votre ensemble de données de test. À ce stade du processus, il s'agit de la première fois que l'ensemble de données de test est utilisé. Cette approche permet de s'assurer que les métriques d'évaluation finales reflètent de manière impartiale les performances du modèle entraîné final en production.

  2. Un modèle entraîné avec vos ensembles d'entraînement, de validation et de test

    Ce modèle est celui que vous utilisez pour demander des prédictions.

À propos du contrôle de la répartition des données

Par défaut, AutoML Tables sélectionne de manière aléatoire 80 % des lignes de données pour l'entraînement, 10 % pour la validation et 10 % pour les tests. Pour les ensembles de données qui ne changent pas dans le temps, qui sont relativement équilibrés et qui reflètent la répartition des données à utiliser pour les prédictions en production, l'algorithme de sélection aléatoire est généralement suffisant. L'objectif principal est de s'assurer que votre ensemble de données de test représente précisément les données que le modèle verra en production. Ainsi, les métriques d'évaluation fourniront un signal précis sur la manière dont le modèle fonctionnera sur les données réelles.

Voici quelques cas où vous pourriez vouloir sélectionner précisément les lignes en fonction de votre logique de répartition des données :

  • Vos données sont sensibles au facteur temps.

    Dans ce cas, vous devez utiliser une colonne Heure ou une répartition manuelle qui désignera les données les plus récentes comme constituant l'ensemble de données de test.

  • Vos données de test incluent des données de populations qui ne seront pas représentées en production.

    Par exemple, imaginons que vous entraîniez un modèle sur les données d'achat d'un certain nombre de magasins. Vous savez cependant que le modèle sera principalement utilisé pour réaliser des prédictions pour les magasins qui ne figurent pas dans les données d'entraînement. Afin d'être certain que le modèle peut s'appliquer également aux magasins non représentés, vous devez isoler vos ensembles de données par magasin. En d'autres termes, votre ensemble de données de test ne doit concerner que des magasins absents de l'ensemble de données d'évaluation, et celui-ci ne doit inclure que des magasins absents de l'ensemble de données de test.

  • Vos classes sont déséquilibrées.

    Si l'une des classes est largement plus représentée qu'une autre dans vos données d'entraînement, vous devrez peut-être inclure manuellement davantage d'exemples de la classe minoritaire dans vos données de test. AutoML Tables n'effectuant pas d'échantillonnage stratifié, les exemples de la classe minoritaire dans l'ensemble de données de test peuvent être en nombre insuffisant, voire inexistants.

Pour contrôler quelles lignes sont sélectionnées pour telle répartition, vous pouvez choisir l'une des deux approches suivantes :

Si vous spécifiez à la fois la colonne de répartition des données et la colonne Heure, seule la colonne de répartition est utilisée pour répartir les données.

Colonne de répartition des données

La colonne de répartition des données vous permet de sélectionner des lignes spécifiques à utiliser pour l'entraînement, la validation et les tests. Lorsque vous créez vos données d'entraînement, vous ajoutez une colonne pouvant contenir l'une des valeurs suivantes (sensibles à la casse) :

  • TRAIN
  • VALIDATE
  • TEST
  • UNASSIGNED

Les valeurs de cette colonne doivent correspondre à l'une des deux combinaisons suivantes :

  • Tous les ensembles TRAIN, VALIDATE et TEST
  • Seuls les ensembles TEST et UNASSIGNED

Chaque ligne doit contenir une valeur pour cette colonne et ne peut être la chaîne vide.

Par exemple, si tous les ensembles sont spécifiés :

"TRAIN","John","Doe","555-55-5555"
"TEST","Jane","Doe","444-44-4444"
"TRAIN","Roger","Rogers","123-45-6789"
"VALIDATE","Sarah","Smith","333-33-3333"

Si seul l'ensemble de données de test est spécifié :

"UNASSIGNED","John","Doe","555-55-5555"
"TEST","Jane","Doe","444-44-4444"
"UNASSIGNED","Roger","Rogers","123-45-6789"
"UNASSIGNED","Sarah","Smith","333-33-3333"

La colonne de répartition des données peut avoir n'importe quel nom de colonne valide.

Si la valeur de la colonne de répartition des données est UNASSIGNED, AutoML Tables attribue automatiquement cette ligne à l'ensemble de données d'entraînement ou de validation.

Après avoir importé vos données, vous sélectionnez une répartition manuelle et spécifiez cette colonne comme colonne de répartition des données. (Vous pouvez également utiliser le champ mlUseColumnSpecId.)

Colonne Heure

Vous utilisez une colonne Heure pour indiquer à AutoML Tables que les données ne doivent pas être réparties de façon aléatoire dans le temps, car celui-ci est un facteur important. Lorsque vous spécifiez une colonne Heure, AutoML Tables utilise 80 % des données les plus anciennes pour l'entraînement, 10 % des lignes suivantes pour la validation et, enfin, 10 % des plus récentes pour les tests.

AutoML Tables traite chaque ligne comme un exemple d'entraînement indépendant et réparti de manière identique. La définition de la colonne Heure n'a aucune incidence. La colonne Heure n'est utilisée que pour diviser l'ensemble de données.

La colonne Heure doit contenir une valeur pour chaque ligne de l'ensemble de données. Assurez-vous que la colonne Heure contient suffisamment de valeurs distinctes afin que les ensembles de données d'évaluation et de test ne soient pas vides. En règle générale, vous devez indiquer au moins 20 valeurs distinctes.

Le type de données spécifié pour la colonne Heure doit être Timestamp.

Lors de l'examen du schéma, vous sélectionnez cette colonne comme colonne Heure. (Dans l'API, vous utilisez le champ timeColumnSpecId.) Cette sélection n'est appliquée que si vous n'avez pas spécifié la colonne de répartition des données.

Si vous ne souhaitez pas utiliser de colonne temporelle pour répartir les données, définissez le type de données de cette colonne sur Timestamp sans la définir comme colonne Heure.

A propos de l'utilisation des pondérations dans vos données d'entraînement

Par défaut, AutoML Tables pondère chaque ligne des données d'entraînement de manière égale : aucune ligne n'est considérée comme plus importante pour l'entraînement que les autres.

Il peut arriver que vous souhaitiez accentuer l'importance de certaines lignes pour l'entraînement. Par exemple, si vous exploitez des données de dépenses, vous pourriez vouloir renforcer l'incidence sur le modèle des données issues des utilisateurs les plus dépensiers. Si vous voulez avant tout éviter de manquer un résultat particulier, vous pouvez augmenter la pondération des lignes correspondantes.

Pour appliquer aux lignes une pondération relative, vous ajoutez une colonne de pondération à votre ensemble de données. La colonne de pondération doit être numérique. Elle permet de spécifier une valeur comprise entre 0 et 10 000. Des valeurs plus élevées indiquent à AutoML Tables que la ligne est plus importante pour l'entraînement du modèle. Une pondération de 0 signifie que la ligne est ignorée. Si vous incluez une colonne de pondération, elle doit contenir une valeur pour chaque ligne.

Plus tard, lorsque vous examinerez votre schéma, vous spécifierez cette colonne en tant que colonne de pondération. (Vous pouvez également utiliser le champ weightColumnSpecId.)

Les schémas de pondération personnalisés ne sont utilisés que pour l'entraînement du modèle ; ils n'affectent pas son évaluation.

Exigences concernant la colonne cible

La colonne cible doit respecter les exigences suivantes :

  • Elle doit être numérique ou catégorielle.
  • Si elle est catégorielle, elle doit contenir entre 2 et 500 valeurs distinctes.
  • Elle ne peut pas être de valeur nulle.

Étapes suivantes