ML.ROBUST_SCALER 関数

このドキュメントでは、外れ値に対して堅牢な統計を使用し、数式をスケーリングできる ML.ROBUST_SCALER 関数について説明します。この関数は、中央値を削除し、四分位範囲に従ってデータをスケーリングすることで、スケーリングを実行します。

TRANSFORMで使用すると、トレーニング中に計算された中央値と四分位範囲が自動的に予測で使用されます。

構文

ML.ROBUST_SCALER(numerical_expression [, quantile_range] [, with_median] [, with_quantile_range]) OVER()

引数

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

  • numerical_expression: スケーリングする数値式。
  • quantile_range: 四分位範囲を指定する 2 つの INT64 要素の配列。最初の要素で範囲の下限を指定します。0 よりも大きい値にしてください。2 番目の要素で範囲の上限を指定します。最初の要素よりも大きく、100 よりも小さい値を指定する必要があります。デフォルト値は [25, 75] です。
  • with_median: データが中央に配置されるかどうかを指定する BOOL 値。TRUE の場合、この関数はスケーリングの前に中央値を削除することでデータを中心化します。デフォルト値は TRUE です。
  • with_quantile_range: データを四分位範囲にスケーリングするかどうかを指定する BOOL 値。TRUE の場合、データがスケーリングされます。デフォルト値は TRUE です。

出力

ML.ROBUST_SCALER は、スケーリングされた数値式を表す FLOAT64 値を返します。

次の例では、一連の数値式を中心化し、[25, 75] の範囲にスケーリングしています。

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

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

+------+---------------------+
|  f   |       output        |
+------+---------------------+
| NULL |                NULL |
|   -3 | -1.6666666666666667 |
|    1 | -0.3333333333333333 |
|    2 |                 0.0 |
|    3 |  0.3333333333333333 |
|    4 |  0.6666666666666666 |
|    5 |                 1.0 |
+------+---------------------+

次のステップ