使用BQML进行特征转换与模型构建
1. 手动预处理
BQML提供了多种手动预处理函数,可结合 CREATE MODEL
语法在训练前对数据进行预处理,这些函数也可在 TRANSFORM
子句之外使用。预处理函数可分为标量函数(对单行操作)和分析函数(对所有行操作并根据所有行的统计信息输出结果)。当在训练的 TRANSFORM
子句中使用ML分析函数时,相同的统计信息会自动应用于预测输入。
以下是BigQuery中支持的所有数据预处理函数列表:
| 函数名称 | 描述 |
| — | — |
| ML.BUCKETIZE | 根据提供的分割点将数值表达式划分为用户定义的类别 |
| ML.POLYNOMIAL_EXPAND | 生成给定数值特征集的多项式组合,直到指定的次数 |
| ML.FEATURE_CROSS | 生成分类特征的特征交叉,直到指定的次数 |
| ML.NGRAMS | 根据给定的n值范围从标记数组中提取n-gram |
| ML.QUANTILE_BUCKETIZE | 根据多个桶将数值表达式划分为基于分位数的类别 |
| ML.HASH_BUCKETIZE | 将字符串表达式划分为固定数量的基于哈希的桶 |
| ML.MIN_MAX_SCALER | 将数值表达式缩放到[0, 1]范围,以所有行的最小值和最大值为上限 |
| ML.STANDARD_SCALER | 对数值表达式进行标准化 |
| ML.MAX_ABS_SCALER | 通过除以最大绝对值将数值表达式缩放到[-1