scikit-learn模型參數保存和多分類策略(one vs one和one vs rest)



模型參數保存


方式1 使用 pickle

例如


>>> from sklearn import svm
>>> from sklearn import datasets
>>> clf = svm.SVC(gamma='scale')
>>> iris = datasets.load_iris()
>>> X, y = iris.data, iris.target
>>> clf.fit(X, y)
SVC(C=1.0, cache_size=200, class_weight=None, coef0=0.0,
decision_function_shape='ovr', degree=3, gamma='scale', kernel='rbf',
max_iter=-1, probability=False, random_state=None, shrinking=True,
tol=0.001, verbose=False)
>>> import pickle
>>> s = pickle.dumps(clf)  保存為一個變量
>>> clf2 = pickle.loads(s)   調用保存
>>> clf2.predict(X[0:1])
array([0])
>>> y[0]
0


方式2 使用joblib’s  保存到文件(推薦)


例如
>>> from joblib import dump, load
>>> dump(clf, 'filename.joblib')      保存
>>> clf = load('filename.joblib')     調用


參考自  scikitlearn-docs 2.1.4



多分類策略


one vs rest 和 one vs one


1

One-vs-all 也稱為one vs rest

參考

https://www.cnblogs.com/sl0309/p/10395010.html



右側有三類,

在此策略下,

三角   為一類  叉叉和方格  一同為一類   

同理

叉叉 為一類   三角和方格  一同為一類

方格 為一類   三角和叉叉  一同為一類


這樣 三個分類變成了 三個二分類 


推廣

類1 類2 類3 類4 ….類k

分為k個二分類

1  類1和其他(類2,3,。。。之和)

2  類2和其他(類1,3,。。。之和)

k  類k和其他(類1,2,。。,k-1之和)



2

one-versus-one

一對一的分類。

參考 https://www.cnblogs.com/CheeseZH/p/5265959.html


有圖有三個類

成對(兩兩)組成

三角 和 叉叉

方格 和 叉叉

三角 和 方格


類1  類2  類3  類4 。。。 類k

K-1個  類1 類2   and   類1 類3 and 。。。。  and 類1 類k

K-2個  類2 類3  and 類2 類4 and  。。。 and 類2 類k

。。。

1個  類k-1 and  類k

共(k-1)x((k-1)+1)/2


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM