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
:STRING
值,指定包含模型的 BigQuery 数据集。model
:模型的名称。模型必须是使用CREATE MODEL
语句创建的,而该语句包含TRANSFORM
子句以手动预处理特征数据。您可以通过使用bq show
命令查看模型的元数据,来检查模型是否使用TRANSFORM
子句。 如果模型是使用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 | +-------------------------------------+--------+---------------------+---------------------+--------+-----------------+-------------+
后续步骤
- 如需了解特征预处理,请参阅特征预处理概览。