在 Scikit 中保存经过交叉验证训练的模型
Saving a cross-validation trained model in Scikit
我在 scikit-learn
中使用 Cross-Validation
和 Naive Bayes
分类器训练了一个模型。我如何才能将此模型坚持到以后 运行 针对新实例?
这就是我所拥有的,我可以获得 CV
分数,但我不知道如何访问经过训练的模型
gnb = GaussianNB()
scores = cross_validation.cross_val_score(gnb, data_numpy[0],data_numpy[1], cv=10)
cross_val_score 不会更改您的估算器,也不会 return 拟合估算器。它只是 return 交叉验证估计器的分数。
为了拟合您的估算器 - 您应该使用提供的数据集明确调用拟合。
要保存(序列化)它 - 你可以使用 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)
我在 scikit-learn
中使用 Cross-Validation
和 Naive Bayes
分类器训练了一个模型。我如何才能将此模型坚持到以后 运行 针对新实例?
这就是我所拥有的,我可以获得 CV
分数,但我不知道如何访问经过训练的模型
gnb = GaussianNB()
scores = cross_validation.cross_val_score(gnb, data_numpy[0],data_numpy[1], cv=10)
cross_val_score 不会更改您的估算器,也不会 return 拟合估算器。它只是 return 交叉验证估计器的分数。
为了拟合您的估算器 - 您应该使用提供的数据集明确调用拟合。 要保存(序列化)它 - 你可以使用 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)