序列化adaboost分类器scikit-learn

时间:2014-01-02 21:39:27

标签: python serialization scikit-learn pickle adaboost

我正在尝试使用scikit-learn AdaBoostClassifier,并且我正在尝试使用cPickle将输出分类器序列化以将其保存到数据库或文件中,但是我出了内存错误,当我使用marshal时,它给了我一个不易破坏的物体。所以,我想知道如何序列化这个学习的分类器。

def adboost_classify(X,Y):
   bdt = AdaBoostClassifier(DecisionTreeClassifier(max_depth=10),
                    algorithm="SAMME.R",
                     n_estimators=3000)
   t0 = time()
   bdt.fit(X, Y)
   t1 = time()
   thebytes = cPickle.dumps(bdt)

提前谢谢

1 个答案:

答案 0 :(得分:0)

这是因为您尝试将整个表示存储在内存中。尝试直接将其写入文件:

with open('adaboostpickled.tmp', 'w') as output:
    cPikle.dump(bdt, output)