酸洗sklearn模型并在Web应用程序中使用它们

时间:2017-08-07 16:12:43

标签: python node.js scikit-learn pickle joblib

我创建了一个sklearn模型,我希望将其嵌入到我的nodejs web应用程序中。我用python3创建了模型,并将其打包到带有joblib的pkl文件中。

from sklearn.externals import joblib
joblib.dump(clf, 'RandomForest_jul30.pkl', protocol=2)

我正在使用npm包" child_process"运行一个python脚本,我将使用joblib.loads将数据加载到pkl文件中并解压缩它,尽管它会抛出错误:

ValueError: unsupported pickle protocol: 3

我试图更改我正在使用的python版本,尽管我仍然遇到类似的错误或与版本相关的错误。

编辑:当使用python 3运行时,错误是:

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

1 个答案:

答案 0 :(得分:0)

尝试使用cPickle

import cPickle as pkl
pkl.dump(clf,open('Clf.clf','wb+'))