Prétraiter des données pour les algorithmes tabulaires intégrés

Cette page offre un aperçu général du prétraitement des données par AI Platform Training pour l'entraînement à l'aide d'algorithmes tabulaires intégrés. Sont également exposées les conditions requises et les limites applicables aux données d'entrée.

Algorithmes tabulaires intégrés

Les algorithmes tabulaires intégrés qui acceptent les données tabulaires (données numériques et catégorielles) présentent des fonctionnalités de prétraitement.

Si vous souhaitez obtenir des détails spécifiques sur le fonctionnement du prétraitement pour chaque algorithme tabulaire intégré, reportez-vous au guide correspondant :

La version distribuée de l'algorithme XGBoost n'est pas compatible avec le prétraitement automatique.

Mettre en forme les données d'entrée

Vos données d'entrée doivent être contenues dans un fichier CSV encodé en UTF-8.

Vous devez préparer ce fichier conformément aux conditions suivantes :

  • Supprimez la ligne d'en-tête. Cette ligne contient les libellés de chaque colonne. Supprimez-la afin d'éviter de l'envoyer avec le reste des instances de données en tant que données d'entraînement.
  • Assurez-vous que la colonne cible est placée en premier. La colonne cible contient la valeur que vous essayez de prédire. Pour un algorithme de classification, toutes les valeurs de la colonne cible représentent une classe ou une catégorie. Pour un algorithme de régression, toutes les valeurs de la colonne cible sont des valeurs numériques.

Fonctionnement du prétraitement

Le prétraitement automatique fonctionne avec les données catégorielles et numériques. La routine de prétraitement commence par analyser les données, puis les transforme.

Analyse

Tout d'abord, AI Platform Training analyse l'ensemble de données, colonne par colonne. Le programme détecte automatiquement le type de données de chaque colonne, détermine comment traiter la colonne pour transformer les données, puis effectue certains calculs statistiques sur les données de la colonne. La tâche d'entraînement capture les résultats de cette analyse dans le fichier metadata.json, qui est inclus avec d'autres artefacts d'entraînement dans votre bucket Cloud Storage.

  • Type : la colonne peut être numérique ou catégorielle.
  • Traitement : l'algorithme identifie comment traiter chaque colonne. Les colonnes peuvent être traitées comme des constants ou des constants. Les colonnes catégorielles peuvent également être étiquetées par identité ou vocabulaire, selon que les valeurs catégorielles sont des entiers ou des chaînes. Une colonne qui contient un grand nombre de catégories est traitée par hachage afin de réduire le nombre de catégories pour faciliter le calcul.
  • Statistiques : les statistiques sont calculées pour faciliter la transformation des caractéristiques dans chaque colonne, en fonction du type et du mode de traitement de la colonne.

Transformation

Une fois l'analyse initiale de l'ensemble de données terminée, AI Platform Training transforme les données en fonction des types, traitements et statistiques qui sont appliqués à l'ensemble de données. AI Platform Training effectue les transformations dans l'ordre suivant :

  1. Il divise l'ensemble de données d'entraînement en ensembles de données de validation et de test si vous spécifiez les pourcentages de répartition.
  2. Il supprime les lignes contenant plus de 10 % de valeurs manquantes.
  3. Il remplit les valeurs manquantes. La moyenne est utilisée pour les colonnes numériques. Pour XGBoost, des zéros sont utilisés pour les colonnes catégorielles.

Exemples de transformations

Les lignes contenant 10 % de valeurs manquantes sont supprimées. Dans les exemples suivants, nous supposons que la ligne contient 10 valeurs. Chaque ligne d'exemple est tronquée pour des raisons de simplicité.

Ligne concernée Valeurs d'origine Valeurs transformées Explication
Exemple de ligne sans valeurs manquantes [3, 0,45, ...,
'fruits', 0, 1]
[3, 0,45, ...,
1, 0, 0, 0, 1]
La chaîne "fruits" est transformée en valeurs "1, 0, 0" dans l'encodage one-hot. Pour les algorithmes basés sur TensorFlow, la transformation s'effectue dans le graphe TensorFlow. Pour XGBoost, la transformation est effectuée par AI Platform Training.
Trop de valeurs manquantes [3, 0,45, ...,
'fruits', __, __]
La ligne est supprimée. Plus de 10 % des valeurs de la ligne sont manquantes.
Valeur numérique manquante [3, 0,45, ...,
'fruits', 0, __]
[3, 0.45, ...,
1, 0, 0, 0, 0,54]
  • La valeur moyenne de la colonne remplace la valeur numérique manquante. Dans cet exemple, la moyenne est 0,54.
  • La chaîne "fruits" est transformée en valeurs "1, 0, 0" dans l'encodage one-hot. Pour les algorithmes basés sur TensorFlow, la transformation s'effectue dans le graphe TensorFlow. Pour XGBoost, la transformation est effectuée par AI Platform Training.
Valeur catégorielle manquante [3, 0,45, ...,
__, 0, 1]
[3, 0,45, ...,
0, 0, 0, 0, 1]
  • La valeur catégorielle manquante est transformée en valeurs "0, 0, 0" dans l'encodage one-hot. Pour les algorithmes basés sur TensorFlow, la transformation s'effectue dans le graphe TensorFlow. Pour XGBoost, la transformation est effectuée par AI Platform Training.

Il existe d'autres différences dans le processus de transformation, suivant le framework de ML sur lequel l'algorithme intégré est basé. Pour les algorithmes intégrés basés sur TensorFlow (algorithme de l'apprenant linéaire, algorithme large et profond), les traitements de colonne correspondent directement aux colonnes de caractéristiques créées dans le modèle TensorFlow. AI Platform Training attribue simplement des colonnes de caractéristiques au modèle d'Estimator TensorFlow, puis la transformation des données devient une partie du prétraitement qui s'effectue dans le modèle d'Estimator TensorFlow.

Sinon, comme avec XGBoost, AI Platform Training applique des traitements de colonne et effectue les transformations de données directement.

Étapes suivantes