天天看點

基于scikit-learn(sklearn)做分類--3.優化--儲存模型

上一章主要是講了分類的過程,這一章主要是講一些優化問題

主要是對于訓練的模型,要儲存下結果,而不用重複的訓練.

import split_jieba2

from sklearn.externals import joblib

def train():      

        tfidf_train_2 = tv.fit_transform(train_data);

//在訓練中訓練完tfidf,儲存一下tfidf模型,生成tfidf_model.m檔案,在test中直接load檔案就OK。

        joblib.dump(tv,"tfidf_model.m")

        clf = MultinomialNB(alpha=0.01)

        clf.fit(tfidf_train_2,train_target)

//同樣訓練完MultinomialNB模型後,儲存成clf_model.m檔案。

        joblib.dump(clf,"clf_model.m")

//上面訓練完模型後,後面就可以直接load檔案進行測試了。

def test(line):

        test_data = []

        content = split_jieba2.split_jieba(line)

        test_data.append(content.strip())

//加載模型

        tv = joblib.load("tfidf_model.m")

        tfidf_test_2 = tv.transform(test_data);

        clf = joblib.load("clf_model.m")

       ls = []

        proba=clf.predict_proba(tfidf_test_2)

        for i in range(len(proba[0])):

                lk = str(i) +":"+str( proba[0][i]   )

                ls.append(lk)

        return ls

//最後傳回各個類和對應的機率