欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python機器學習理論與實戰(zhàn)(五)支持向量機

 更新時間:2018年01月19日 11:11:22   作者:marvin521  
這篇文章主要為大家詳細介紹了python機器學習理論與實戰(zhàn)第五篇,支持向量機的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下

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

(圖一)

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

(圖二)

假設(圖二)中的直線表示一個超面,為了方面觀看顯示成一維直線,特征都是超面維度加一維度的,圖中也可以看出,特征是二維,而分類器是一維的。如果特征是三維的,分類器就是一個平面。假設超面的解析式為,那么點A到超面的距離為,下面給出這個距離證明:

(圖三)

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

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

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

(公式五)

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


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


(公式六)

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

(公式七)

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

參考文獻:

     [1]machine learning in action. Peter Harrington

     [2] Learning From Data. Yaser S.Abu-Mostafa

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • 教你用 Python 發(fā)送告警通知到微信的操作過程

    教你用 Python 發(fā)送告警通知到微信的操作過程

    大家都知道常見的告警方式有:郵件,電話,短信,微信,今天通過本文給大家介紹下Python 發(fā)送告警通知到微信的操作過程,感興趣的朋友一起看看吧
    2022-01-01
  • python構造IP報文實例

    python構造IP報文實例

    這篇文章主要介紹了python構造IP報文實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python超詳細分步解析隨機漫步

    Python超詳細分步解析隨機漫步

    隨機游走(random walk)也稱隨機漫步,隨機行走等是指基于過去的表現(xiàn),無法預測將來的發(fā)展步驟和方向。核心是指任何無規(guī)則行走者所帶的守恒量都各自對應著一個擴散運輸定律,接近布朗運動,現(xiàn)階段主要應用于互聯(lián)網(wǎng)鏈接分析及金融股票市場中
    2022-03-03
  • Pycharm遠程調(diào)試和MySQL數(shù)據(jù)庫授權問題

    Pycharm遠程調(diào)試和MySQL數(shù)據(jù)庫授權問題

    這篇文章主要介紹了Pycharm遠程調(diào)試和MySQL數(shù)據(jù)庫授權問題,文章內(nèi)容介紹詳細,需要的小伙伴可以參考一下,希望對你的學習或工作有所幫助
    2022-03-03
  • python 中的collections.OrderedDict() 用法

    python 中的collections.OrderedDict() 用法

    這篇文章主要介紹了python 中的collections.OrderedDict() 用法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-05-05
  • Python+requests+unittest執(zhí)行接口自動化測試詳情

    Python+requests+unittest執(zhí)行接口自動化測試詳情

    這篇文章主要介紹了Python+requests+unittest執(zhí)行接口自動化測試詳情,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-09-09
  • Python os模塊介紹

    Python os模塊介紹

    這篇文章主要介紹了Python os模塊介紹,需要的朋友可以參考下
    2014-11-11
  • 詳解Python的Twisted框架中reactor事件管理器的用法

    詳解Python的Twisted框架中reactor事件管理器的用法

    這篇文章主要介紹了詳解Python的Twisted框架中reactor事件管理器的用法,Twisted是一款高人氣的異步Python開發(fā)框架,需要的朋友可以參考下
    2016-05-05
  • 深入詳解Python中Micawber庫的使用

    深入詳解Python中Micawber庫的使用

    Python Micawber庫就是一個用于解析和嵌入媒體資源的工具,它可以自動識別各種媒體資源的URL,下面就跟隨小編一起來看看它的具體使用吧
    2022-06-06
  • Python編程functools模塊創(chuàng)建修改的高階函數(shù)解析

    Python編程functools模塊創(chuàng)建修改的高階函數(shù)解析

    本篇文章主要為大家介紹functools模塊中用于創(chuàng)建、修改函數(shù)的高階函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2021-09-09

最新評論