SVM引數介紹

2021-08-07 06:11:19 字數 909 閱讀 7154

svm模型有兩個非常重要的引數c與gamma。其中 c是懲罰係數,即對誤差的寬容度。c越高,說明越不能容忍出現誤差,容易過擬合。c越小,容易欠擬合。c過大或過小,泛化能力變差

gamma是選擇rbf函式作為kernel後,該函式自帶的乙個引數。隱含地決定了資料對映到新的特徵空間後的分布,gamma越大,支援向量越少,gamma值越小,支援向量越多。支援向量的個數影響訓練與**的速度。

此外大家注意rbf公式裡面的sigma和gamma的關係如下:

這裡面大家需要注意的就是gamma的物理意義,大家提到很多的rbf的幅寬,它會影響

每個支援向量對應的高斯的作用範圍

,從而影響泛化效能。我的理解:

如果gamma設的太大,

,對於未知樣本分類效果很差,存在訓練準確率可以很高,(如果讓

測試準確率不高的可能,就是通常說的過訓練;而如果設的過小,則會造成平滑效應太大,無法在訓練集上得到特別高的準確率,也會影響測試集的準確率。

使用交叉驗證grid search

model = svm.svr(kernel='rbf')

c_can = np.logspace(-2, 2, 10)

gamma_can = np.logspace(-2, 2, 10)

svr = gridsearchcv(model, param_grid=, cv=5)

svr.fit(x, y)

print'驗證引數:\n', svr.best_params_

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演算法的引數

1.c float引數,預設值為1.0 2.kernel str引數,預設為 rbf 演算法中提供的核函式型別,可選引數有 除了上面限定的核函式外,還可以給出自己定義的核函式,內部就是用自己定義的核函式來計算核矩陣。3.degree int型,預設為3 4.gamma float引數,預設為auto...

SVM使用與引數優化

對python語言有所了解的科研人員可能都知道scipy 乙個開源的基於python的科學計算工具包。基於scipy,目前開發者們針對不同的應用領域已經發展出了為數眾多的分支版本,它們被統一稱為scikits,即scipy工具包的意思。而在這些分支版本中,最有名,也是專門面向機器學習的乙個就是sci...