ML模型TRANSFORM子句:特征可见性、访问与空值处理咨询
关于BigQuery ML TRANSFORM子句的特征访问与预处理顺序问题
1. TRANSFORM生成特征不在临时表和ML.FEATURE_INFO()中是预期行为吗?
这是预期行为。TRANSFORM子句定义的预处理步骤属于模型训练的内部流程,生成的特征仅作为中间处理结果参与模型训练,不会被持久化到临时训练/评估数据表中;而ML.FEATURE_INFO()仅返回模型使用的原始输入特征的元数据,不会包含TRANSFORM生成的衍生特征。
2. 如何访问TRANSFORM转换后的特征?
有两种可靠方式获取转换后的特征:
- 手动复现预处理逻辑:将模型TRANSFORM子句中的步骤复制到SELECT语句中,直接对源数据执行转换。比如官方示例中的分桶逻辑,可单独编写查询:
SELECT *, ML.BUCKETIZE(mother_age, [15, 20, 25, 30, 35, 40, 45]) AS bucketized_mother_age FROM your_source_table - 使用ML.TRANSFORM函数:调用
ML.TRANSFORM(model_name, input_data),借助已训练的模型对输入数据执行相同的预处理流程,直接输出转换后的特征及原始数据。示例:SELECT * FROM ML.TRANSFORM(`your_project.your_dataset.your_model`, (SELECT * FROM your_source_table))
3. 自动插补与分桶操作的执行顺序?
当mother_age存在空值时,自动插补会在分桶操作之前执行。BigQuery ML的自动预处理遵循固定顺序:先完成缺失值处理(包括插补),再执行分桶、标准化等特征转换步骤,确保所有转换基于已清理的完整数据进行。
内容的提问来源于stack exchange,提问作者Geneviève Fleury
相关产品推荐
相关产品推荐

