Sklearn 错误:“SVR”对象没有属性“_impl”

Tim*_*imY 2 python python-2.7 scikit-learn

我正在做什么:我正在尝试使用在另一台机器上构建的经过测试的(经过腌制的)SVM 回归模型来预测数据。缩放工作正常,但即使尝试基于原始学习样本进行预测也会失败并出现相同的错误。

“SVR”对象没有属性“_impl”

该错误发生在装有 Python 2.7.5、Numpy 1.7.1 (MKL) 和 sklearn (scikit-learn 0.14.1) 的 WIN 7 64 位工作站上。两者都是 64 位。

编辑:

下面是代码。它在进行学习的机器上运行。

from sklearn.svm import SVR
from sklearn import preprocessing
import cPickle as cp
import numpy as np
model = cp.load(open('model.pkl', 'rb'))
scaler = cp.load(open('scaler.pkl', 'rb'))
theData = np.genfromtxt(open('inputData.csv','rb'), delimiter=',')
scaledXs = scaler.transform( theData )
result = model.predict( scaledXs )
Run Code Online (Sandbox Code Playgroud)

编辑2:仅供参考:学习部分是在使用0.13.1版本的piCloud上完成的。这可能是问题所在吗?

Tim*_*imY 5

我终于弄明白了。看来使用 sklearn 0.13.1 在 piCloud 上生成的模型与 0.14.1 库不兼容

由于找不到 AMD64 0.13.1 二进制文件,我最终在新机器上使用 0.14.1 库重新学习了模型,现在它工作正常。我还尝试在具有 0.13.1 库的机器上运行旧模型,并且运行良好。

  • 这是 scikit-learn 的一个众所周知的问题(实际上通常是“pickle”):任何重构都可能破坏 pickle 对象。 (2认同)