機器學習SVM演算法原理之線性可分情況

2021-08-09 10:42:53 字數 1842 閱讀 3827

1. 背景:

1.1 最早是由 vladimir n. vapnik 和 alexey ya. chervonenkis 在2023年提出

1.2 目前的版本(soft margin)是由corinna cortes 和 vapnik在2023年提出,並在2023年發表

1.3 深度學習(2012)出現之前,svm被認為機器學習中近十幾年來最成功,表現最好的演算法

2. 機器學習的一般框架:

訓練集 => 提取特徵向量 => 結合一定的演算法(分類器:比如決策樹,knn)=>得到結果

3. 介紹:

3.1 例子:

兩類?哪條線最好?

3.2 svm尋找區分兩類的超平面(hyper plane), 使邊際(margin)最大

總共可以有多少個可能的超平面?無數條

如何選取使邊際(margin)最大的超平面 (max margin hyperplane)?

超平面到一側最近點的距離等於到另一側最近點的距離,兩側的兩個超平面平行

3. 線性可區分(linear separable) 和 線性不可區分 (linear inseparable) 

4. 定義與公式建立

超平面可以定義為:

w: weight vectot,, n 是特徵值的個數

x: 訓練例項

b: bias

4.1 假設2維特徵向量:x = (x1, x2)

把 b 想象為額外的 wight

超平面方程變為:

所有超平面右上方的點滿足:

所有超平面左下方的點滿足:

調整weight,使超平面定義邊際的兩邊:

綜合以上兩式,得到: (1)

所有坐落在邊際的兩邊的的超平面上的被稱作」支援向量(support vectors)"

分界的超平面和h1或h2上任意一點的距離為1/||w||(i.e.: 其中||w||是向量的範數(norm))

所以,最大邊際距離為:2/||w||

5. 求解

5.1  svm如何找出最大邊際的超平面呢(mmh)?

利用一些數學推倒,以上公式 (1)可變為有限制的凸優化問題(convex quadratic optimization)

利用 karush-kuhn-tucker (kkt)條件和拉格朗日公式,可以推出mmh可以被表示為以下「決定邊     

界 (decision boundary)」   

其中,

5.2  對於任何測試(要歸類的)例項,帶入以上公式,得出的符號是正還是負決定

6. 例子:

機器學習之線性分類SVM

coding utf 8 created on fri nov 30 21 05 40 2018 author muli import matplotlib.pyplot as plt import numpy as np from sklearn import datasets,cross val...

機器學習 SVM演算法

經常遇到或用到svm演算法,不過都是用的別人的 並沒有深入的研究理解過。感覺很不應該,今天記錄一下自己的感受和理解。之前對svm的理解就是將資料對映到高維空間從而找到最優的分割平面。處理二維資料時,為一條分割線,三維時就是乙個超平面。當維度上公升,那就是尋找更高維的超平面。如何確定哪條分割線是最優的...

機器學習之SVM

支援向量機是一種二類分類模型。在介紹svm之前,需要先了解支援向量這一概念,支援向量是訓練樣本的乙個子集,這一子集是二類分類的決策邊界。在二類分類過程中,可能存在無數個能夠正確分離二類資料的超平面,如圖1所示。但是不是所有的超平面都在未知資料上執行的都很好,例如圖2中的超平面b 1 就比超平面b 2...