ML.TRANSFORM 関数
このドキュメントでは、特徴データの前処理に使用できる ML.TRANSFORM
関数について説明します。この関数は、既存のモデルの TRANSFORM
句でキャプチャされたデータ変換を適用して、入力データを処理します。モデルのトレーニング中にデータ変換のために計算された統計値は、関数の入力データに適用されます。
特徴の前処理をサポートするモデルの詳細については、各モデルのエンドツーエンドのユーザー ジャーニーをご覧ください。
構文
ML.TRANSFORM( MODEL `project_id.dataset.model`, { TABLE `project_id.dataset.table` | (query_statement) } )
引数
ML.TRANSFORM
は次の引数を取ります。
project_id
: プロジェクト ID。dataset
: モデルを含む BigQuery データセットを指定するSTRING
値。model
: モデルの名前。モデルは、特徴データを手動で前処理するためのTRANSFORM
句を含むCREATE MODEL
ステートメントを使用して作成する必要があります。モデルがTRANSFORM
句を使用しているかどうかを確認するには、bq show
コマンドを使用して、モデルのメタデータを確認します。モデルがTRANSFORM
句を使用してトレーニングされた場合、モデル メタデータには変換列に関するセクションが含まれます。TRANSFORM
句なしでトレーニングされたモデルを指定すると、この関数はエラーを返します。table
: 前処理する特徴データを含む入力テーブルの名前。table
が指定されている場合、テーブルの入力列名はモデルのTRANSFORM
句の入力列名と一致する必要があります。また、型は BigQuery の暗黙の強制型変換ルールに従って互換性がある必要があります。 入力列名とデータ型は、特徴列に関するセクションでモデルのメタデータから取得できます。query_statement
: 前処理する特徴データを生成するクエリ。query_statement
句でサポートされる SQL 構文については、GoogleSQL クエリ構文をご覧ください。query_statement
が指定されている場合、クエリからの入力列名はモデルのTRANSFORM
句の入力列名と一致する必要があります。また、型は BigQuery の暗黙の強制型変換ルールに従って互換性がある必要があります。 入力列名とデータ型は、特徴列に関するセクションでモデルのメタデータから取得できます。
出力
ML.TRANSFORM
は、モデルの TRANSFORM
句で指定された列を返します。
例
次の例では、デフォルト プロジェクトの mydataset.mymodel
という名前のモデルに含まれる TRANSFORM
句を使用して前処理された特徴データを返します。
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 );
モデルの TRANSFORM
句で前処理された特徴データを返します。
SELECT * FROM ML.TRANSFORM( MODEL `mydataset.mymodel`, TABLE `bigquery-public-data.ml_datasets.penguins`);
次のような結果になります。
+-------------------------------------+--------+---------------------+---------------------+--------+-----------------+-------------+ | 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 | +-------------------------------------+--------+---------------------+---------------------+--------+-----------------+-------------+
次のステップ
- 特徴の前処理の詳細については、特徴量の前処理の概要をご覧ください。