Função ML.IMPUTER

Neste documento, descrevemos a função ML.IMPUTER, que permite substituir valores NULL em uma string ou expressão numérica. É possível substituir os valores NULL pelo valor mais usado em expressões de string ou o valor médio ou mediano em expressões numéricas.

Quando usados na cláusula TRANSFORM, os valores médios, medianos e mais usados calculados durante o treinamento são automaticamente usados na previsão.

Sintaxe

ML.IMPUTER(expression, strategy) OVER()

Argumentos

ML.IMPUTER usa os seguintes argumentos:

  • expression: a expressão numérica ou STRING a ser imputada.
  • strategy: um valor STRING que especifica como substituir valores NULL. Estes são os valores válidos:
    • mean: a média da expression. Só é possível usar esse valor com expressões numéricas.
    • median: a mediana da expression. Só é possível usar esse valor com expressões numéricas.
    • most_frequent: o valor mais usado na expression.

Saída

ML.IMPUTER: um valor FLOAT64 (para expressões numéricas) ou STRING (para expressões de string) que contém a substituição do valor NULL.

Examples

Exemplo 1

O exemplo a seguir imputa expressões numéricas:

SELECT f, ML.IMPUTER(f, 'mean') OVER () AS output
FROM
  UNNEST([NULL, -3, -3, -3, 1, 2, 3, 4, 5]) AS f
ORDER BY f;

A saída será assim:

+------+--------+
|  f   | output |
+------+--------+
| NULL |   0.75 |
|   -3 |   -3.0 |
|   -3 |   -3.0 |
|   -3 |   -3.0 |
|    1 |    1.0 |
|    2 |    2.0 |
|    3 |    3.0 |
|    4 |    4.0 |
|    5 |    5.0 |
+------+--------+

Exemplo 2

O exemplo a seguir imputa expressões de string:

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

A saída será assim:

+------+--------+
|  f   | output |
+------+--------+
| NULL | c      |
| NULL | c      |
| NULL | c      |
| NULL | c      |
| a    | a      |
| a    | a      |
| b    | b      |
| b    | b      |
| c    | c      |
| c    | c      |
| c    | c      |
+------+--------+

A seguir