07SVM-軟間隔模型
六、硬間隔和軟間隔模型
之前兩章介紹的內容是硬間隔模型:
《05 SVM – 支援向量機 – 概念、線性可分》
《06 SVM – 線性可分SVM演算法和案例》
線性可分SVM中要求資料必須是線性可分的,才可以找到分類的超平面,但是有的時候線性資料集中存在少量的異常點,由於這些異常點導致了資料集不能夠線性劃分;直白來講就是:正常資料本身是線性可分的,但是由於存在異常點資料,導致資料集不能夠線性可分;
如果線性資料中存在異常點導致沒法直接使用SVM線性分割模型的時候,我們可以通過引入__軟間隔__的概念來解決這個問題;
__硬間隔:__可以認為線性劃分SVM中的距離度量就是硬間隔,線上性劃分SVM中,要求函式距離一定是大於1的,最大化硬間隔條件為:
軟間隔: SVM對於訓練集中的每個樣本都引入一個鬆弛因子(ξ),使得函式距離加上鬆弛因子後的值是大於等於1;這表示相對於硬間隔,對樣本到超平面距離的要求放鬆了。
鬆弛因子(ξ)越大,表示樣本點離超平面越近。如果鬆弛因子大於1,那麼表示允許該樣本點分錯。
所以說加入鬆弛因子是有成本的,過大的鬆弛因子可能會導致模型分類錯誤,所以最終的目標函式就轉換成:
__PS:__函式中的C>0是懲罰引數,是一個超引數,類似L1/L2 norm的引數;C越大表示對誤分類的懲罰越大,C越小表示對誤分類的懲罰越小;C值的給定需要調參。
優化損失函式的公式推導:
1、同線性可分SVM,構造軟間隔最大化的約束問題對應的拉格朗日函式如下:
2、從而將我們的優化目標函式轉換為:
3、優化目標同樣滿足KKT條件,所以使用拉格朗日對偶將優化問題轉換為等價的對偶問題:
4、先求優化函式對於w、b、ξ的極小值,這個可以通過分別對優化函式L求w、b、ξ的偏導數得,從而可以得到w、b、ξ關於β和μ之間的關係。
5、將w、b、ξ的值帶入L函式中,就可以消去優化函式中的w、b、ξ,定義優化之後的函式如下:
6、最終優化後的目標函式/損失函式和線性可分SVM模型基本一樣,除了約束條件不同而已, 也就是說也可以使用SMO演算法來求解。
硬間隔和軟間隔模型小結:
在__硬間隔__最大化的時候,支援向量比較簡單,就是離超平面的函式距離為1的樣本點就是支援向量。
在__軟間隔__中,根據KKT條件中的對偶互補條件: β(y(wx+b)-1+ξ)=0,從而有:當0<βi≤C的時候,並且ξi=0的樣本點均是支援向量(即所有的0<βi
PS: 軟間隔和硬間隔中的支援向量的規則是一樣的;
相關文章
- 支援向量機原理(二) 線性支援向量機的軟間隔最大化模型模型
- 支援向量機 (二): 軟間隔 svm 與 核函式函式
- 機器學習,詳解SVM軟間隔與對偶問題機器學習
- 深入理解SVM,軟間隔與對偶問題
- [機器學習&資料探勘]SVM---軟間隔最大化機器學習
- 函式間隔(functional margin)和幾何間隔(geometric margin)函式Function
- Oracle 間隔分割槽Oracle
- 【LaTeX入門】07、水平間隔、豎直間隔等命令設定
- 連續順子間隔思路
- 演算法插入間隔演算法
- CSS設定文字之間的間隔CSS
- oracle時間間隔轉換函式Oracle函式
- [間隔分割槽]Oracle10g、11g建立間隔分割槽表Oracle
- MySQL 為日期增加一個時間間隔MySql
- oracle對於時間間隔的處理Oracle
- 數字轉時間間隔格式處理
- 機器學習之支援向量與間隔機器學習
- 手動處理DataGuard間隔
- JS 的間隔執行緒JS執行緒
- job 執行時間比排程間隔時間長
- 有可以間隔兩個月提醒的電腦桌面便籤軟體嗎?
- echarts間隔餅圖實現方法Echarts
- 網易面試題-間隔分類器面試題
- mysql比較兩個日期間隔MySql
- 定義JOB的執行間隔
- javascript如何計算兩個日期之間的時間間隔JavaScript
- 如何計算兩個時間間隔的天數
- 利用TRUNC函式定製JOB的時間間隔函式
- SQL datediff用法( 返回兩個日期之間的間隔)SQL
- PHP求時間間隔n天、周、月、年後的時間PHP
- Eureka 多環境隔離方案(包含本地開發人員間隔離)
- 新聞公告具有時間間隔垂直滾動程式碼
- 簡單的圖片間隔指定時間切換效果
- win10桌面圖示間隔怎麼調整_win10桌面圖示間隔如何設定Win10
- js計算兩個時間點時間間隔的程式碼例項JS
- 兔盯雲下發定位上報間隔指令
- 定期truncate 歷史間隔分割槽INTERVAL PARTITION
- Sprite kit 每秒間隔 update 頻率偽造