Función ML.IMPUTER

En este documento, se describe la función ML.IMPUTER, que te permite reemplazar valores NULL en una string o expresión numérica. Puedes reemplazar los valores NULL por el valor más usado para las expresiones de cadena o el valor de la media o la mediana para las expresiones numéricas.

Cuando se usan en la cláusula TRANSFORM, los valores calculados durante el entrenamiento para la media, la mediana y el valor más usado se usan automáticamente en la predicción.

Sintaxis

ML.IMPUTER(expression, strategy) OVER()

Argumentos

ML.IMPUTER toma los siguientes argumentos:

  • expression: la expresión numérica o STRING para imputar.
  • strategy: un valor STRING que especifica cómo reemplazar los valores NULL. Los valores válidos son los siguientes:
    • mean: la media de expression. Solo puedes usarlo con expresiones numéricas.
    • median: la mediana de expression. Solo puedes usarlo con expresiones numéricas.
    • most_frequent: el valor más frecuente en expression.

Resultado

ML.IMPUTER devuelve un valor FLOAT64 (para expresiones numéricas) o STRING (para expresiones de cadena) que contiene el reemplazo del valor NULL.

Ejemplos

Ejemplo 1

En el siguiente ejemplo, se implican expresiones 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;

El resultado es similar al siguiente:

+------+--------+
|  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 |
+------+--------+

Ejemplo 2

En el siguiente ejemplo, se implican expresiones de cadena:

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;

El resultado es similar al siguiente:

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

¿Qué sigue?