在Scikit中保存经过交叉验证的训练模型

时间:2015-09-21 17:02:47

标签: python scikit-learn pickle cross-validation

我使用scikit-learnCross-Validation分类器在Naive Bayes中训练了一个模型。我如何坚持使用此模型以便以后针对新实例运行?

以下是我所拥有的,我可以获得CV分数,但我不知道如何访问受过训练的模型

gnb = GaussianNB() 
scores = cross_validation.cross_val_score(gnb, data_numpy[0],data_numpy[1], cv=10)

1 个答案:

答案 0 :(得分:7)

cross_val_score不会更改您的估算值,也不会返回适当的估算值。它只返回交叉验证估算的分数。

为了适合您的估算工具 - 您应该使用提供的数据集明确地调用它。 要保存(序列化)它 - 你可以使用pickle:

# To fit your estimator
gnb.fit(data_numpy[0], data_numpy[1])
# To serialize
import pickle
with open('our_estimator.pkl', 'wb') as fid:
    pickle.dump(gnb, fid)
# To deserialize estimator later
with open('our_estimator.pkl', 'rb') as fid:
    gnb = pickle.load(fid)