ML.IMPUTER 関数

このドキュメントでは、文字列または数式内の NULL 値を置換できる ML.IMPUTER 関数について説明します。NULL 値は、文字列式の中で最も頻繁に使用する値に置き換えることも、数値式の平均または中央値に置き換えることもできます。

TRANSFORMで使用すると、トレーニング中に平均値、中央値、および最も頻繁に使用される値について計算された値が自動的に予測に使用されます。

構文

ML.IMPUTER(expression, strategy) OVER()

引数

ML.IMPUTER は次の引数を取ります。

  • expression: 代入する数値または STRING 式。
  • strategy: NULL 値の置換方法を指定する STRING 値。有効な値は以下のとおりです。
    • mean: expression の平均。この値は数式でのみ使用できます。
    • median: expression の中央値。この値は数式でのみ使用できます。
    • most_frequent: expression の最頻値。

出力

ML.IMPUTER は、NULL 値の置換を含む FLOAT64 値(数値式) または STRING 値(文字列式)を返します。

例 1

次の例では、数式を代入します。

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;

出力は次のようになります。

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

例 2

次の例では、文字列式を代入します。

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;

出力は次のようになります。

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

次のステップ