支持向量機(supportvectormachines,SVM) 是一種二類分類模型.它的基本模型是定義在特征空間上的間隔最大的線性分類器,間隔最大使它有別於感知機; 支持向量機還包括核技巧,這使它成為實質上的非線性分類器.支持向量機的學習策略就是間隔最大化,可形式化為一個求解凸二次規划(convex quadratic也等價於正則化的合頁損失函數的最小化問題.支持向programming )的 問題,量機的學習算法是求解凸二次規划的最優化算法.支持向量機學習方法包含構建由簡至繁的模型: 線性可分支持向量機(linearsupport vector machine in linearly separable case)、線性支持向量機(lincar supportvector machine) 及非線性支持向量機(non-linear support vector machine).簡單模型是復雜模型的基礎,也是復雜模型的特殊情況.當訓練數據線性可分時,通過硬間隔最大化(hard margin maximization),學習一個線性的分類器,即線性可分支持向量機,又稱為硬間隔支持向量機; 當訓練數據近似線性可分時,通過軟間隔最大化(soft margin maximization),也學習一個線性的分類器,即線性支持向量機,又稱為軟間隔支持向量機; 當訓練數據線性不可分時,通過使用核技巧(kerael trick) 及軟間隔最大化,學習非線性支持向量機.當輸入空間為歐氏空間或離散集合、特征空間為希爾伯特空間時,核函數(kernel function) 表示將輸入從輸入空間映射到特征空間得到的特征向量之間的內積.通過使用核函數可以學習非線性支持向量機,等價於隱式地在高維的特征空間中學習線性支持向量機.這樣的方法稱為核技巧.核方法(kernel method) 是比支持向量機更為一般的機器學習方法.Cortes 與Vapnik 提出線性支持向量機,Boser、Guyon 與Vapnik 又引入核技巧,提出非線性支持向量機,本章按照上述思路介紹3 類支持向量機、核函數及一種快速學習算法一一序列最小最優化算法(SMO).
支持向量機Python實戰(手寫體識別): https://github.com/itmorn/Machine-Learning/tree/master/SupportVectorMachine
Python sklearn-svm地址: http://scikit-learn.org/stable/modules/svm.html
——黎明傳數