天天看點

【機器學習算法-python實作】svm支援向量機(1)—理論知識介紹1.背景2.基本概念

(轉載請注明出處:)

       支援向量機svm(support vector machines)。svm是一種二值分類器,是近些年比較流行的一種分類算法。

本文,首先要介紹一些基本的知識概念,在下一章将對svm進行簡單地代碼實作。

       首先介紹一下什麼叫線性可分,引用一張上一節的圖。線性可分實際上就是可以用一條直線将兩種不同的點區分開來。由此我們可以得到線性不可分就是兩種點混合在一起不能區分。但是線性不可分的點其實也可以用數學方法區分開來。比如說一個四維的資料集我們可以用一個三維的對象将其分開,這個對象叫做超平面。下圖的超平面就是那條藍線。

【機器學習算法-python實作】svm支援向量機(1)—理論知識介紹1.背景2.基本概念

       支援向量,現在我們知道了超平面的概念,支援向量其實就是距離超平面在最近的向量。以上圖為例,就是距離藍線最近的那些點。方法就是點到線的距離判定。一旦我們找到了這些支援向量,那麼我們就可以放大這些向量,隻考慮這些對象,用到的是序列最小優化的思想。

       對于支援向量的求法,我們需要一定的限制條件。比如說我們設點到超平面的距離是d,我們要求取d>1的點作為限制條件。因為如果沒有這個限制條件會使得計算出現誤差。

【機器學習算法-python實作】svm支援向量機(1)—理論知識介紹1.背景2.基本概念

這個公式是我們去點到超平面距離最小的點的集合,且滿足

【機器學習算法-python實作】svm支援向量機(1)—理論知識介紹1.背景2.基本概念

。在存在限制條件情況下求極值的問題,我們用到拉格朗日乘子法(參見百度百科)。

   參照拉格朗日公式f(x1,x2,...λ)=f(x1,x2,...)-λg(x1,x2...)。我們把上面的式子變型為

【機器學習算法-python實作】svm支援向量機(1)—理論知識介紹1.背景2.基本概念

 限制條件就變成了

【機器學習算法-python實作】svm支援向量機(1)—理論知識介紹1.背景2.基本概念

上式的參數c使松弛變量,因為我們看到圖中一些紅點被分到了綠點的範圍裡,為了考慮到這種問題,引入一個變量來控制。svm的主要任務是計算參數c。

繼續閱讀