2012-08-17 37 views
3

跑了網格搜索分類從下面的IPython問題序列化我scikit學習(sklearn)網格搜索分類中的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的最新測試版。

謝謝:)

+2

你能編輯你的問題,告訴sklearn類的確切名稱,你試圖泡菜只要完整的追溯? – ogrisel 2012-08-17 10:37:40

回答

1

網格搜索分類器中使用,以保持其創建的泡菜問題的所有估計。此問題已被noted beforesolved。這個補丁comment告訴你可以通過酸洗best_estimator_來醃製分類器。在你的情況下,這將是:

cPickle.dump(clf.best_estimator_, f)