1. 程式人生 > >機器學習7:SVM(支援向量機)

機器學習7:SVM(支援向量機)

支援向量機

優化目標

  • 對於邏輯迴歸的假設函式而言,在y=1的情況下,我們希望假設函式約等於1,且z遠大於0;在y=0的情況下,我們希望假設函式約等於0,且z遠小於0。

  • 對於支援向量機,則希望在y=1的情況下,z大於等於0,;在y=0的情況下,z取其他值(小於0)

  • 對於邏輯迴歸的代價函式,其中的 l o

    g h θ ( x ) logh_\theta(x)
    替代為 c o s t 1 ( z
    ) cost_1(z)
    ,這兩個函式的圖如下:
    在這裡插入圖片描述
    其中的 l o g ( 1 h θ ( x ) ) log(1-h_\theta(x)) 替代為 c o s t 0 ( z ) cost_0(z) ,這兩個函式的圖如下:
    在這裡插入圖片描述

也就是說,在y=1的情況下,目標函式需要z大於等於1;在y=0的情況下,目標函式需要z小於等於-1。

  • 對於支援向量機的代價函式而言,如上所述替代後,再去掉m項,將 λ \lambda 用C代替( C = 1 λ C=\frac{1}{\lambda} ),如下所示:
    在這裡插入圖片描述

大間距分類器

如上所述,在y=1的情況下,目標函式需要z大於等於1;在y=0的情況下,目標函式需要z小於等於-1。

也就是說,對於決策邊界(z=0)而言,與訓練樣本的距離儘量保持在1以上,因此會糾正過擬合的問題,取分類兩組資料的中間,與雙方保持一定距離的線為邊界,如下方的margin(圓圈和紅叉表示兩種型別的樣本):在這裡插入圖片描述

但是如果C取值過大,也即 λ \lambda 的值過小,即便採用上述演算法還是會容易過擬合,如下:
在這裡插入圖片描述

數學原理

目標函式中,有該項 m i n θ 1 2 j = 1 n θ j 2 min_\theta\frac{1}{2}\sum_{j=1}^n\theta_j^2 ,也即等同於求向量 θ \theta 的長度平方的二分之一: 1 2 θ 2 \frac{1}{2}|\theta|^2

因此,在決定決策邊界時,如果如下圖所示( θ T x ( i ) \theta^Tx^{(i)} ,相當於兩個向量的內積):
在這裡插入圖片描述
由於上圖所示,樣本 x ( i ) x^{(i)} 投影到向量 θ \theta (注意的是,向量 θ \theta 與決策邊界垂直,因為與決策邊界的內積z為0)上的值p較小,而為了與p值相乘大於等於1或小於等於-1,就會導致 θ |\theta| 的值較大,不符合目標函式的預期。

如果如下圖所示:
在這裡插入圖片描述

那麼,樣本投影到向量 θ \theta 上得到的值p較大,同理,可知,能使 θ |\theta| 的值較小,符合目標函式的預期。

核函式一

對於非線性邊界如下圖所示的,在邏輯迴歸中通常採用多項式構造特徵: x 1 x 1 2 x 1 x 2 . . . . . . x_1、x_1^2、x_1x_2、......
在這裡插入圖片描述
而如果採用支援向量機這一演算法,那就要將 x i x_i 替代為 f i f_i
f i f_i 的定義如下:
f i = e x p ( x l ( i ) 2 2 σ 2 ) = e x p ( j = 1 n ( x j l j ( i ) ) 2 2 σ 2 ) f_i=exp(-\frac{|x-l^{(i)}|^2}{2\sigma^2})=exp(-\frac{\sum_{j=1}^n(x_j-l^{(i)}_j)^2}{2\sigma^2})
其中的 x x 為輸入特徵, l ( i ) l^{(i)} 為下圖中的點(可表示為長度為特徵數目n的向量):
在這裡插入圖片描述
f i f_i 的性質有:如果 x = l ( i ) x=l^{(i)} ,則 f i = 1 f_i=1 ;如果如果 x x l ( i ) l^{(i)} 相差過大,則 f i 0 f_i\approx0

f i f_i 中的 σ \sigma 過小時,容易低偏差,高方差,過大時容易高偏差,低方差,當 f i = [ 3 5 ] f_i={3\brack 5} 時, f i f_i 的影象如下:
在這裡插入圖片描述

θ 0 + θ 1 f 1 + θ 2 f 2 + θ 3 f 3 0 \theta_0+\theta_1f_1+\theta_2f_2+\theta_3f_3\ge0

相關推薦

機器學習7SVM(支援向量)

支援向量機 優化目標 大間距分類器 數學原理 核函式一 核函式二 使用 優化目標 對於邏輯迴歸的假設函式而言,在y=1的情況下,我們希望假設函式約等於1,且z遠大於0;在y=0的情況下,我們希望假設函式約等於

斯坦福CS229機器學習筆記-Lecture8- SVM支援向量 之核方法 + 軟間隔 + SMO 演算法

作者:teeyohuang 本文系原創,供交流學習使用,轉載請註明出處,謝謝 宣告:此係列博文根據斯坦福CS229課程,吳恩達主講 所寫,為本人自學筆記,寫成部落格分享出來           博文中部分圖片和公式都來源於CS229官方notes。      

我與機器學習 - [Today is SVM] - [支援向量]

支援向量機分為: 線性可分支援向量機,線性支援向量機,非線性支援向量機。 下面開始推導: 核心思想:讓距離最小的點取最大。就是對於每一個可行的超平面,計算最近的點的距離,找到一個超平面,能使這個距離最大,就是最好的分割超平面,這樣分類的效果最明顯。 計算點到直線的距離 

機器學習數學原理(7)——SVM支援向量

機器學習數學原理(7)——SVM支援向量機 這篇博文筆者將預設讀者已經瞭解了最優間隔分類器以及泛化拉格朗日乘子法,如果部分讀者還不是很瞭解,我這裡給出前面一篇博文的連結《機器學習數學原理(6)——最優間隔分類器》。總之,這篇博文將不會再贅述相關的知識,而是直接給出其結論。 由於筆

機器學習實戰系列(五)SVM支援向量

課程的所有資料和程式碼在我的Github:Machine learning in Action,目前剛開始做,有不對的歡迎指正,也歡迎大家star。除了 版本差異,程式碼裡的部分函式以及程式碼正規化也和原書不一樣(因為作者的程式碼實在讓人看的彆扭,我改過後看起來舒服多了)

機器學習總結(三)SVM支援向量(面試必考)

基本思想:試圖尋找一個超平面來對樣本分割,把樣本中的正例和反例用超平面分開,並儘可能的使正例和反例之間的間隔最大。 演算法推導過程: (1)代價函式:假設正類樣本y =wTx+ b>=+1,負

python機器學習庫scikit-learn簡明教程之SVM支援向量

1.獲得樣例資料 scikit-learn庫有一些標準的資料集,例如分類的數字集,波士頓房價迴歸資料集。 在下面,我們啟動Python直譯器,然後載入資料集。我們可以認為,美元符號後輸入python然

用Python開始機器學習(8SVM支援向量

SVM支援向量機是建立於統計學習理論上的一種分類演算法,適合與處理具備高維特徵的資料集。SVM演算法的數學原理相對比較複雜,好在由於SVM演算法的研究與應用如此火爆,CSDN部落格裡也有大量的好文章對此進行分析,下面給出幾個本人認為講解的相當不錯的:支援向量機通俗導論(理解S

吳恩達機器學習作業Python實現(六)SVM支援向量

1 Support Vector Machines 1.1 Example Dataset 1 %matplotlib inline import numpy as np import pandas as pd import matplotlib.pyplot

機器學習與深度學習系列連載 第一部分 機器學習(九)支援向量2(Support Vector Machine)

另一種視角定義SVM:hinge Loss +kennel trick SVM 可以理解為就是hingle Loss和kernel 的組合 1. hinge Loss 還是讓我們回到二分類的問題,為了方便起見,我們y=1 看做是一類,y=-1 看做是另一類

機器學習(三)——支援向量SVM

SVM探討 目錄 SVM探討 SVM演算法 根據處理問題的複雜度,SVM 可由簡到繁分為三種: 線性可分支援向量機:硬間隔最大化。 線性支援向量機:資料分佈近似線性可分,可通過軟間隔最大化(懲罰因子,鬆弛變數)來線性分隔樣本點。 非線性支援向量機:通過核函式提升

Stanford機器學習 第八講 支援向量SVM

set type of SVM (default 0)    0 -- C-SVC    1 -- nu-SVC    2 -- one-class SVM    3 -- epsilon-SVR    4 -- nu-SVR-t kernel_type : set type of kernel functi

機器學習實戰-python3】支援向量(Support Vecrtor Machines SVM

工具:PythonCharm 書中的程式碼是python2的,而我用的python3,結合實踐過程,這裡會標註實踐時遇到的問題和針對python3的修改。 實踐程式碼和訓練測試資料可以參考這裡 https://github.com/stonycat/ML

Stanford機器學習---第八講. 支援向量SVM

本欄目(Machine learning)包括單引數的線性迴歸、多引數的線性迴歸、Octave Tutorial、Logistic Regression、Regularization、神經網路、機器學習系統設計、SVM(Support Vector Machines 支援向量

機器學習實戰筆記5—支援向量

注:此係列文章裡的部分演算法和深度學習筆記系列裡的內容有重合的地方,深度學習筆記裡是看教學視訊做的筆記,此處文章是看《機器學習實戰》這本書所做的筆記,雖然演算法相同,但示例程式碼有所不同,多敲一遍沒有壞處,哈哈。(裡面用到的資料集、程式碼可以到網上搜索,很容易找到。)。Python版本3.6

機器學習筆記17】支援向量

【參考資料】 【1】《統計學習方法》 基本概念 當訓練資料線性可分時,通過硬間隔最大化,學習一個線性的分類器,即線性可分支援向量機,又稱硬間隔支援向量機; 當訓練資料近似線性可分時,通過軟間隔(增加一個鬆弛因子)後學習一個線性的分類器,即軟間隔支援向量機;

自學機器學習之sklearn實現支援向量

對於支援向量機,我看了好久也沒能看的很明白,裡面的理論有點多。所以呢,只能用sklearn來跑跑svm模型了。。 下面是程式碼:(svm支援多類別分類,所以這次還使用iris的資料) from sklearn import svm from skle

機器學習演算法推導】支援向量

線性可分   在二維平面中,正樣本和負樣本可以由一條直線完全隔開。假設存在直線 y =

『資料探勘十大演算法 』筆記二SVM-支援向量

資料探勘Top 10演算法 C4.5, k-Means, SVM, Apriori, EM, PageRank, AdaBoost, kNN, Naive Bayes, and CART 支援向量機 支援向量機,英文為Support Ve

機器學習 第六章 支援向量

6.1 間隔與支援向量 在樣本空間中,劃分超平面可通過如下線性方程來描述: 6.2 對偶問題 我們希望求解式(6.6)來得到大間隔劃分超平面所對應的模型: 對式(6.6)使用拉格朗日乘子法可得到其“對偶問