使用 0.24.2 版本时尝试从 1.3.0 版本中取消 LogisticRegression 估计器。此警告是什么意思以及如何解决它?

问题描述 投票:0回答:1

我正在尝试在使用 scikit-learn 版本 1.3.0 进行训练的活动云 shell 上部署 LogisticRegression 模型,但收到以下警告消息:

/usr/local/lib/python3.9/site-packages/sklearn/base.py:310: UserWarning: Trying to unpickle estimator LogisticRegression from version 1.3.0 when using version 0.24.2. This might lead to breaking code or invalid results. Use at your own risk. warnings.warn(

此警告消息意味着什么以及如何解决它?

我正在使用:

  • Python 3.9。
  • scikit-learn 0.24.2.

我尝试将 scikit-learn 升级到版本 1.3.0,但警告消息仍然存在。

python scikit-learn pickle logistic-regression google-cloud-shell
1个回答
0
投票

建议仅加载使用与当前使用的包版本相同的模型创建的模型。原因是内部工作原理甚至数值计算的精度可能发生了变化。

尝试像这样想象(虚构且完全夸张):

您加载了一些字节。对于版本

0.24.2
,这将被翻译为字母
'a'
,而对于版本
1.3
,这将被翻译为数字
1.0

对此有一些解决方案:

  • 匹配版本,正如您已经尝试过的那样。您可以使用
    pip install scikit-learn==1.3.0
    或类似的。那么,至少 scikit-learn 不再是错误的原因。该警告可能会指向另一个版本不匹配。
  • 使用您现在使用的版本重新训练模型。
  • 使用
    requirements.txt
    文件存储您的软件包版本并基于此文件创建虚拟环境,确保安装所有必需的版本。
© www.soinside.com 2019 - 2024. All rights reserved.