Qua*_*285 5 python scikit-learn
确切的警告是
....\.venv\lib\site-packages\sklearn\base.py:329: UserWarning: Trying to unpickle estimator LinearRegression from version 0.24.1 when using version 1.0.2. This might lead to breaking code or invalid results. Use at your own risk.
我在这里和其他论坛上看到了关于此事的几个问题 - 它们都总结为卸载并安装后一个版本。
我尝试过,但仍然收到错误。此外,模型构建和消费者位于相同的 VSCode 工作空间上,使用相同的 .venv 保存scikit-learn==1.0.2
- 那么 0.24.1 来自哪里,更重要的是,我如何解决这个警告并确保我的预测是正确的?
根据 @rickhg12hs 请求进行编辑:
代码部分非常基本:
self.ModelHeight = pickle.load(open(filePath, "rb")
Run Code Online (Sandbox Code Playgroud)
我认为(或者可能非常确定)这与创建sklearn
pickle 模型的版本有关- 这与您加载模型的版本不匹配。sklearn
在你的情况下
pip install scikit-learn==1.0.2
Run Code Online (Sandbox Code Playgroud)
应该可以解决问题。
就我而言,我尝试解决以下警告消息
/home/partha/anaconda3/lib/python3.7/site-packages/sklearn/base.py:334:
UserWarning: Trying to unpickle estimator LinearRegression from version 1.1.1
when using version 0.23.2. This might lead to breaking code or invalid results.
Use at your own risk.
UserWarning)
Run Code Online (Sandbox Code Playgroud)
和
pip install scikit-learn==1.1.1
Run Code Online (Sandbox Code Playgroud)
但该版本的文档说:
Version 1.1.0 of scikit-learn requires python 3.8+, ...
Run Code Online (Sandbox Code Playgroud)
而我正在跑步python 3.7
!
希望您与版本 1.0.1 的冲突应该得到解决,正如其文档所述:
Version 1.0.0 of scikit-learn requires python 3.7+, ...
Run Code Online (Sandbox Code Playgroud)
尽管这里不保证对现有版本(0.24.1)的其他依赖项!scikit-learn