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

如何部署多特征训练的机器学习模型,解决predict()多特征预测异常问题

解决sklearn模型predict()多特征单样本预测问题

嘿,我太懂你碰到的这个坑了!你用的sklearn模型里,predict()方法对输入格式是有要求的——它需要的是二维数组,哪怕你只有一个待预测的样本也得遵循这个规则。

你之前直接传[46.8,11,7,0.686563,6.540829e-08,1.133174e-09]这种一维列表,模型会误以为这是6个单特征的样本,而不是1个拥有6个特征的样本,这就和你训练模型时的特征维度不匹配,自然就出问题啦。

给你两种简单的解决办法:

1. 单样本预测(你的场景)

把输入数据再嵌套一层括号,转成二维列表就行,代码改成这样:

from sklearn.externals import joblib
model = joblib.load('SVM_LINEAR')
# 给输入套一层括号,变成二维结构
input_data = [[46.8,11,7,0.686563,6.540829e-08,1.133174e-09]]
pred_result = model.predict(input_data)
print(pred_result)

2. 多样本预测(提前给你备着)

要是以后需要一次性预测多个样本,只要把每个样本都放在一个子列表里,整体组成一个二维列表就好:

from sklearn.externals import joblib
model = joblib.load('SVM_LINEAR')
# 每个子列表对应一个待预测的多特征样本
input_data = [
    [46.8,11,7,0.686563,6.540829e-08,1.133174e-09],
    [32.1,9,6,0.712,5.8e-08,1.0e-09]
]
pred_results = model.predict(input_data)
print(pred_results)

本质上就是sklearn的API要求输入特征矩阵的形状是(样本数量, 特征数量),咱们把输入调整成符合这个形状的结构,模型就能正常工作啦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 08:42:33