使用Python加载低版本训练的GaussianNB模型预测时出现AttributeError问题求助
解决GaussianNB模型加载后predict报错的问题
这个问题的核心是scikit-learn版本不兼容导致的:你用0.24.2版本训练并保存的GaussianNB模型,现在用1.0.2版本加载运行,两者之间GaussianNB的内部属性命名发生了变化——旧版本中用于存储方差的属性是sigma_,而新版本改成了var_,所以调用predict时会找不到var_属性报错。其他模型(决策树、SVM)在这两个版本间的兼容性更好,所以没出现问题。
下面是几种可行的解决方案:
方案1:降级scikit-learn到对应版本
直接把当前环境的scikit-learn降级到保存模型时的0.24.2版本,这样模型加载和运行就能完美匹配:
pip install scikit-learn==0.24.2
方案2:重新训练并保存模型
如果不想降级版本,建议用当前的1.0.2版本重新训练GaussianNB模型,然后用joblib保存新模型。这样后续加载使用就不会有版本兼容问题,也是最稳妥的长期解决方案。
方案3:临时修复模型属性(不推荐)
如果你暂时无法重新训练或降级版本,可以尝试手动给加载后的模型添加缺失的属性,把旧版本的sigma_赋值给var_:
bayes = joblib.load("D:/model/bayess.pkl") # 临时修复属性 if not hasattr(bayes, 'var_') and hasattr(bayes, 'sigma_'): bayes.var_ = bayes.sigma_ # 再执行预测 datas = [profile_pict, num_username, _fullname_words, num_fullname, cocok, _desc, url, private, __post, __followers, __following ,_rasio] identifikasi = bayes.predict([datas]) print(identifikasi)
⚠️ 注意:这种方法只是临时绕过当前错误,可能存在其他隐藏的兼容性问题,不建议在生产环境使用。
内容的提问来源于stack exchange,提问作者Alpenliee
相关产品推荐
相关产品推荐

