Fonction ML.ONE_HOT_ENCODER

Ce document décrit la fonction ML.ONE_HOT_ENCODER, qui vous permet d'encoder une expression de chaîne à l'aide d'un schéma d'encodage hot-hot ou dummy.

Le vocabulaire d'encodage est trié par ordre alphabétique. Les valeurs NULL et les catégories qui ne figurent pas dans le vocabulaire sont encodées avec une valeur index de 0. Si vous utilisez l'encodage dummy, la catégorie supprimée est encodée avec une value de 0.

Lorsque la fonction est utilisée dans la clause TRANSFORM, le vocabulaire et les valeurs de catégorie supprimées calculées lors de l'entraînement, ainsi que les valeurs Top k et de seuil de fréquence que vous avez spécifiées, sont automatiquement utilisées dans la prédiction.

Syntaxe

ML.ONE_HOT_ENCODER(string_expression [, drop] [, top_k] [, frequency_threshold]) OVER()

Arguments

ML.ONE_HOT_ENCODER utilise les arguments suivants :

  • string_expression : expression STRING à encoder.
  • drop : valeur STRING qui spécifie si la fonction supprime une catégorie. Les valeurs admises sont les suivantes :
    • none : conserve toutes les catégories. Il s'agit de la valeur par défaut.
    • most_frequent : supprime la catégorie la plus fréquemment trouvée dans l'expression de chaîne. En sélectionnant cette valeur, la fonction utilise un encodage dummy.
  • top_k : valeur INT64 qui spécifie le nombre de catégories incluses dans le vocabulaire d'encodage. La fonction sélectionne les top_k catégories les plus fréquentes dans les données et les utilise. Les catégories inférieures à ce seuil sont encodées en 0. Cette valeur doit être inférieure à 1,000,000 pour éviter les problèmes dus à une dimensionnalité élevée. La valeur par défaut est 32,000.
  • frequency_threshold : valeur INT64 qui limite les catégories incluses dans le vocabulaire d'encodage en fonction de la fréquence de catégorie. La fonction utilise des catégories dont la fréquence est supérieure ou égale à frequency_threshold. Les catégories inférieures à ce seuil sont encodées en 0. La valeur par défaut est 5.

Sortie

ML.ONE_HOT_ENCODER renvoie un tableau de valeurs struct au format ARRAY<STRUCT<INT64, FLOAT64>>. Le premier élément de la structure fournit l'index de l'expression de chaîne encodée, et le second élément fournit la valeur de l'expression de chaîne encodée.

Exemple

L'exemple suivant effectue un encodage dummy sur un ensemble d'expressions de chaîne. Cela limite le vocabulaire d'encodage aux dix catégories qui se produisent le plus fréquemment dans les données et qui se produisent également zéro fois ou plus.

SELECT f, ML.ONE_HOT_ENCODER(f, 'most_frequent', 10, 0) OVER () AS output
FROM UNNEST([NULL, 'a', 'b', 'b', 'c', 'c', 'c', 'd', 'd']) AS f
ORDER BY f;

La sortie ressemble à ceci :

+------+-----------------------------+
|  f   | output.index | output.value |
+------+--------------+--------------+
| NULL |  0           |  1.0         |
| a    |  1           |  1.0         |
| b    |  2           |  1.0         |
| b    |  2           |  1.0         |
| c    |  3           |  0.0         |
| c    |  3           |  0.0         |
| c    |  3           |  0.0         |
| d    |  4           |  1.0         |
| d    |  4           |  1.0         |
+------+-----------------------------+

Étapes suivantes