Cette page décrit certains concepts de base dont vous devez tenir compte lorsque vous rassemblez des données pour un ensemble de données AutoML Tables. Cette description ne se veut pas exhaustive.
Introduction
Un ensemble de données bien conçu augmente la qualité du modèle de machine learning qui en résulte. Vous pouvez vous appuyer sur les instructions de cette page pour améliorer la qualité de votre ensemble de données et de votre modèle.
Si vous avez l'expérience de la création de données d'entraînement pour les modèles de machine learning, consultez la liste des tâches dont vous n'avez pas à vous soucier. AutoML Tables effectue automatiquement de nombreuses tâches de préparation des données.
Bonnes pratiques pour la préparation des données
Éviter les fuites cibles
Une fuite cible se produit lorsque les données d'entraînement contiennent des informations prédictives qui ne sont pas disponibles lorsque vous demandez une prédiction. Les fuites cibles peuvent se traduire par un modèle très précis dans son évaluation, mais peu performant sur des données réelles.
Par exemple, supposons que vous souhaitiez connaître la quantité de crèmes glacées que votre magasin vendra demain. Vous ne pouvez pas inclure la température du jour cible dans vos données d'entraînement, car vous ne la connaissez pas encore (ce n'est pas encore arrivé). Cependant, vous pouvez inclure dans la requête de prédiction la température prédite pour le jour précédent.
Éviter le décalage entraînement/diffusion
Un décalage entraînement/diffusion se produit lorsque vous générez des données d'entraînement de façon différente par rapport à celles que vous générez pour demander des prédictions.
Par exemple, si vous utilisez une valeur moyenne sur 10 jours pour l'entraînement et que la prédiction que vous demandez est établie sur la valeur moyenne du mois précédent.
En général, toute différence entre la façon dont vous générez les données d’entraînement et les données de diffusion (celles que vous utiliserez pour générer les prédictions) doit être examinée afin d'éviter un décalage entraînement/diffusion.
Décalage entraînement/diffusion et distribution des données
Un décalage entraînement/diffusion peut également se produire en fonction de la distribution des données dans vos répartitions des données d'entraînement, de validation et de test. Il existe souvent une différence entre la distribution des données qu'un modèle observe lorsqu'il est déployé en production et celle de l'ensemble de données sur lequel il est entraîné. Par exemple, en production, un modèle peut être appliqué à une population d'utilisateurs totalement différente de celle observée pendant l'entraînement, ou servir à effectuer des prédictions 30 jours après l'enregistrement des données d'entraînement finales.
Pour de meilleurs résultats, assurez-vous que la distribution des répartitions de données employées pour créer votre modèle reflète précisément la différence entre l'ensemble de données d'entraînement et les données sur lesquelles vous effectuerez des prédictions dans votre environnement de production. AutoML Tables peut produire des prédictions non monotones. Si les données de production sont échantillonnées à partir d'une distribution très différente de celle des données d'entraînement, les prédictions non monotones ne seront pas très fiables.
La différence entre les données de production et les données d'entraînement doit reproduire la différence entre la répartition des données de validation et la répartition des données d'entraînement, ainsi qu'entre la répartition des données de test et la répartition des données de validation.
Par exemple, si vous envisagez d'effectuer des prédictions sur la valeur vie client (LTV) au cours des 30 prochains jours, assurez-vous que la période des données de votre répartition des données de validation commence 30 jours après la période de votre répartition des données d'entraînement, et que la période des données de votre répartition des données de test commence 30 jours après votre répartition des données de validation.
De même, si vous souhaitez que votre modèle soit réglé pour générer des prédictions sur de nouveaux utilisateurs, veillez à ce que les données d'un utilisateur spécifique ne figurent que dans une seule répartition de vos données d'entraînement. Par exemple, toutes les lignes qui se rapportent à user1
figurent dans la répartition des données d'entraînement, toutes les lignes qui se rapportent à user2
figurent dans la répartition des données de validation, et toutes les lignes qui se rapportent à user3
figurent dans la répartition des données de test.
Fournir un signal horaire
Si le modèle sous-jacent de vos données est susceptible de changer avec le temps (elles ne sont pas distribuées de façon aléatoire dans le temps), veillez à fournir ces informations à AutoML Tables. Vous pouvez fournir un signal horaire de plusieurs manières :
Lorsque vous créez votre ensemble de données, si chaque ligne de données comporte un horodatage, assurez-vous que la colonne correspondante est incluse, qu'elle précise le type de données
Timestamp
et qu'elle est définie en tant que colonne Heure. Les données seront fractionnées en suivant cet ordre, les plus récentes constituant les données de test et les plus anciennes les données d'entraînement. En savoir plusSi votre colonne temporelle contient peu de valeurs distinctes, vous devez effectuer un fractionnement manuel des données au lieu d'utiliser la colonne Heure pour les fractionner. Sinon, vous risquez de ne pas obtenir suffisamment de lignes dans chaque ensemble de données, ce qui peut entraîner l'échec de l'entraînement.
Si les informations temporelles ne sont pas isolées dans une colonne, vous pouvez effectuer un fractionnement manuel des données pour utiliser les données les plus récentes comme données de test, et les données les plus anciennes comme données d'entraînement.
Rendre les informations explicites si nécessaire
En règle générale, lorsque vous créez un modèle à l'aide de AutoML Tables, il n'est pas nécessaire d'effectuer une extraction de caractéristiques. Toutefois, pour certaines primitives de données, cette opération permet d'améliorer la qualité du modèle.
Par exemple, si les données incluent la longitude et la latitude, ces colonnes sont traitées comme des valeurs numériques, sans calcul particulier. Si l'emplacement ou la distance constituent un signal pour votre problème, vous devez extraire une caractéristique qui fournit ces informations de manière explicite.
Voici quelques types de données pouvant nécessiter une extraction de caractéristiques :
- Longitude/Latitude
- URL
- Adresses IP
- Adresses e-mail
- Numéros de téléphone
- Autres codes géographiques (par exemple, des codes postaux)
Inclure des données calculées ou globales sur une ligne
AutoML Tables n'utilise que les données d'entrée d'une seule ligne pour prédire la valeur cible de cette ligne. Si vous avez calculé ou regroupé des données provenant d'autres lignes ou sources pouvant servir à déterminer la valeur estimée d'une ligne, incluez ces données dans la ligne source. Veillez à ce que la nouvelle colonne n'entraîne pas de fuite cible ni de décalage entraînement/diffusion.
Par exemple, si vous souhaitez prédire la demande de la semaine suivante pour un produit, vous pouvez améliorer la qualité de la prédiction en incluant des colonnes contenant les valeurs suivantes :
- Nombre total d'articles en stock de la même catégorie que le produit
- Prix moyen des articles en stock de la même catégorie que le produit
- Nombre de jours précédant un jour férié lorsque la prédiction est demandée
- et ainsi de suite
Dans un autre exemple, si vous souhaitez prédire si un utilisateur spécifique achètera un produit, vous pouvez améliorer la qualité de la prédiction en incluant des colonnes contenant les valeurs suivantes :
- Taux de conversion historique ou taux de clics moyen d'un utilisateur spécifique.
- Nombre de produits présents dans le panier de l'utilisateur.
Représenter les valeurs nulles comme chaînes vides
Si vos données utilisent des caractères spéciaux ou des chiffres pour représenter les valeurs nulles, cela peut poser des problèmes à AutoML Tables, car le programme ne connaît pas leur signification. Si vous importez au format CSV, utilisez des chaînes vides pour représenter les valeurs nulles. Si vous importez à partir de BigQuery, utilisez la valeur NULL.
Éviter les valeurs manquantes si possible
Vérifiez les valeurs manquantes dans vos données et corrigez-les si possible. Sinon, vous pouvez laisser la valeur vide si la colonne est définie comme pouvant être vide.
Utiliser des espaces pour séparer le texte
AutoML Tables segmente les chaînes de texte et peut déduire un signal d'entraînement à partir de mots individuels. Il utilise des espaces pour séparer les mots. Les mots séparés par d'autres caractères sont traités comme une seule entité.
Par exemple, si vous spécifiez le texte "rouge/vert/bleu", il n'est pas segmenté en "rouge", "vert" et "bleu". Si ces termes pris séparément sont importants pour l'entraînement du modèle, vous devez transformer le texte en "rouge vert bleu" avant de l'inclure dans les données d'entraînement.
Vérifier l'exactitude et la cohérence des caractéristiques catégorielles
Des incohérences au niveau des données peuvent fausser la répartition entre les catégories. Par exemple, si vos données incluent "Marron" et" "marron", AutoML Tables considère ces valeurs comme des catégories distinctes, alors que vous ne souhaitiez peut-être pas les différencier. Les fautes d'orthographe peuvent produire le même effet. Veillez à supprimer ce genre d'incohérences des données catégorielles avant de créer vos données d'entraînement.
Être attentif aux classes déséquilibrées
Si vos classes sont déséquilibrées (problème de classification avec un ou plusieurs résultats rarement rencontrés), reportez-vous aux conseils suivants.
Fournir suffisamment de données d'entraînement pour la classe minoritaire
Une classe qui ne comporte que quelques lignes de données abaisse la qualité du modèle. Si possible, essayez de fournir au moins 100 lignes de données pour chaque classe.
Préférer un fractionnement manuel
Pour l'ensemble de données de test, AutoM Tables sélectionne les lignes de manière aléatoire (mais déterministe). En cas de classes déséquilibrées, vous pourriez vous retrouver avec une classe minoritaire très peu représentée dans votre ensemble de données de test, voire pas du tout, ce qui entraînerait l'échec de l'entraînement.
Si vos classes sont déséquilibrées, il est conseillé d'effectuer un fractionnement manuel afin que chaque segment contienne suffisamment de lignes de résultats minoritaires.
Éviter les biais
Assurez-vous que vos données d'entraînement sont représentatives de la globalité des données potentielles pour lesquelles vous allez réaliser des prédictions. Par exemple, si vous avez des clients partout dans le monde, les données d'entraînement doivent couvrir plusieurs pays.
Fournir suffisamment de données d'entraînement
Si les données d'entraînement sont insuffisantes (en nombre de lignes), le modèle généré sera peu performant. Plus vous utilisez de caractéristiques (colonnes) pour entraîner le modèle, plus vous avez besoin de données (lignes). Pour les modèles de classification, la bonne formule est une structure composée d'au moins 10 fois plus de lignes que de colonnes. Pour les modèles de régression, vous devez fournir au moins 50 fois plus de lignes que de colonnes.
Votre ensemble de données doit toujours contenir au moins 1 000 lignes.
Laisser faire AutoML Tables pour tous les autres prétraitements et transformations
En dehors des observations ci-dessus, laissez AutoML Tables effectuer l'extraction de caractéristiques. AutoM Tables fonctionne mieux lorsqu'il a accès aux données sous-jacentes. Consultez la section Préparation des données effectuée automatiquement par AutoML Tables.
Préparation des données effectuée automatiquement par AutoML Tables
Cette section répertorie les exigences courantes concernant les données d'entraînement dont AutoML Tables se charge automatiquement. Vous n'avez pas besoin d'inclure ces calculs dans vos données d'entraînement. En fait, si vous effectuez ces transformations vous-même et que vous les incluez dans vos données d'entraînement, vous risquez d'abaisser la qualité du modèle obtenu.
Les transformations automatiques suivantes sont appliquées pour chaque colonne de caractéristiques en fonction du type de colonne :
Type de colonne | Transformation |
---|---|
Numérique |
|
Tableau numérique |
|
Catégoriel |
|
Tableau catégoriel |
|
Text |
|
Tableau texte |
|
Temporel |
|
Tableau d'horodatage |
|
Struct |
|
Valeurs nulles ou manquantes
Vous pouvez choisir le mode de gestion des valeurs nulles pour vos données d'entraînement en définissant cette colonne comme pouvant être nulle ou non dans votre schéma d'ensemble de données. Pour plus d'informations, consultez la page Créer un ensemble de données.
Si une valeur nulle apparaît dans une colonne pouvant être nulle, la ligne entière est exclue de l'entraînement.
Les valeurs nulles présentes dans les colonnes pouvant être nulles sont représentées avec une variable d'indicateur spéciale indiquant que la valeur était nulle ou manquante. Pour les transformations catégorielles et textuelles, l'indicateur génère une représentation vectorielle continue.
AutoML Tables traite les éléments suivants comme des valeurs nulles :
Valeur NULL BigQuery.
NaN ou valeurs numériques infinies.
Chaîne vide. AutoML Tables ne coupe pas les espaces à partir des chaînes. En d'autres termes, " "n'est pas considéré comme une valeur nulle.
Chaîne pouvant être convertie en NaN ou en valeur numérique infinie.
- Pour "NAN", ignore la casse, avec un préfixe "plus" ou "moins" facultatif.
- Pour "INF", ignore la casse, avec un préfixe "plus" ou "moins" facultatif.
Valeurs manquantes.
Étapes suivantes
- Mes données sont-elles impeccables ? Checklist pré-ML
- Préparez et organisez vos données pour le machine learning.