-
當前位置:首頁 > 創(chuàng)意學(xué)院 > 技術(shù) > 專題列表 > 正文
svm中的核函數(shù)(svm的核函數(shù)作用是什么)
大家好!今天讓創(chuàng)意嶺的小編來大家介紹下關(guān)于svm中的核函數(shù)的問題,以下是小編對此問題的歸納整理,讓我們一起來看看吧。
開始之前先推薦一個非常厲害的Ai人工智能工具,一鍵生成原創(chuàng)文章、方案、文案、工作計劃、工作報告、論文、代碼、作文、做題和對話答疑等等
只需要輸入關(guān)鍵詞,就能返回你想要的內(nèi)容,越精準,寫出的就越詳細,有微信小程序端、在線網(wǎng)頁版、PC客戶端
官網(wǎng):https://ai.de1919.com。
創(chuàng)意嶺作為行業(yè)內(nèi)優(yōu)秀的企業(yè),服務(wù)客戶遍布全球各地,如需了解SEO相關(guān)業(yè)務(wù)請撥打電話175-8598-2043,或添加微信:1454722008
本文目錄:
一、SVM算法采用高斯核函數(shù),核函數(shù)的參數(shù)對結(jié)果影響大嗎
核函數(shù)一般是為了解決維度過高導(dǎo)致的計算能力不足的缺陷,實質(zhì)就是特征向量內(nèi)積的平方。
為什么會提出核函數(shù):
一般我們在解決一般的分類或者回歸問題的時候,給出的那個數(shù)據(jù)可能在低維空間并不線性可分,但是我們選用的模型卻是在特征空間中構(gòu)造超平面,從而進行分類,如果在低維空間中直接使用模型,很明顯,效果必然會大打折扣。
但是!如果我們能夠?qū)⒌途暱臻g的特征向量映射到高維空間,那么這些映射后的特征線性可分的可能性更大【記住這里只能說是可能性更大,并不能保證映射過去一定線性可分】,由此我們可以構(gòu)造映射函數(shù),但問題隨之而來了,維度擴大,那么隨之而言的計算成本就增加了,模型效果好了,但是可用性降低,那也是不行的。
于是有人提出了核函數(shù)的概念,可以在低維空間進行高維度映射過后的計算,使得計算花銷大為降低,由此,使得映射函數(shù)成為了可能。舉個簡單的例子吧,假設(shè)我們的原始樣本特征維度為2,將其映射到三維空間,隨便假設(shè)我們的映射函數(shù)為f(x1,x2)
=
(x1^2,
x2^2,
2*x1*x2),那么在三維空間中,樣本線性可分更大,但是向量內(nèi)積的計算開銷從4提高到9【如果從10維映射到1000維,那么計算花銷就提高了10000倍,而實際情況下,特征維度幾萬上百萬十分常見】,再看對于樣本n1=(a1,a2),n2=(b1,b2),映射到三維空間之后,兩者的內(nèi)積I1為:a1^2
*
b1^2
+
a2^2
*
b2^2
+
4
*
a1
*
a2
*
b1
*
b2,此時,又有,n1,n2在二維空間中的內(nèi)積為:a1b1
+
a2b2,平方之后為I2:a1^2
*
b1^2
+
a2^2
*
b2^2
+
4
*
a1
*
a2
*
b1
*
b2,此時
I1
和
I2
是不是很相似,只要我們將f(x1,x2)調(diào)整為:
(x1^2,
x2^2,
根號(2*x1*x2)
)
,那么此時就有I1
=
I2,也就是說,映射到三維空間里的內(nèi)積,可以通過二維空間的內(nèi)積的平方進行計算!
個人博客:www.idiotaron.org
里有關(guān)于svm核函數(shù)的描述~
實際上核函數(shù)還是挺難找的,目前常用的有多項式核,高斯核,還有線性核。
希望能幫到你,也希望有更好的想法,在下面分享下哈。
二、SVM中的核函數(shù)與概率密度估計中的非參數(shù)估計里的核函數(shù)有什么內(nèi)在聯(lián)系?
我覺得一樣,都是對距離的度量。
三、在svm算法中引入核函數(shù)的目的?
有低維空間轉(zhuǎn)到高維空間,使得在低維空間里不能線性分類的數(shù)據(jù)可以在高維空間里線性分類。
四、SVM??技毠?jié)
SVM的原理是什么?
SVM是一種二類分類模型。它的基本模型是在特征空間中尋找間隔最大化的分離超平面的線性分類器。(間隔最大是它有別于感知機)
(1)當訓(xùn)練樣本線性可分時,通過硬間隔最大化,學(xué)習(xí)一個線性分類器,即線性可分支持向量機;
(2)當訓(xùn)練數(shù)據(jù)近似線性可分時,引入松弛變量,通過軟間隔最大化,學(xué)習(xí)一個線性分類器,即線性支持向量機;
(3)當訓(xùn)練數(shù)據(jù)線性不可分時,通過使用核技巧及軟間隔最大化,學(xué)習(xí)非線性支持向量機。
注:以上各SVM的數(shù)學(xué)推導(dǎo)應(yīng)該熟悉: 硬間隔最大化(幾何間隔)---學(xué)習(xí)的對偶問題---軟間隔最大化(引入松弛變量)---非線性支持向量機(核技巧)。
SVM為什么采用間隔最大化?
當訓(xùn)練數(shù)據(jù)線性可分時,存在無窮個分離超平面可以將兩類數(shù)據(jù)正確分開。
感知機利用誤分類最小策略,求得分離超平面,不過此時的解有無窮多個。
線性可分支持向量機 利用間隔最大化求得最優(yōu)分離超平面 ,這時,解是唯一的。另一方面,此時的分隔超平面所產(chǎn)生的分類結(jié)果是 最魯棒 的,對未知實例的 泛化能力最強 。
然后應(yīng)該借此闡述,幾何間隔,函數(shù)間隔,及從函數(shù)間隔—>求解最小化1/2 ||w||^2 時的w和b。即線性可分支持向量機學(xué)習(xí) 算法 —最大間隔法的由來。
為什么要將求解SVM的原始問題轉(zhuǎn)換為其對偶問題?
一、是對偶問題往往更易求解(當我們尋找約束存在時的最優(yōu)點的時候,約束的存在雖然減小了需要搜尋的范圍,但是卻使問題變得更加復(fù)雜。為了使問題變得易于處理,我們的方法是 把目標函數(shù)和約束全部融入一個新的函數(shù),即拉格朗日函數(shù),再通過這個函數(shù)來尋找最優(yōu)點。 )
二、自然引入核函數(shù),進而推廣到非線性分類問題。
為什么SVM要引入核函數(shù)?
當樣本在原始空間線性不可分時,可將樣本從原始空間映射到一個更高維的特征空間,使得樣本在這個特征空間內(nèi)線性可分。
引入映射后的對偶問題:
在學(xué)習(xí)預(yù)測中,只定義核函數(shù) K ( x , y ),而不是顯式的定義映射函數(shù) ϕ 。因為 特征空間維數(shù)可能很高,甚至可能是無窮維,因此直接計算 ϕ ( x )· ϕ ( y )是比較困難的。 相反,直接計算 K ( x , y )比較容易(即直接在原來的低維空間中進行計算,而不需要顯式地寫出映射后的結(jié)果)。
核函數(shù)的定義: K ( x , y )=< ϕ ( x ), ϕ ( y )>,即在特征空間的內(nèi)積等于它們在原始樣本空間中通過核函數(shù)K計算的結(jié)果。
除了 SVM 之外,任何將計算表示為數(shù)據(jù)點的內(nèi)積的方法,都可以使用核方法進行非線性擴展。
svm RBF核函數(shù)的具體公式?
Gauss徑向基函數(shù)則是局部性強的核函數(shù),其外推能力隨著參數(shù)σ的增大而減弱。
這個核會將原始空間映射為無窮維空間。不過,如果 σ 選得很大的話,高次特征上的權(quán)重實際上衰減得非???,所以實際上(數(shù)值上近似一下)相當于一個低維的子空間;反過來,如果 σ 選得很小,則可以將任意的數(shù)據(jù)映射為線性可分——當然,這并不一定是好事,因為隨之而來的可能是非常嚴重的過擬合問題。不過,總的來說,通過調(diào)控參數(shù) σ , 高斯核實際上具有相當高的靈活性,也是使用最廣泛的核函數(shù)之一。
為什么SVM對缺失數(shù)據(jù)敏感?
這里說的缺失數(shù)據(jù)是指缺失某些特征數(shù)據(jù),向量數(shù)據(jù)不完整。SVM沒有處理缺失值的策略(決策樹有)。而SVM希望樣本在特征空間中線性可分,所以特征空間的好壞對SVM的性能很重要。缺失特征數(shù)據(jù)將影響訓(xùn)練結(jié)果的好壞。
SVM是用的是哪個庫?Sklearn/libsvm中的SVM都有什么參數(shù)可以調(diào)節(jié)?
用的是sklearn實現(xiàn)的。采用sklearn.svm.SVC設(shè)置的參數(shù)。本身這個函數(shù)也是基于libsvm實現(xiàn)的(PS: libsvm中的二次規(guī)劃問題的解決算法是SMO)。
SVC函數(shù)的訓(xùn)練時間是隨訓(xùn)練樣本平方級增長,所以不適合超過10000的樣本。
對于多分類問題,SVC采用的是one-vs-one投票機制,需要兩兩類別建立分類器,訓(xùn)練時間可能比較長。
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=None , random_state=None )
參數(shù):
l C:C-SVC的懲罰參數(shù)C?默認值是1.0
C越大,相當于懲罰松弛變量,希望松弛變量接近0,即對誤分類的懲罰增大,趨向于對訓(xùn)練集全分對的情況,這樣對訓(xùn)練集 測試 時準確率很高,但泛化能力弱。C值小,對誤分類的懲罰減小,允許容錯,將他們當成噪聲點,泛化能力較強。
l kernel :核函數(shù),默認是rbf,可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’
0 – 線性:u'v
1 – 多項式:(gamma*u'*v + coef0)^degree
2 – RBF函數(shù):exp(-gamma|u-v|^2)
3 –sigmoid:tanh(gamma*u'*v + coef0)
l degree :多項式poly函數(shù)的維度,默認是3,選擇其他核函數(shù)時會被忽略。
l gamma : ‘rbf’,‘poly’ 和‘sigmoid’的核函數(shù)參數(shù)。默認是’auto’,則會選擇1/n_features
l coef0 :核函數(shù)的常數(shù)項。對于‘poly’和 ‘sigmoid’有用。
l probability: 是否采用概率估計?.默認為False
l shrinking :是否采用shrinking heuristic方法,默認為true
l tol: 停止訓(xùn)練的誤差值大小,默認為1e-3
l cache_size :核函數(shù)cache緩存大小,默認為200
l class_weight :類別的權(quán)重,字典形式傳遞。設(shè)置第幾類的參數(shù)C為weight*C(C-SVC中的C)
l verbose :允許冗余輸出?
l max_iter :最大迭代次數(shù)。-1為無限制。
l decision_function_shape :‘ovo’, ‘ovr’ or None, default=None3
l random_state :數(shù)據(jù)洗牌時的種子值,int值
主要調(diào)節(jié)的參數(shù)有:C、kernel、degree、gamma、coef0。
SVM如何處理多分類問題?
一般有兩種做法:一種是直接法,直接在目標函數(shù)上修改,將多個分類面的參數(shù)求解合并到一個最優(yōu)化問題里面??此坪唵蔚怯嬎懔繀s非常的大。
另外一種做法是間接法:對訓(xùn)練器進行組合。其中比較典型的有 一對一 ,和 一對多 。
一對多,就是對每個類都訓(xùn)練出一個分類器,由svm是二分類,所以將此而分類器的兩類設(shè)定為目標類為一類,其余類為另外一類。這樣針對k個類可以訓(xùn)練出k個分類器,當有一個新的樣本來的時候,用這k個分類器來測試,那個分類器的概率高,那么這個樣本就屬于哪一類。這種方法效果不太好,bias比較高。
svm一對一法(one-vs-one),針對任意兩個類訓(xùn)練出一個分類器,如果有k類,一共訓(xùn)練出C(2,k) 個分類器,這樣當有一個新的樣本要來的時候,用這C(2,k) 個分類器來測試,每當被判定屬于某一類的時候,該類就加一,最后票數(shù)最多的類別被認定為該樣本的類。
以上就是關(guān)于svm中的核函數(shù)相關(guān)問題的回答。希望能幫到你,如有更多相關(guān)問題,您也可以聯(lián)系我們的客服進行咨詢,客服也會為您講解更多精彩的知識和內(nèi)容。
推薦閱讀:
pd.readcsv參數(shù)(pd.read_csv參數(shù))