Fungsi ML.ROBUST_SCALER

Dokumen ini menjelaskan fungsi ML.ROBUST_SCALER, yang memungkinkan Anda menskalakan ekspresi numerik menggunakan statistik yang andal untuk pencilan. Fungsi tersebut menjalankan penskalaan dengan menghapus median dan menskalakan data sesuai dengan rentang kuantil.

Saat digunakan dalam klausa TRANSFORM, rentang median dan kuantil yang dihitung selama pelatihan otomatis digunakan dalam prediksi.

Sintaksis

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

Argumen

ML.ROBUST_SCALER menggunakan argumen berikut:

  • numerical_expression: ekspresi numerik yang akan diskalakan.
  • quantile_range: array dua elemen INT64 yang menentukan rentang kuantil. Elemen pertama memberikan batas bawah rentang. Nilainya harus lebih besar dari 0. Elemen kedua memberikan batas atas rentang. Nilai ini harus lebih besar dari elemen pertama tetapi kurang dari 100. Nilai defaultnya adalah [25, 75].
  • with_median: nilai BOOL yang menentukan apakah data dipusatkan. Jika TRUE, fungsi tersebut akan memusatkan data dengan menghapus median sebelum penskalaan. Nilai defaultnya adalah TRUE.
  • with_quantile_range: nilai BOOL yang menentukan apakah data diskalakan ke rentang kuantil. Jika TRUE, data akan diskalakan. Nilai defaultnya adalah TRUE.

Output

ML.ROBUST_SCALER menampilkan nilai FLOAT64 yang mewakili ekspresi numerik yang diskalakan.

Contoh

Contoh berikut memusatkan kumpulan ekspresi numerik, lalu menskalakannya ke rentang [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;

Outputnya terlihat mirip dengan berikut ini:

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

Langkah selanjutnya