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

如何匹配正确sklearn版本完成模型反序列化并解决运行报错

报错原因与处理方案

核心原因

你遇到的所有报错的根源是最开始的sklearn版本不兼容警告:你训练保存lgbm_v4.pkl模型时使用的sklearn版本为0.24.1,当前运行环境的sklearn版本为0.24.2。跨版本加载joblib序列化的模型时,模型内部绑定的LabelEncoder等组件行为出现异常,直接导致模型预测输出的标签为整数类型0/1,而你的测试集标签是字符串类型'0'/'1',触发类型不匹配报错,后续的多个报错都是第一个异常触发的连锁反应,和你写的基础代码逻辑无关。

处理方案

  • 优先选择对齐依赖版本:将当前环境的sklearn降级到和训练环境一致的0.24.1版本,执行命令:
    pip install scikit-learn==0.24.1
    
    降级完成后重新加载模型运行即可,该方案能彻底解决所有版本兼容导致的隐藏问题。
  • 临时修复标签类型问题:如果暂时不想调整依赖版本,可以在调用score方法前,先将测试集标签转换为和预测结果一致的整数类型:
    y_test = y_test.astype(int)
    result = lgbm_v4.score(X_test, y_test)
    
    该方案只能解决当前的类型报错,无法保证模型后续运行不会出现其他隐藏的兼容异常。
  • 重新训练模型:如果可以获取到原始训练代码和训练数据集,在当前0.24.2版本的sklearn环境下重新训练模型,保存新的pkl文件后加载使用,也可以彻底解决版本不兼容问题。

注意:后续使用joblib保存/加载sklearn系模型时,尽量保证训练和运行环境的sklearn版本完全一致,避免出现类似的兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 16:06:02