Função ML.LABEL_ENCODER

Neste documento, descrevemos a função ML.LABEL_ENCODER, que pode ser usada para codificar uma expressão de string para um valor INT64 em [0, <number of categories>].

O vocabulário de codificação é classificado em ordem alfabética. Valores e categorias de NULL que não estão no vocabulário são codificados para 0.

Quando usados na cláusula TRANSFORM, os valores de vocabulário calculados durante o treinamento, junto com os k principais valores de limite de frequência especificados são usados automaticamente na previsão.

Sintaxe

ML.LABEL_ENCODER(string_expression [, top_k] [, frequency_threshold]) OVER()

ML.LABEL_ENCODER usa os seguintes argumentos:

  • string_expression: a expressão STRING a ser codificada.
  • top_k: um valor INT64 que especifica o número de categorias incluídas no vocabulário de codificação. A função seleciona as categorias mais frequentes de top_k nos dados e as usa. As categorias abaixo desse limite são codificadas com 0. Esse valor precisa ser menor que 1,000,000 para evitar problemas devido à alta dimensionalidade. O valor padrão é 32,000.
  • frequency_threshold: um valor INT64 que limita as categorias incluídas no vocabulário de codificação com base na frequência da categoria. A função usa categorias com frequência maior ou igual a frequency_threshold. As categorias abaixo desse limite são codificadas com 0. O valor padrão é 5.

Saída

ML.LABEL_ENCODER retorna um valor INT64 que representa a expressão de string codificada.

Exemplo

O exemplo a seguir executa a codificação de rótulo em um conjunto de expressões de string. Ele limita o vocabulário de codificação às duas categorias que ocorrem com mais frequência nos dados e que também ocorrem duas ou mais vezes.

SELECT f, ML.LABEL_ENCODER(f, 2, 2) OVER () AS output
FROM UNNEST([NULL, 'a', 'b', 'b', 'c', 'c', 'c', 'd', 'd']) AS f
ORDER BY f;

A saída será assim:

+------+--------+
|  f   | output |
+------+--------+
| NULL |      0 |
| a    |      0 |
| b    |      1 |
| b    |      1 |
| c    |      2 |
| c    |      2 |
| c    |      2 |
| d    |      0 |
| d    |      0 |
+------+--------+

A seguir