You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Azure训练导出的.pkl机器学习模型预测时出现DataException错误

问题根因

报错的核心是输入数据的格式不符合模型要求:
你当前将输入处理成了shape=(1,)的numpy数组,数组内唯一的元素是包含17个特征的字典,模型会把整个字典识别为1个特征,因此触发了「训练特征数17和输入特征数1不匹配」的错误。
从你提供的Azure官方评分脚本可以明确,该模型训练时接收的输入是带对应字段的pandas DataFrame,不需要转成numpy数组。

修正后的代码

import pickle
import pandas as pd

Pkl_Filename = 'model.pkl'

with open(Pkl_Filename, 'rb') as file:  
    Classifier_Model = pickle.load(file)

# 直接将特征列表转为DataFrame即可,不需要多余的JSON序列化/反序列化操作
predict_data = pd.DataFrame([{
    "Width": 25.99737167,
    "Length": 171.4788666,
    "Ratio": 6.596007809,
    "Perimter": 394.9524765,
    "Area": 4458,
    "Angle": 14.5224762,
    "R": 127,
    "G": 126,
    "B": 129,
    "H": 130,
    "S": 6,
    "V": 129,
    "H1": 130,
    "L1": 128,
    "S1": 3,
    "# Of Points": 36,
    "Epsilon": 2
}])

# 直接传入DataFrame进行预测
result = Classifier_Model.predict(predict_data)
print(result)

注意事项

  • 确保DataFrame的列名和训练时的特征名完全一致,列的顺序不需要和训练时对齐,pandas会自动匹配列名。
  • 如果后续需要使用JSON格式传参,只需要把JSON解析后的data字段列表直接传入pd.DataFrame()即可,不要转成numpy数组。

内容的提问来源于stack exchange,提问作者Crazy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 07:54:08