溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析

發(fā)布時(shí)間:2021-08-03 11:22:49 來源:億速云 閱讀:131 作者:小新 欄目:開發(fā)技術(shù)

這篇文章主要介紹python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

       做機(jī)器學(xué)習(xí)的一定對支持向量機(jī)(support vector machine-SVM)頗為熟悉,因?yàn)樵谏疃葘W(xué)習(xí)出現(xiàn)之前,SVM一直霸占著機(jī)器學(xué)習(xí)老大哥的位子。他的理論很優(yōu)美,各種變種改進(jìn)版本也很多,比如latent-SVM, structural-SVM等。這節(jié)先來看看SVM的理論吧,在(圖一)中A圖表示有兩類的數(shù)據(jù)集,圖B,C,D都提供了一個(gè)線性分類器來對數(shù)據(jù)進(jìn)行分類?但是哪個(gè)效果好一些?

python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析

(圖一)

        可能對這個(gè)數(shù)據(jù)集來說,三個(gè)的分類器都一樣足夠好了吧,但是其實(shí)不然,這個(gè)只是訓(xùn)練集,現(xiàn)實(shí)測試的樣本分布可能會比較散一些,各種可能都有,為了應(yīng)對這種情況,我們要做的就是盡可能的使得線性分類器離兩個(gè)數(shù)據(jù)集都盡可能的遠(yuǎn),因?yàn)檫@樣就會減少現(xiàn)實(shí)測試樣本越過分類器的風(fēng)險(xiǎn),提高檢測精度。這種使得數(shù)據(jù)集到分類器之間的間距(margin)最大化的思想就是支持向量機(jī)的核心思想,而離分類器距離最近的樣本成為支持向量。既然知道了我們的目標(biāo)就是為了尋找最大邊距,怎么尋找支持向量?如何實(shí)現(xiàn)?下面以(圖二)來說明如何完成這些工作。

python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析

(圖二)

假設(shè)(圖二)中的直線表示一個(gè)超面,為了方面觀看顯示成一維直線,特征都是超面維度加一維度的,圖中也可以看出,特征是二維,而分類器是一維的。如果特征是三維的,分類器就是一個(gè)平面。假設(shè)超面的解析式為python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析,那么點(diǎn)A到超面的距離為python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析,下面給出這個(gè)距離證明:

python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析

(圖三)

在(圖三)中,青色菱形表示超面,Xn為數(shù)據(jù)集中一點(diǎn),W是超面權(quán)重,而且W是垂直于超面的。證明垂直很簡單,假設(shè)X'和X''都是超面上的一點(diǎn),

python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析

因此W垂直于超面。知道了W垂直于超面,那么Xn到超面的距離其實(shí)就是Xn和超面上任意一點(diǎn)x的連線在W上的投影,如(圖四)所示:

python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析

套進(jìn)拉格朗日乘子法公式得到如(公式五)所示的樣子:

python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析

(公式五)

        在(公式五)中通過拉格朗日乘子法函數(shù)分別對W和b求導(dǎo),為了得到極值點(diǎn),令導(dǎo)數(shù)為0,得到

python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析

 ,然后把他們代入拉格朗日乘子法公式里得到(公式六)的形式:

python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析

(公式六)

     (公式六)后兩行是目前我們要求解的優(yōu)化函數(shù),現(xiàn)在只需要做個(gè)二次規(guī)劃即可求出alpha,二次規(guī)劃優(yōu)化求解如(公式七)所示:

python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析

(公式七)

         通過(公式七)求出alpha后,就可以用(公式六)中的第一行求出W。到此為止,SVM的公式推導(dǎo)基本完成了,可以看出數(shù)學(xué)理論很嚴(yán)密,很優(yōu)美,盡管有些同行們認(rèn)為看起枯燥,但是最好沉下心來從頭看完,也不難,難的是優(yōu)化。二次規(guī)劃求解計(jì)算量很大,在實(shí)際應(yīng)用中常用SMO(Sequential minimal optimization)算法。

以上是“python機(jī)器學(xué)習(xí)中支持向量機(jī)的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI