如何将经过训练的Naive Bayes classifierdisk个数据保存起来,并将其用于predict个数据?

我有以下来自SCRICKIT-LEARN网站的示 routine 序:

from sklearn import datasets
iris = datasets.load_iris()
from sklearn.naive_bayes import GaussianNB
gnb = GaussianNB()
y_pred = gnb.fit(iris.data, iris.target).predict(iris.data)
print "Number of mislabeled points : %d" % (iris.target != y_pred).sum()

推荐答案

分类器只是可以像任何其他对象一样进行酸洗和转储的对象.要继续您的示例,请执行以下操作:

import cPickle
# save the classifier
with open('my_dumped_classifier.pkl', 'wb') as fid:
    cPickle.dump(gnb, fid)    

# load it again
with open('my_dumped_classifier.pkl', 'rb') as fid:
    gnb_loaded = cPickle.load(fid)

编辑:如果您使用的是sklearn Pipeline,其中有无法通过pickle(或joblib)序列化的自定义转换器,那么使用Neuraxix的custom ML Pipeline saving是一种解决方案,您可以在每一步的基础上定义自己的自定义step savers.如果在保存时定义了saver,则会 for each 步骤调用saver,否则对于没有saver的步骤,会使用joblib作为默认值.

Python相关问答推荐

KNN分类器中的GridSearchCV

模型序列化器中未调用现场验证器

跟踪我已从数组中 Select 的样本的最有效方法

如何使用scipy从频谱图中回归多个高斯峰?

Pandas 在最近的日期合并,考虑到破产

Python daskValue错误:无法识别的区块管理器dask -必须是以下之一:[]

Deliveryter Notebook -无法在for循环中更新matplotlib情节(保留之前的情节),也无法使用动画子功能对情节进行动画

将数据框架与导入的Excel文件一起使用

' osmnx.shortest_track '返回有效源 node 和目标 node 的'无'

如何在Python数据框架中加速序列的符号化

海上重叠直方图

转换为浮点,pandas字符串列,混合千和十进制分隔符

从嵌套的yaml创建一个嵌套字符串,后面跟着点

基于另一列的GROUP-BY聚合将列添加到Polars LazyFrame

Python pint将1/华氏度转换为1/摄氏度°°

如何在Python Pandas中填充外部连接后的列中填充DDL值

递归函数修饰器

我什么时候应该使用帆布和标签?

如何在SQLAlchemy + Alembic中定义一个"Index()",在基表中的列上

Polars时间戳同步延迟计算