天天看點

scikit-learn的基本用法——模型儲存與加載

1 模型儲存

見demo:

import pickle
from sklearn.svm import SVC
from sklearn import datasets
 
# 定義分類器
svm = SVC()
# 加載iris資料集
iris = datasets.load_iris()
# 讀取特征
X = iris.data
# 讀取分類标簽
y = iris.target
# 訓練模型
svm.fit(X, y)
# 儲存成python支援的檔案格式pickle, 在目前目錄下可以看到svm.pickle
with open('svm.pickle', 'wb') as fw:
    pickle.dump(svm, fw)
 
# 加載svm.pickle
with open('svm.pickle', 'rb') as fr:
    new_svm = pickle.load(fr)
    print new_svm.predict(X[0:1])
           

2 模型加載

from sklearn.externals import joblib
from sklearn.svm import SVC
from sklearn import datasets
 
# 定義分類器
svm = SVC()
 
# 加載iris資料集
iris = datasets.load_iris()
# 讀取特征
X = iris.data
# 讀取分類标簽
y = iris.target
 
# 訓練模型
svm.fit(X, y)
 
# 儲存成sklearn自帶的檔案格式
joblib.dump(svm, 'svm.pkl')
 
# 加載svm.pkl
new_svm = joblib.load('svm.pkl')
print new_svm.predict(X[0:1])
           

3 sklean增量學習

from sklearn.linear_model 
import SGDClassifier 
sgd_clf = SGDClassifier() # SGDClassifier的參數設定可以參考sklearn官網 minibatch_train_iterators = iter_minibatches(data_part_file, minibatch_size=2000) 
for i, (X_train, y_train) in enumerate(minibatch_train_iterators): 
    # 使用 partial_fit ,并在第一次調用 partial_fit 的時候指定 classes      
    sgd_clf.partial_fit(X_train, y_train, classes=np.array([0, 1])) print("{} time".format(i)) # 目前次數 print("{} score".format(sgd_clf.score(X_test, y_test))) # 在測試集上看效果
           

4 使用partial_fit實作兩個資料集的模型更新

# 加載模型為old_model
clf = old_model.copy()
new_model = clf.partial_fit(x_new,y_new)

# 訓練出新模型,but 需要清楚哪些模型有partial_fit。
           

5 sklearn中的coef_和intercept_

scikit-learn的基本用法——模型儲存與加載

6 skearn中有partial_fit的有哪些模型

樸素貝葉斯的三個常用模型:高斯、多項式、伯努利

參考:scikit-learn的基本用法(八)——模型儲存與加載

           使用sklearn進行增量學習

           sklearn中的coef_和intercept_

           樸素貝葉斯的三個常用模型:高斯、多項式、伯努利