經常遇到或用到svm演算法,不過都是用的別人的**,並沒有深入的研究理解過。感覺很不應該,今天記錄一下自己的感受和理解。
之前對svm的理解就是將資料對映到高維空間從而找到最優的分割平面。
處理二維資料時,為一條分割線,三維時就是乙個超平面。當維度上公升,那就是尋找更高維的超平面。
如何確定哪條分割線是最優的?我們希望這條線把兩類分的越開越好,也就是它離兩類的距離都很大。
如圖所示,被圈起來的點就是所說的支援向量support vector。
當我們確定了支援向量,那分割函式也就可以確定下來了。兩邊的支援向量到分割線的距離和為m=2/||w||,最大化該值就可以得到分割直線了。
求解該方程可以用拉格朗日乘子法將約束條件加入式中進行計算得到。
遇到線性不可分的情況時,我們需要在當某些資料被錯誤分類時,加入相應的懲罰項。當犯的錯誤越多,懲罰項越大,上面提到的公式最小化的過程就會受阻,所以相應的會對分類錯誤的進行調整。
藍色的為懲罰項。c為該項的重要程度,當我們把這個值設定的很大,那麼演算法就會努力降低這一項,這就導致訓練結果對於我們選定的這個樣本集出現乙個overfitting的情況,這是不好的。c的選取要多次試驗得到。
這是一種需要向高維對映的情況。
到了一定的維度,兩組資料總歸能夠分開的,因為他們畢竟不是同一組資料。也就是說他們總會在某乙個維度上是不一樣的可以分開的,影象處理時就是說總歸存在某個特徵,在這個特徵上這兩幅影象是不一樣的。
ref:
leftnoteasy-機器學習中的演算法(2)-支援向量機(svm)基礎
機器學習演算法療程(SVM)
svm處方清單 libsvm在matlab下的使用 libsvm3.2.0中的matlab文件說明 解密svm系列 一 關於拉格朗日乘子法和kkt條件 解密svm系列 二 svm的理論基礎 解密svm系列 三 smo演算法原理與實戰求解 解密svm系列 四 svm非線性分類原理實驗 解密svm系列 ...
機器學習演算法 SVM 詳解
支援向量機 support vector machines 是一種二分類模型,它的目的是尋找乙個超平面來對樣本進行分割,分割的原則是間隔最大化,最終轉化為乙個凸二次規劃問題來求解。由簡至繁的模型包括 1 間隔最大化和支援向量 如果乙個線性函式能夠將樣本分開,稱這些資料樣本是線性可分的。那麼什麼是線性...
機器學習 基礎演算法 SVM
support vector machine 一般去理解乙個演算法,都是從名字入手,接觸了這麼幾個演算法,這是唯一乙個讓人捉摸不透的名字.svm from the classifier to the closestdata pointscalled thesupport vector,these s...