手动特征预处理
您可以将 CREATE MODEL
语句的 TRANSFORM
子句与手动预处理函数结合使用来定义自定义数据预处理。您还可以在 TRANSFORM
子句之外使用这些手动预处理函数。
如果您要将数据预处理与模型训练分离,您可以使用 TRANSFORM
子句创建一个仅执行数据转换的仅限转换的模型。
您可以使用 ML.TRANSFORM
函数来提高特征预处理的透明度。借助此函数,您可以从模型的 TRANSFORM
子句返回预处理的数据,以便查看进入模型训练阶段的实际训练数据,以及进入模型服务阶段的实际预测数据。
如需了解 BigQuery ML 中的特征预处理支持,请参阅特征预处理概览。
如需了解每种模型类型支持的 SQL 语句和函数,请参阅每个模型的端到端用户体验历程。
预处理函数的类型
手动预处理函数有多种类型:
- 标量函数处理单个行,例如
ML.BUCKETIZE
。 - 表值函数对所有行运行,并输出一个表。例如
ML.FEATURES_AT_TIME
。 分析函数处理所有行,并根据所有行中收集的统计信息输出每行的结果。例如
ML.QUANTILE_BUCKETIZE
。您必须始终将空的
OVER()
子句与机器学习分析函数搭配使用。如果您在训练期间在
TRANSFORM
子句中使用机器学习分析函数,系统会自动对预测中的输入应用相同的统计信息。
以下部分介绍了可用的预处理函数。
常规函数
您可以对字符串表达式或数值表达式使用以下函数,以进行数据清理:
数值函数
对数值表达式使用以下函数,以将数据标准化:
ML.BUCKETIZE
ML.MAX_ABS_SCALER
ML.MIN_MAX_SCALER
ML.NORMALIZER
ML.POLYNOMIAL_EXPAND
ML.QUANTILE_BUCKETIZE
ML.ROBUST_SCALER
ML.STANDARD_SCALER
分类函数
使用以下函数对分类数据进行操作:
文本函数
对文本字符串表达式使用以下函数:
图片函数
对图片数据使用以下函数:
已知限制
- BigQuery ML 支持模型导出中的自动预处理和手动预处理。请参阅导出使用 BigQuery ML
TRANSFORM
子句训练的模型所支持的数据类型和函数。