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:包含两个 INT64 元素的数组,指定分位数范围。第一个元素提供范围的下边界,必须大于 0。第二个元素提供范围的上边界,必须大于第一个元素,但小于 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 |
+------+---------------------+

后续步骤