我在iPython:中从下面运行了网格搜索分类器
http://scikit-learn.org/dev/auto_examples/grid_search_digits.html
然后尝试通过酸洗将其序列化,但收到了以下回溯:
In [6]: with open('clf.pkl', 'wb') as f:
cPickle.dump(clf, f)
...:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-577559be619c> in <module>()
1 with open('clf.pkl', 'wb') as f:
----> 2 cPickle.dump(clf, f)
3
/Library/Frameworks/EPD64.framework/Versions/7.3/lib/python2.7/copy_reg.pyc in _reduce_ex(self, proto)
68 else:
69 if base is self.__class__:
---> 70 raise TypeError, "can't pickle %s objects" % base.__name__
71 state = base(self)
72 args = (self.__class__, base, state)
TypeError: can't pickle instancemethod objects
附近有工作吗?
我正在使用iPython和sklearn的最新测试版。
感谢:)
网格搜索分类器用于保留产生pickle问题的所有估计器。这个问题以前已经注意到并解决了。这个补丁注释告诉您可以通过pickle best_estimator_
来pickle分类器。在你的情况下,这将是:
cPickle.dump(clf.best_estimator_, f)