如何将分类器升级到最新版本的scikit-learn



我有一个大的训练有素的TfidfVectorizer转储与joblib.dump。它是在我的笔记本电脑上用scikit-learn 0.18版本创建的。当我试图将它放到安装了最新版本scikit-learn 0.18.1的服务器上时,我收到了以下警告:

/usr/local/lib/python2.7/dist-packages/sklearn/base.py:315: UserWarning: Trying to unpickle estimator TfidfTransformer from version 0.18 when using version 0.18.1. This might lead to breaking code or invalid results. Use at your own risk.
  UserWarning)
/usr/local/lib/python2.7/dist-packages/sklearn/base.py:315: UserWarning: Trying to unpickle estimator TfidfVectorizer from version 0.18 when using version 0.18.1. This might lead to breaking code or invalid results. Use at your own risk.
  UserWarning) 

是否有一种自然的方式来升级我的TfidfVectorizer以防止任何问题?

我是否应该卸载scikit-learn 0.18.1并安装0.18版本到服务器?

是的,您应该在您的服务器上安装与您用于开发的相同版本,最佳实践是使用requirements.txt满足您项目的所有要求,并使用condavirtualenv在您的服务器上安装新环境,这将节省您手动设置这些东西的问题。

此链接提供如何升级的说明。

pip install -U scikit-learn

上面的命令应该将当前版本的scikit升级到最新版本。根据您正在使用的tfidf矢量器,您可能会或可能不会有问题;我建议随时更新新版本。因此,您最好确保您的服务器和计算机都运行最新的sci-kit。

您应该能够通过首先将sklearn更新到最新版本,然后使用joblib加载pickle对象来避免此问题。使用joblib.dump加载并转储它。当我这样做时,我不再收到警告。

请卸载并重新安装最新的Scikit(或升级到最新版本)。然后再次训练这个模型,这将产生一个新的job模型。

您应该安装您的项目使用的scikit版本。

第一次卸载scikit:

pip uninstall scikit-learn

然后安装正确的版本:

pip install -v scikit-learn==0.18

相关内容

  • 没有找到相关文章

最新更新