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_
6 skearn中有partial_fit的有哪些模型
樸素貝葉斯的三個常用模型:高斯、多項式、伯努利
參考:scikit-learn的基本用法(八)——模型儲存與加載
使用sklearn進行增量學習
sklearn中的coef_和intercept_
樸素貝葉斯的三個常用模型:高斯、多項式、伯努利