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

如何用已保存的机器学习模型测试新样本?含特征缺失疑问

用预训练Logistic Regression模型预测新病例

1. 加载模型并完成预测

首先用你提到的代码加载保存好的模型:

import pickle

# 替换为你的模型文件路径
filename = 'your_trained_model.pkl'
loaded_model = pickle.load(open(filename, 'rb'))

接下来准备新病例的特征数据,必须和训练时的特征顺序、维度完全一致(皮马印第安人糖尿病数据集的标准特征顺序是:怀孕次数、口服葡萄糖耐量试验2小时血糖、舒张压、三头肌皮褶厚度、2小时血清胰岛素、体重指数、糖尿病遗传函数、年龄)。哪怕只有一个样本,也要整理成二维数组格式:

# 示例新病例特征,对应上述8个特征
new_patient = [[2, 120, 70, 25, 80, 28.5, 0.351, 30]]
# 执行预测
result = loaded_model.predict(new_patient)
# 输出分类结果
print("预测结果:", "患病" if result[0] == 1 else "未患病")

2. 特征缺失的核心问题

  • 测试时必须提供训练时用到的全部特征:模型训练时已经固定了输入特征的维度和对应关系,少任何一个特征都会导致输入维度不匹配,直接抛出错误,根本无法完成预测。
  • 如果新病例有缺失数据,你得先做预处理:
    • 用训练集对应特征的统计值(比如均值、中位数、众数)填充缺失值,而且要和你训练模型前处理缺失值的逻辑一致(比如训练时用均值填充了血糖的缺失,预测时也得用同一个均值填)。
    • 绝对不能直接删掉缺失的特征列,除非你重新训练一个去掉该特征的模型,不然原模型不认维度减少的输入。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 09:52:35