Sklearn参数详解—SVM
總第108篇
本篇主要講講Sklearn中SVM,SVM主要有LinearSVC、NuSVC和SVC三種方法,我們將具體介紹這三種分類方法都有哪些參數值以及不同參數值的含義。
在開始看本篇前你可以看看這篇:支持向量機詳解
LinearSVC
class sklearn.svm.LinearSVC(penalty='l2', loss='squared_hinge', dual=True, tol=0.0001, C=1.0, multi_class='ovr', fit_intercept=True, intercept_scaling=1, class_weight=None, verbose=0, random_state=None, max_iter=1000)penalty:正則化參數,L1和L2兩種參數可選,僅LinearSVC有。
loss:損失函數,有‘hinge’和‘squared_hinge’兩種可選,前者又稱L1損失,后者稱為L2損失,默認是是’squared_hinge’,其中hinge是SVM的標準損失,squared_hinge是hinge的平方。
dual:是否轉化為對偶問題求解,默認是True。
tol:殘差收斂條件,默認是0.0001,與LR中的一致。
C:懲罰系數,用來控制損失函數的懲罰系數,類似于LR中的正則化系數。
multi_class:負責多分類問題中分類策略制定,有‘ovr’和‘crammer_singer’ 兩種參數值可選,默認值是’ovr’,'ovr'的分類原則是將待分類中的某一類當作正類,其他全部歸為負類,通過這樣求取得到每個類別作為正類時的正確率,取正確率最高的那個類別為正類;‘crammer_singer’ 是直接針對目標函數設置多個參數值,最后進行優化,得到不同類別的參數值大小。
fit_intercept:是否計算截距,與LR模型中的意思一致。
class_weight:與其他模型中參數含義一樣,也是用來處理不平衡樣本數據的,可以直接以字典的形式指定不同類別的權重,也可以使用balanced參數值。
verbose:是否冗余,默認是False.
random_state:隨機種子的大小。
max_iter:最大迭代次數,默認是1000。
對象
coef_:各特征的系數(重要性)。
intercept_:截距的大小(常數值)。
NuSVC
class sklearn.svm.NuSVC(nu=0.5, kernel='rbf', degree=3, gamma='auto', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape='ovr', random_state=None))nu:訓練誤差部分的上限和支持向量部分的下限,取值在(0,1)之間,默認是0.5
kernel:核函數,核函數是用來將非線性問題轉化為線性問題的一種方法,默認是“rbf”核函數,常用的核函數有以下幾種:
| linear | 線性核函數 |
| poly | 多項式核函數 |
| rbf | 高斯核函數 |
| sigmod | sigmod核函數 |
| precomputed | 自定義核函數 |
關于不同核函數之間的區別,可以參考這篇文章:https://blog.csdn.net/batuwuhanpei/article/details/52354822
degree:當核函數是多項式核函數的時候,用來控制函數的最高次數。(多項式核函數是將低維的輸入空間映射到高維的特征空間)
gamma:核函數系數,默認是“auto”,即特征維度的倒數。
coef0:核函數常數值(y=kx+b中的b值),只有‘poly’和‘sigmoid’核函數有,默認值是0。
max_iter:最大迭代次數,默認值是-1,即沒有限制。
probability:是否使用概率估計,默認是False。
decision_function_shape:與'multi_class'參數含義類似。
cache_size:緩沖大小,用來限制計算量大小,默認是200M。
對象
support_:以數組的形式返回支持向量的索引。
support_vectors_:返回支持向量。
n_support_:每個類別支持向量的個數。
dual_coef_:支持向量系數。
coef_:每個特征系數(重要性),只有核函數是LinearSVC的時候可用。
intercept_:截距值(常數值)。
SVC
class sklearn.svm.SVC(C=1.0, kernel='rbf', degree=3, gamma='auto', coef0=0.0, shrinking=True, probability=False, tol=0.001, cache_size=200, class_weight=None, verbose=False, max_iter=-1, decision_function_shape='ovr', random_state=None)C:懲罰系數。
SVC和NuSVC方法基本一致,唯一區別就是損失函數的度量方式不同(NuSVC中的nu參數和SVC中的C參數)。
方法
三種分類方法的方法基本一致,所以就一起來說啦。
decision_function(X):獲取數據集X到分離超平面的距離。
fit(X, y):在數據集(X,y)上使用SVM模型。
get_params([deep]):獲取模型的參數。
predict(X):預測數據值X的標簽。
score(X,y):返回給定測試集和對應標簽的平均準確率。
你還可以看:
Sklearn參數詳解—LR模型
Sklearn參數詳解--決策樹
總結
以上是生活随笔為你收集整理的Sklearn参数详解—SVM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 系列终章,《夺宝奇兵 5》确认引进中国内
- 下一篇: 保时捷被传国产化 将落地合肥?官方回应