Python sklearn.externals.joblib不加载pkl文件

Python sklearn.externals.joblib不加载pkl文件,python,scikit-learn,pickle,joblib,Python,Scikit Learn,Pickle,Joblib,我从一位离开我公司的同事那里继承了一些代码,我注意到他编写的电子邮件开放预测器已经几周没有运行了。所以,我试着运行它。到了这一行: clf\u predict=joblib.load(os.path.join(data\u dir,'trained\u random\u forest.pkl')) 结果是: File "/usr/local/lib/python2.7/distpackages/sklearn/externals/joblib/numpy_pickle.py", line 425

我从一位离开我公司的同事那里继承了一些代码,我注意到他编写的电子邮件开放预测器已经几周没有运行了。所以,我试着运行它。到了这一行:

clf\u predict=joblib.load(os.path.join(data\u dir,'trained\u random\u forest.pkl'))

结果是:

File "/usr/local/lib/python2.7/distpackages/sklearn/externals/joblib/numpy_pickle.py", line 425, in load
obj = unpickler.load()
File "/usr/lib/python2.7/pickle.py", line 858, in load dispatch[key](self)
File "/usr/lib/python2.7/pickle.py", line 1133, in load_reduce
value = func(*args)
File "sklearn/tree/_tree.pyx", line 923, in sklearn.tree._tree.Splitter.__cinit__ (sklearn/tree/_tree.c:8329)
TypeError: __cinit__() takes exactly 5 positional arguments (4 given)

从我在文档中看到的内容来看,加载的语法是正确的。因此,我最初的理论是,可能scikit learn已升级,无法读取当前的pickle文件(此时已有几个月了)。然而,我不确定它是否升级了,而且我对使用sklearn还很陌生,所以我不知道这是否会带来问题。感谢您提供的任何建议,假设它对您的同事有效,并且您的问题是由于sklearn升级造成的。拆分器init的额外参数是在中引入的。您可以尝试在早期版本的sklearn中加载pkl文件,并从中获取它