Sklearn+joblib、pickle保存已训练模型并调用

使用sklearn训练好的模型和CountVectorizer的保存以及模型调用

1.概述
2.模型的保存
3.模型的调用

1.概述

对于已经训练好的模型是需要进行保存操作饿,否则每一次的使用都会重新再次训练,而模型的执行效率堪忧。为此本文利用joblib和pickle分别对分类模型进行磁盘保存,生成model.pkl和feature.pkl文件,在调用的过程中直接加载这两个文件就ok了。

2.模型的保存

下面展示一些 分类模型训练代码
对于分类模型可以参考上一篇文章,此处仅展示部分函数。

// An highlighted block
    model,vec = classifier_model(x_train,y_train)
    #对分类模型保存
    joblib.dump(model,'bayes_model.pkl',compress=3)
    #对训练集特征进行保存
    feature_path = 'E:feature.pkl'
    with open(feature_path,'wb') as fw:
        pickle.dump(vec.vocabulary_,fw)

3.模型的调用

from sklearn.externals import  joblib
import jieba
from sklearn.feature_extraction.text import CountVectorizer
import pickle
import  time

def model_predict(text,model,load_vec):
    text1 = [" ".join(jieba.cut(text))]    
    text2 = load_vec.transform(text1)
    predict_type = model.predict(text2)[0]
    print(predict_type)
    return predict_type

if __name__=="__main__":
    start = time.time()
    model_clone = joblib.load('bayes_model.pkl')
    load_vec = CountVectorizer(decode_error='replace',vocabulary=pickle.load(open("feature.pkl",'rb')))
    text = "这样做分类好吗?"
    model_predict(text,model_clone,load_vec)
    end= time.time()
    print(end-start)

参考文章:https://shazhenyu.blog.csdn.net/article/details/103037709
注:不妥之处请见谅。

你可能感兴趣的:(python,机器学习)