SVM演算法的引數

2021-10-25 02:39:14 字數 2784 閱讀 8816

1. c : float引數,預設值為1.0

2. kernel : str引數,預設為『rbf』

演算法中提供的核函式型別,可選引數有:

除了上面限定的核函式外,還可以給出自己定義的核函式,內部就是用自己定義的核函式來計算核矩陣。

3. degree : int型,預設為3

4. gamma :float引數,預設為auto

5. coef0 : float引數,預設值為0

6. probability : bool引數,預設為false

7. shrinking : bool引數,預設為ture

8. tol :float引數,預設為1e^-3

9. cache_size : float引數,預設為200

10. class_weight : 字典型別或者是balance字串,預設為none

11. verbose : bool引數,預設為false

12. max_iter : int引數,預設為-1

13. random_state :int引數,預設為none

14. fit()方法 :

15. predict()方法 :

基於以上的訓練,對**樣本t進行類別**,因此只需要接收乙個測試集t,該函式返回乙個陣列表示各測試樣本的類別。

16. 屬性有哪些

1. tp fp tn fn

2. 精確率(precision)

3. 召回率(recall)

4. 準確率

5.  特異性(specificity)

6. 用f1值綜合評估精確率和召回率

1. 計算分割超平面

b=clf_svc.intercept_

w=clf_svc.coef_

2. 檢視決策函式:decision_function中每一列的值代表距離各類別的距離

3. predict()函式:返回乙個陣列表示各測試樣本的類別

1. from random import shuffle   #引入隨機函式

shuffle(data)  #隨機打亂資料

2. data = data.as_matrix()

讀取excel資料訓練模型時,需要將**轉換成陣列,as_matrix()可將dataframe資料轉換成陣列。

替代函式:dataframe.values獲取的是dataframe中的資料,形式為陣列array。

data_train = data[:int(0.8*len(data)),:]   #選取前80%為訓練資料

data_test  = data[int(0.8*len(data)):,:]   #選取後20%為測試資料

又稱為可能性**或者錯誤矩陣。一種特定矩陣用來呈現演算法效能的視覺化效果,通常是監督學習,非監督學習通常用匹配矩陣(matching matrix)。

每一列代表**值,每一行代表的是實際的類別。

可以非常容易的表明多個類別是否有混淆(也就是乙個class被**成另乙個class)。

所有正確的**結果都在對角線上。

如上圖所示,class 0類共有59個例項,其中3個錯分為class 3,1個錯分為class 7,5個錯分為class 9。所以說 class 0 和class 9可能存在混淆。

是由fp,fn,tp,tn組成的兩行兩列的**。它允許我們做出更多的分析,而不僅僅是侷限在正確率。

準確率對於分類器的效能來說,並不是乙個好的衡量指標,因為如果資料集不平衡(每一類的資料樣本數量相差太大),很可能出現誤導性的結果。

SVM引數介紹

svm模型有兩個非常重要的引數c與gamma。其中 c是懲罰係數,即對誤差的寬容度。c越高,說明越不能容忍出現誤差,容易過擬合。c越小,容易欠擬合。c過大或過小,泛化能力變差 gamma是選擇rbf函式作為kernel後,該函式自帶的乙個引數。隱含地決定了資料對映到新的特徵空間後的分布,gamma越...

SVM引數優化

匯入包 from sklearn.svm import svc from sklearn.model selection import gridsearchcv將svm的c值和gamma調參,c值範圍為2 5 2 5到215 21 5,gamma值範圍為2 15 2 15到2 3 23.lmh sv...

SVM的引數說明

sklearn中svm,svm主要有linearsvc nusvc和svc三種方法。linearsvc penalty l2 loss squared hinge dual true,tol 0.0001,c 1.0,multi class ovr fit intercept true,interc...