機器學習演算法的python實現之svm支援向量機(1) 理論知識

來源:互聯網
上載者:User

1.背景

強烈推薦閱讀(http://www.cnblogs.com/jerrylead/archive/2011/03/13/1982639.html)

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

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

2.基本概念

(1)線性可分

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

(2)支援向量

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

(3)拉格朗日乘子法

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

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

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

(4)變型

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

本欄目更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/sjjg/

約束條件就變成了

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

作者:csdn部落格 李博Garvin

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.