日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

sklearn svm 调参_SVM(Support Vector Machine)

發(fā)布時間:2023/12/10 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 sklearn svm 调参_SVM(Support Vector Machine) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

SVM是一種二元分類模型(當(dāng)然它也可以處理回歸問題),它通過訓(xùn)練樣本尋找分隔兩類樣本的最優(yōu)決策邊界(超平面),使得兩類樣本距離決策邊界的距離最遠(yuǎn)(例如H3)。其中距離決策邊界最近的樣本稱為支持向量(即深色的蘋果和香蕉),支持向量所在的與決策平面平行的平面稱為支撐平面(虛線),支撐平面與決策平面的距離稱為間隔(margin),SVM尋找最優(yōu)決策邊界實際上就是要最大化(最大可信度)兩個支撐平面的間隔(決策平面位于兩者的中間)。

SVM 模型根據(jù)數(shù)據(jù)集的差異可以分為三種類型:

線性可分 => 硬間隔最大化 => 線性可分SVM

線性不可分(有噪音)=> 軟間隔最大化 => 線性 SVM(引入松弛變量和懲罰函數(shù))

非線性可分 => 軟間隔最大化 + 核函數(shù) => 非線性 SVM

一、線性可分(硬間隔最大化)

假設(shè)決策超平面為: W·X + b = 0

正類支撐平面為: W·X + b = γ

由對稱關(guān)系可知負(fù)類支撐平面為: W·X + b = -γ

由于平面等比例縮放依然屬于同一平面, 即 5W·X + 5b = 5 與 W·X + b = 1 是同一個平面

所以前面的假設(shè)可以更簡潔地表示為(按γ等比例縮放):

決策平面: W·X + b =0

正類的支撐平面: W·X + b = 1

負(fù)類的支撐平面: W·X + b = -1

要求滿足以下規(guī)則:

計算兩個支撐平面的距離(margin)

由兩平面距離公式可知,平面 W·X + b + 1 = 0 與平面 W·X + b -1 = 0的距離為:

所以要最大化margin相當(dāng)于要最小化 ||w|| 即等價于:

最終的優(yōu)化問題(目標(biāo)函數(shù))變成:

二、線性不可分(軟間隔最大化)

當(dāng)訓(xùn)練數(shù)據(jù)含有噪音數(shù)據(jù)時,如果進(jìn)行硬間隔最大化可能會導(dǎo)致間隔過小甚至無法求解。

此時我們引入松弛變量(Slack Variable)ξ (epsilon ξ≥0) ,將原來的不等式約束變?yōu)?#xff1a;

松弛變量相當(dāng)于為支撐平面提供了一個容錯的區(qū)間,允許噪音數(shù)據(jù)存在(誤分類樣本),當(dāng)松弛變量越大那么容錯范圍越大,反之,當(dāng)ξ=0,等價于硬間隔最大化。當(dāng)然我們不能無限制地容錯,為了調(diào)和“間隔最大化”和“區(qū)分最大化”我們引入懲罰參數(shù)C,目標(biāo)函數(shù)變成:

說明:相當(dāng)于將“經(jīng)驗風(fēng)險最小化問題”轉(zhuǎn)變?yōu)橐肓酥眯棚L(fēng)險的“結(jié)構(gòu)風(fēng)險最小化問題”

說明:ξ_i≥0 與 hinge loss:max(0,1-y_i (w^T x_i+b)) 實際上是等價的。

當(dāng)C 越大,模型對誤分類的懲罰越大,相當(dāng)于分類更精確,但同時會犧牲間隔距離,可能導(dǎo)致過擬合。

當(dāng)C 越小,模型對誤分類的懲罰越少,相當(dāng)于更傾向于間隔距離最大化以提升泛化能力,但同時犧牲了分割性,可能導(dǎo)致欠擬合。

構(gòu)造廣義拉格朗日函數(shù)

由于第一步針對α和β的最大化含有約束條件,為了更方便求解問題,我們將求解原問題轉(zhuǎn)化為求解其對偶問題(由于滿足KKT條件所以對偶問題的解與原問題的解相等),即拉格朗日極大極小值問題:

分別對w、b、ξ 求偏導(dǎo)等于0得:

代入L消除w、b、ξ、β 得問題的最終表達(dá)式

通過SMO算法求解α的最優(yōu)解(將大優(yōu)化問題,分解為多個小優(yōu)化問題即只有兩個變量的二次規(guī)劃子問題)

求得最優(yōu) α* 后可以求得對應(yīng)的w* 、b*:

所以可知決策函數(shù)為:

備注:因為α_i*g(w,b,ξ)=0 所以只有當(dāng)g = 0時(樣本為支持向量),α>0,其余情況α=0,因此決策函數(shù)只與支持向量有關(guān)。

三、非線性可分

有時候數(shù)據(jù)集可能是非線性可分的,此時需要將原始特征映射φ到更高維的特征空間,使得樣本在高維特征空間內(nèi)線性可分,然后通過學(xué)習(xí)線性分類器的方法找到高維空間下的分類超平面。

然而直接將原始特征映射到高維特征再進(jìn)行計算并不容易,當(dāng)原始特征非常多時,映射后的維數(shù)也會非常高,此時計算量會非常大,甚至出現(xiàn)“維數(shù)災(zāi)難”,為了避免直接在高維空間進(jìn)行計算,我們引入核函數(shù)解決。

K(x,y)=

核函數(shù)的作用:在低維空間的計算結(jié)果與映射到高維空間后的表現(xiàn)等效,核函數(shù)可以理解為對高維空間的一種隱式映射。

例子:x = (x1, x2, x3); y = (y1, y2, y3).

定義映射 φ(x) = (x1x1, x1x2, x1x3, x2x1, x2x2, x2x3, x3x1, x3x2, x3x3), 將3維映射到9維

定義核函數(shù)K(x, y ) = ()2.

假設(shè) x = (1, 2, 3); y = (4, 5, 6). 那么

φ(x) = (1, 2, 3, 2, 4, 6, 3, 6, 9)

φ(y) = (16, 20, 24, 20, 25, 30, 24, 30, 36)

= 16 + 40 + 72 + 40 + 100+ 180 + 72 + 180 + 324 = 1024

使用核函數(shù)快速計算:

K(x, y) = (4+10+8)2= 322 = 1024

引入核函數(shù)后的目標(biāo)函數(shù)變?yōu)?#xff1a;

決策函數(shù):

四、常用核函數(shù)

線性核

徑向基函數(shù)核(RBF,SVM最常用的核函數(shù))

備注:γ決定RBF核的非線性程度,γ越大,分類邊界的非線性表達(dá)能力越突出,但可能導(dǎo)致過擬合,相反,γ越小,分類邊界越傾向于線性邊界,即更接近低維空間。這就是為什么sklearn的SVM中,gamma默認(rèn)是1/n_features,因為特征越多,越能線性可分,所以核函數(shù)的非線性能力相應(yīng)可以降低。

多項式核(Polynomial kernel,多用于NLP問題)

五、SVM調(diào)參方式

以RBF-SVM為例,主要涉及懲罰參數(shù)C和核參數(shù)γ。常用的調(diào)參方式是基于交叉驗證的網(wǎng)格搜索(GridSearchCV),即嘗試不同的(C,γ)組合,選擇交叉驗證精度最高的組合作為最優(yōu)參數(shù)。

六、多分類(one vs one):

將k個類進(jìn)行兩兩配對,產(chǎn)生k(k-1)/2個分類器(只需在對應(yīng)兩類的樣本中進(jìn)行訓(xùn)練),所有分類器對新樣本進(jìn)行預(yù)測,得票最多的類別為預(yù)測分類結(jié)果。

七、SVM優(yōu)點

泛化能力強(qiáng)(優(yōu)化目標(biāo)是結(jié)構(gòu)風(fēng)險最小化,即具有正則項,能有效防止過擬合)

通過核函數(shù)對高維空間的隱式映射,能有效解決非線性問題。

八、SVM缺點

對于大規(guī)模數(shù)據(jù)訓(xùn)練,由于計算量較大,訓(xùn)練效率較低。(究其根本,核化的SVM本身的時間復(fù)雜度 O(nm^2) 就是二次時間,m是樣本數(shù),n是特征數(shù)。當(dāng)數(shù)據(jù)量較大的時候,還面臨空間復(fù)雜度的問題,cache的儲存可能不夠)

模型解釋性較弱,無法給出概率結(jié)果。

本身是一個二分類模型,對于多分類問題比較乏力,需要采用one vs one, one vs all。

對于非線性問題,核函數(shù)的選擇以及調(diào)參比較麻煩。

九、應(yīng)用場景

小樣本、非線性、高維

十、SVM與邏輯回歸的比較

邏輯回歸收斂于任何可以將樣本分隔的決策邊界(雖然是最大似然估計,但本質(zhì)關(guān)心的只是會不會發(fā)生),而SVM則選擇間隔最大化的分界作為決策邊界,這通常意味著SVM具有更好的泛化能力

SVM可以通過引入非線性核解決非線性問題

SVM(尤其是核化的SVM)相比邏輯回歸需要更大的計算成本

SVM 無法直接給出概率解釋(需要通過代價高昂的五折交叉驗證方法計算概率),邏輯回歸可以直接給出概率解釋。

十一、算法選擇

特征數(shù)很大(特征≥10000,或接近樣本數(shù)):使用邏輯回歸或者線性核SVM

特征數(shù)少,樣本數(shù)適中(特征≤1000,樣本≤10000):使用RBF-SVM

特征數(shù)少,但樣本數(shù)很大:增加特征,然后使用邏輯回歸或線性核SVM

注意: SVM對特征縮放敏感,所以必須要對特征進(jìn)行歸一化或標(biāo)準(zhǔn)化處理。因為SVM是一種跟距離計算有關(guān)的模型,如果不進(jìn)行特征縮放,那么具有較大范圍值的特征對距離的影響會比其他特征更大,另外核函數(shù)往往涉及向量內(nèi)積的計算,特征縮放可以有效避免數(shù)值問題(溢出)

轉(zhuǎn)載請注明出處:

總結(jié)

以上是生活随笔為你收集整理的sklearn svm 调参_SVM(Support Vector Machine)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。