Vertex AI AutoML分类模型训练与部署特征类型不一致问题咨询
Vertex AI AutoML分类模型特征类型不一致问题解析
问题现象
- 训练阶段手动将特征「time」设置为numeric类型,但部署后模型要求传入字符串格式的该特征值
- 传入数值格式请求
{"time" : 10}时触发错误:Column: time. Error: Expected string_value but got number_value. Type casting is not allowed.,传入字符串格式{"time": "10"}则可正常运行
原因分析
AutoML分类模型的特征类型最终判定,不仅看手动设置,还会结合原始数据集的存储格式和AutoML自动特征推断逻辑:
- 如果原始数据集中「time」列的数值是以字符串形式存储(比如CSV中是带引号的"10"而非纯数字),即使手动修改为numeric类型,AutoML在训练过程中可能仍保留底层的字符串特征处理逻辑,导致部署后的模型期望字符串输入
- AutoML分类模型并非强制要求特征为字符串,其底层包含的逻辑回归算法确实支持数值型特征,问题出在特征类型的实际映射未与手动设置完全对齐
解决办法
- 修正原始数据集格式:确保「time」列的数值为纯数字格式(无引号、非文本形式),重新导入数据集后再设置为numeric类型
- 确认训练前特征配置:在Vertex AI数据集界面查看「time」特征的详细信息,确认其类型显示为numeric且无格式冲突提示
- 预测时临时适配(若无法重新训练):在预测代码中将数值型的time值转换为字符串后传入,示例代码:
# 构造预测请求 payload = {"time": str(10)}
内容的提问来源于stack exchange,提问作者Krishna
相关产品推荐
相关产品推荐

