Fungsi ML.TRANSFORM

Dokumen ini menjelaskan fungsi ML.TRANSFORM, yang dapat Anda gunakan untuk melakukan prapemrosesan data fitur. Fungsi ini memproses data input dengan menerapkan transformasi data yang ditangkap dalam klausa TRANSFORM dari model yang ada. Statistik yang dihitung untuk transformasi data selama pelatihan model diterapkan pada data input fungsi.

Untuk mengetahui informasi selengkapnya tentang model yang mendukung pra-pemrosesan fitur, lihat Perjalanan pengguna secara menyeluruh untuk setiap model.

Sintaksis

ML.TRANSFORM(
  MODEL `project_id.dataset.model`,
  { TABLE `project_id.dataset.table` | (query_statement) }
)

Argumen

ML.TRANSFORM menggunakan argumen berikut:

  • project_id: Project ID Anda.
  • dataset: nilai STRING yang menentukan set data BigQuery yang berisi model.
  • model: Nama model. Model harus dibuat menggunakan pernyataan CREATE MODEL yang menyertakan klausa TRANSFORM untuk melakukan prapemrosesan data fitur secara manual. Anda dapat memeriksa apakah model menggunakan klausa TRANSFORM dengan menggunakan perintah bq show untuk melihat metadata model. Jika model dilatih menggunakan klausa TRANSFORM, metadata model akan berisi bagian tentang kolom transformasi. Fungsi ini akan menampilkan error jika Anda menentukan model yang dilatih tanpa klausa TRANSFORM.
  • table: Nama tabel input yang berisi data fitur yang akan diproses sebelumnya.

    Jika table ditentukan, nama kolom input dalam tabel harus cocok dengan nama kolom input dalam klausa TRANSFORM model, dan jenisnya harus kompatibel sesuai dengan aturan pemaksaan implisit BigQuery. Anda bisa mendapatkan nama kolom input dan jenis data dari metadata model, di bagian kolom fitur.

  • query_statement: Kueri yang menghasilkan data fitur untuk diproses sebelumnya. Untuk sintaksis SQL yang didukung dari klausa query_statement, lihat sintaksis kueri GoogleSQL.

    Jika query_statement ditentukan, nama kolom input dari kueri harus cocok dengan nama kolom input dalam klausa TRANSFORM model, dan jenisnya harus kompatibel sesuai dengan aturan pemaksaan implisit BigQuery. Anda bisa mendapatkan nama kolom input dan jenis data dari metadata model, di bagian kolom fitur.

Output

ML.TRANSFORM menampilkan kolom yang ditentukan dalam klausa TRANSFORM model.

Contoh

Contoh berikut menampilkan data fitur yang telah diproses sebelumnya menggunakan klausa TRANSFORM yang disertakan dalam model bernama mydataset.mymodel di project default Anda.

Buat model yang berisi klausa TRANSFORM:

CREATE OR REPLACE MODEL `mydataset.mymodel`
  TRANSFORM(
    species,
    island,
    ML.MAX_ABS_SCALER(culmen_length_mm) OVER () AS culmen_length_mm,
    ML.MAX_ABS_SCALER(flipper_length_mm) OVER () AS flipper_length_mm,
    sex,
    body_mass_g)
  OPTIONS (
    model_type = 'linear_reg',
    input_label_cols = ['body_mass_g'])
AS (
  SELECT *
  FROM `bigquery-public-data.ml_datasets.penguins`
  WHERE body_mass_g IS NOT NULL
);

Tampilkan data fitur yang telah diproses sebelumnya oleh klausa TRANSFORM model:

SELECT
  *
FROM
  ML.TRANSFORM(
    MODEL `mydataset.mymodel`,
    TABLE `bigquery-public-data.ml_datasets.penguins`);

Hasilnya akan mirip dengan berikut ini:

+-------------------------------------+--------+---------------------+---------------------+--------+-----------------+-------------+
| species                             | island | culmen_length_mm    | flipper_length_mm   | sex    | culmen_depth_mm | body_mass_g |
--------------------------------------+--------+ ------------------- +---------------------+--------+-----------------+-------------+
| Adelie Penguin (Pygoscelis adeliae) | Dream  | 0.61409395973154368 | 0.79653679653679654 | Female | 18.4            | 3475.0      |
| Adelie Penguin (Pygoscelis adeliae) | Dream  | 0.66778523489932884 | 0.79653679653679654 | Male   | 19.1            | 4650.0      |
+-------------------------------------+--------+---------------------+---------------------+--------+-----------------+-------------+

Langkah selanjutnya