支持向量機(SVM)入門

1、簡介

支持向量機,一種監督學習方法,因其英文名爲support vector machine,故通常簡稱SVM。html

通俗來說,它是一種二類分類模型,其基本模型定義爲特徵空間上的間隔最大的線性分類器,其學習策略即是間隔最大化,最終可轉化爲一個凸二次規劃問題的求解。python

支持向量機建構一個或多個高維(甚至是無限多維)的超平面來分類數據點,這個超平面即爲分類邊界。 直觀來講,好的分類邊界要距離最近的訓練數據點越遠越好,由於這樣能夠減低分類器的泛化偏差。算法

 在支持向量機中,分類邊界與最近的訓練數據點之間的距離稱爲間隔(margin); 支持向量機的目標即爲找出間隔最大的超平面來做爲分類邊界。網絡

支持向量機的支持向量指的就是那些與分類邊界距離最近的訓練數據點。 從支持向量機的最佳化問題能夠推導出一個重要的性質:支持向量機的分類邊界能夠被那些支持向量決定,而與其餘數據點無關。 這也是它們被稱爲「支持向量」的緣由。機器學習

注:一個機器學習模型的泛化偏差(Generalization error),是一個描述學生機器在從樣品數據中學習以後,離教師機器之間的差距的函數。使用這個名字是由於這個函數代表一個機器的推理能力,即從樣品數據中推導出的規則可以適用於新的數據的能力。函數

2、優勢

一、能夠解決小樣本狀況下的機器學習問題。性能

二、能夠提升泛化性能。學習

三、能夠解決高維問題。.net

四、能夠解決非線性問題。htm

五、能夠避免神經網絡結構選擇和局部極小點問題。

3、缺點

一、對缺失數據敏感。

二、對非線性問題沒有通用解決方案,必須謹慎選擇Kernel function來處理。

4、通常流程

 

5、實現

一、機器學習庫scikit-learn 中Support Vector Machines,python實現

二、IBSVM,由臺灣大學林智仁編寫。LIBSVM是一個整合了支持向量機(C-SVC, nu-SVC)、迴歸、分佈估計(one-class SVM)的軟件。而且支持多類別的分類。

三、LIBLINEAR,主要專門爲百萬級別的數據和特徵實現的線性分類器。

四、dlib庫,C++模板實現

五、SVMlight 包,使用C 語言實現的支持向量算法

6、更多資料

支持向量機通俗導論(理解SVM的三層境界)

http://blog.csdn.net/v_july_v/article/details/7624837

1.4. Support Vector Machines

http://scikit-learn.org/stable/modules/svm.html

支持向量機-維基百科

https://zh.wikipedia.org/wiki/%E6%94%AF%E6%8C%81%E5%90%91%E9%87%8F%E6%9C%BA

Support vector machine, From Wikipedia, the free encyclopedia

https://en.wikipedia.org/wiki/Support_vector_machine

各類分類算法的優缺點

http://bbs.pinggu.org/thread-2604496-1-1.html

SVM的優缺點

http://blog.csdn.net/fengzhizizhizizhizi/article/details/23911699

SVMlight Support Vector Machine

http://svmlight.joachims.org/

dlib C++ library

http://dlib.net/ml.html

LIBSVM -- A Library for Support Vector Machines

http://www.csie.ntu.edu.tw/~cjlin/libsvm/

LIBLINEAR -- A Library for Large Linear Classification

http://www.csie.ntu.edu.tw/~cjlin/liblinear

http://www.csie.ntu.edu.tw/~cjlin/papers/liblinear.pdf

LibLinear(SVM包)使用說明之(一)README

http://blog.csdn.net/zouxy09/article/details/10947323/

相關文章
相關標籤/搜索