Я унаследовал некоторый код от коллеги, который покинул мою компанию, и я заметил, что почтовый открытый предиктор, который он написал, не запускался через несколько недель. Итак, я попытался запустить его. Дошло до этой линии:sklearn.externals.joblib не загружает файл pkl
clf_predict = joblib.load(os.path.join(data_dir,'trained_random_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, поэтому я не знаю, создаст ли это проблему. Цените любые указатели, которые вы можете дать