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
: expressionSTRING
à encoder.drop
: valeurSTRING
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
: valeurINT64
qui spécifie le nombre de catégories incluses dans le vocabulaire d'encodage. La fonction sélectionne lestop_k
catégories les plus fréquentes dans les données et les utilise. Les catégories inférieures à ce seuil sont encodées en0
. Cette valeur doit être inférieure à1,000,000
pour éviter les problèmes dus à une dimensionnalité élevée. La valeur par défaut est32,000
.frequency_threshold
: valeurINT64
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 en0
. La valeur par défaut est5
.
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
- Pour en savoir plus sur le prétraitement des caractéristiques, consultez la page Présentation du prétraitement des caractéristiques.
- Pour en savoir plus sur les instructions et les fonctions SQL compatibles avec chaque type de modèle, consultez la section Parcours utilisateur de bout en bout pour chaque modèle.