1. 程式人生 > >【機器學習實戰】第6章 支援向量機(Support Vector Machine / SVM)

【機器學習實戰】第6章 支援向量機(Support Vector Machine / SVM)

第6章 支援向量機

<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

支援向量機_首頁

支援向量機 概述

支援向量機(Support Vector Machines, SVM):是一種機器學習演算法。

  • 支援向量(Support Vector)就是離分隔超平面最近的那些點。
  • 機(Machine)就是表示一種演算法,而不是表示機器。

支援向量機 場景

  • 要給左右兩邊的點進行分類
  • 明顯發現:選擇D會比B、C分隔的效果要好很多。

線性可分

支援向量機 原理

SVM 工作原理

k_2

對於上述的蘋果和香蕉,我們想象為2種水果型別的炸彈。(保證距離最近的炸彈,距離它們最遠)

  1. 尋找最大分類間距
  2. 轉而通過拉格朗日函式求優化的問題
  • 資料可以通過畫一條直線就可以將它們完全分開,這組資料叫線性可分(linearly separable)資料,而這條分隔直線稱為分隔超平面(separating hyperplane)
  • 如果資料集上升到1024維呢?那麼需要1023維來分隔資料集,也就說需要N-1維的物件來分隔,這個物件叫做超平面(hyperlane),也就是分類的決策邊界。

分隔超平面

尋找最大間隔

為什麼尋找最大間隔

摘錄地址:http://slideplayer.com/slide/8610144  (第12條資訊)
Support Vector Machines: Slide 12 Copyright © 2001, 2003, Andrew W. Moore Why Maximum Margin? 
denotes +1 denotes -1 f(x,w,b) = sign(w. x - b) The maximum margin linear classifier is the linear classifier with the, um, maximum margin. 
This is the simplest kind of SVM (Called an LSVM) Support Vectors are those datapoints that the margin pushes up against 

1.Intuitively this feels safest. 
2.If we’ve made a small error in the location of the boundary (it’s been jolted in its perpendicular direction) this gives us least chance of causing a misclassification. 
3.CV is easy since the model is immune to removal of any non-support-vector datapoints. 
4.There’s some theory that this is a good thing. 
5.Empirically it works very very well. 

* * *

1. 直覺上是安全的
2. 如果我們在邊界的位置發生了一個小錯誤(它在垂直方向上被顛倒),這給我們最小的錯誤分類機會。
3. CV(Computer Vision 計算機視覺 - 這縮寫看著可怕�)很容易,因為該模型對任何非支援向量資料點的去除是免疫的。
4. 有一些理論,這是一件好事。
5. 通常它的工作非常好。

怎麼尋找最大間隔

點到超平面的距離

  • 分隔超平面函式間距y(x)=wTx+b
  • 分類的結果: f(x)=sign(wTx+b) (sign表示>0為1,<0為-1,=0為0)
  • 點到超平面的幾何間距d(x)=(wTx+b)/||w|| (||w||表示w矩陣的二正規化=> wwT, 點到超平面的距離也是類似的)

點到直線的幾何距離

拉格朗日乘子法

  • 類別標籤用-1、1,是為了後期方便 lable(wTx+b) 的標識和距離計算;如果 lable(wTx+b)>0表示預測正確,否則預測錯誤。
  • 現在目標很明確,就是要找到wb,因此我們必須要找到最小間隔的資料點,也就是前面所說的支援向量
    • 也就說,讓最小的距離取最大.(最小的距離:就是最小間隔的資料點;最大:就是最大間距,為了找出最優超平面--最終就是支援向量)
    • 目標函式:arg:maxw,b(min[lable(wTx+b)]1||w||)
      1. 如果 lable(wTx+b)>0 表示預測正確,也稱函式間隔|

        相關推薦

        機器學習實戰6 支援向量Support Vector Machine / SVM

        第6章 支援向量機 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

        機器學習實戰6 支援向量

        def smoSimple(dataMatIn, classLabels, C, toler, maxIter): """smoSimple Args: dataMatIn 特徵集合 classLabels 類別標籤 C 鬆弛變數

        機器學習實戰6支援向量(程式碼)

        '''Created on Nov 4, 2010Chapter 5 source file for Machine Learing in Action@author: Peter'''from numpy import *from time import sleepdef

        [完]機器學習實戰 支援向量Support Vector Machine

        [參考] 機器學習實戰(Machine Learning in Action) 本章內容 支援向量機(Support Vector Machine)是最好的現成的分類器,“現成”指的是分類器不加修改即可直接使用。基本形式的SVM分類器就可得到低錯

        機器學習實戰----支援向量

        支援向量機 SVM(Support Vector Machine)實際上是應用於二分類的一個分類器,其基本模型定義為特徵空間上的間隔最大的線性分類器,其學習策略便是間隔最大化,最終可轉化為一個凸二次規劃問題的求解。這裡不對整個過程進行推導,因為看了很多部落格,有幾篇大佬的部落格寫的非

        機器學習實戰13 利用 PCA 來簡化數據

        light nan 文本 com axis 均值 ... cati 二維空間 第13章 利用 PCA 來簡化數據 降維技術 場景 我們正通過電視觀看體育比賽,在電視的顯示器上有一個球。 顯示器大概包含了100萬像素點,而球則可能是由較少的像素點組成,例如說一千個像素

        機器學習實戰2 K-近鄰演算法(k-NearestNeighbor,KNN)

        第2章 k-近鄰演算法 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script>

        機器學習實戰3 決策樹

        第3章 決策樹 <script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=default"></script> 決策

        機器學習實戰1 機器學習基礎

        第1章 機器學習基礎機器學習 概述機器學習就是把無序的資料轉換成有用的資訊。獲取海量的資料從海量資料中獲取有用的資訊我們會利用計算機來彰顯資料背後的真實含義,這才是機器學習的意義。機器學習 場景例如:

        機器學習實戰10 K-MeansK-均值聚類演算法

        第 10章K-Means(K-均值)聚類演算法 K-Means 演算法 聚類是一種無監督的學習, 它將相似的物件歸到一個簇中, 將不相似物件歸到不同簇中. 相似這一概念取決於所選擇的相似度計算方法. K-Means 是發現給定資料集的 K 個簇的聚類演算法, 之

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

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

        神經網路學習筆記-支援向量Support Vector MachineSVM

        基於誤差反向傳播演算法的多層感知器 徑向基函式網路 支援向量機(SupportVector Machine , SVM ) 都是前饋神經網路 ,都用於解決模式分類與非線性對映問題 。 線性可分模

        Linux學習筆記6 Linux文件壓縮和打包

        linux centos 打包 壓縮 tar 6.1壓縮打包介紹Windows壓縮:.rar,.zip,.7zLinux壓縮:.zip,.gz,.bz2,.xz,.tar.gz,.tar.bz2,.tar.xz 6.2gzip壓縮工具gzip FILENAME 壓縮文件,格式gz,壓縮後

        機器學習周志華》——6 支援向量

        1、間隔與支援向量 (1)分類學習的最基本思想就是:基於訓練集D在樣本空間中找到一個劃分超平面,將不同類別的樣本分開。 (2)在樣本空間中,用線性方程來表示劃分超平面:ωTx + b = 0 ;其中ω = (ω1;ω2; … ; ωd)為法向量,決定超平面內的方向;b

        機器學習實戰:Logistic迴歸1基本概念和簡單例項

        最近感覺時間越來越寶貴,越來越不夠用。不過還是抽空看了點書,然後整理到部落格來。 加快點節奏,廢話少說。 Keep calm & carry on. ----------------------------------------------------------

        機器學習實戰:決策樹1基本概念

        有半個月沒來了。 最近一段時間...大多在忙專案組的事(其實就是改一改現有程式碼的bug,不過也挺費勁的,畢竟程式碼不是自己寫的)。另外就是自己租了幾臺美帝的vps,搭了$-$的伺服器 ,效果還不錯。自己搭的話就不用去買別人的服務了,不過租vps畢竟還是要成本的,光用來番茄

        周志華《機器學習 6 支援向量

        本文是 周志華《機器學習》系列文章 之一,主要介紹支援向量機函式及核函式等概念。 第 6 章 支援向量機 6.1 間隔與支援向量 給定訓練樣本集分類學習最基本的想法就是基於訓練集 D 在樣本空間中找到一個劃分超平面,將不同類別的樣本分開。 在樣本

        機器學習》 周志華學習筆記 支援向量課後習題python 實現

        一、 1.間隔與支援向量 2.對偶問題 3.核函式 xi與xj在特徵空間的內積等於他們在原始yangben空間中通過函式k(.,.)計算的結果。 核矩陣K總是半正定的。 4.軟間隔與正則化 軟間隔允許某些samples不滿足約束  鬆弛變數 5.支援

        《統計學習方法》 7 支援向量”導讀

        目錄 《統計學習方法》第 7 章“支援向量機”導讀 學習“支援向量機”的步驟 第 1 階段:嚴格線性可分支援向量機 第 2 階段:差一點線性可分的支援向量機 理解鬆弛變數 什麼是懲罰係數 \(C\) ?

        支援向量SVM

        1.1 支援向量機 1.1.1 定義 支援向量機(support vector machine)是一種二分類模型,它的基本模型是定義在特徵空間上的間隔最大的線性分類器間隔最大使它有別於感知機。支援向量機的學習策略是間隔最大化,支援向量機的學習演算法是求解凸二次規劃的最優化演算法。