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

sklearn版本一致仍出现ColumnTransformer属性缺失错误求助

问题描述

今日之前所有运行均正常,执行以下代码加载模型并调用predict时出现错误:

model_loaded = joblib.load(path + model)
print(model_loaded.__getstate__()['_sklearn_version'])
res = model_loaded.predict(binance)

执行输出:

1.2.1
479 for _, name, transform in self._iter(with_final=False):
--> 480 Xt = transform.transform(Xt)
AttributeError: 'ColumnTransformer' object has no attribute '_name_to_fitted_passthrough'

本地sklearn版本验证代码:

print('The scikit-learn version is {}.'.format(sklearn.__version__))

输出:

The scikit-learn version is 1.2.1.

本地sklearn版本与模型保存时版本一致,但仍出现属性缺失错误。

解决方法
  • 核对完整版本号:
    主版本一致不代表小补丁版本完全匹配,执行pip show scikit-learn查看完整版本信息,确保和保存模型时的环境完全一致。若有差异,安装对应精确版本:

    pip install scikit-learn==1.2.1  # 若补丁版本不同,替换为具体如1.2.1.post1
    
  • 重新训练并保存模型:
    如果有训练代码,用当前本地环境重新训练模型并保存,替换旧模型文件。这能彻底规避序列化时的环境细微差异问题。

  • 临时手动补全属性:
    加载模型后,手动为ColumnTransformer组件添加缺失属性。比如模型是Pipeline结构,包含名为preprocessor的预处理步骤:

    preprocessor = model_loaded.named_steps['preprocessor']
    preprocessor._name_to_fitted_passthrough = {}
    

    完成后再调用predict,但这仅作临时修复,优先推荐前两种方案。

  • 清理缓存重装依赖:
    缓存的旧文件可能导致版本异常,执行以下命令清理后重装:

    pip uninstall -y scikit-learn
    pip cache purge
    pip install scikit-learn==1.2.1
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 06:42:11