支持向量機算法概述
支持向量機(Support Vector Machines桑阶,SVM)這個算法的名字很抽象衣厘,簡單的說窖梁,它也是一種分類器。之所以稱為“機”是因為它是一種會產(chǎn)生一個二值決策結(jié)果的算法髓考,“機”等于“算法”。
支持向量機的泛化錯誤率較低弃酌,也就是說它具有良好的學習能力氨菇,且學習到的結(jié)果具有很好的推廣性儡炼,并且基本形式的SVM分類器不加修改即可直接使用〔槿兀基于這些優(yōu)點乌询,有人認為它是監(jiān)督學習中最好的定式算法。
優(yōu)點:泛化錯誤率低豌研,計算開銷不大妹田,結(jié)果易理解。
缺點:對參數(shù)調(diào)節(jié)和核函數(shù)的選擇敏感鹃共,原始分類器不加修改僅適用于處理“二分類”問題鬼佣。
適用數(shù)據(jù)類型:數(shù)值型和標稱型數(shù)據(jù)。
入門案例
原書中的案例比較晦澀難懂霜浴,找到一個“深入淺出”的案例晶衷。
工作原理
支持向量機試圖通過求解一個二次優(yōu)化問題來最大化分類間隔(間隔越大說明分類越準確)。應用“序列最小優(yōu)化算法 ”(Sequential Minimal Optimization坷随,SMO)房铭,能夠?qū)⒋髢?yōu)化問題分解為多個小優(yōu)化問題來求解。這些小優(yōu)化問題往往很容易求解温眉,并且對它們進行順序求解的結(jié)果與將它們作為整體來求解的結(jié)果是完全一致的缸匪。在結(jié)果完全相同的同時,SMO算法的求解時間短很多类溢。
為便于理解概念凌蔬,上面的入門案例最開始提供的數(shù)據(jù)是線性可分的,得到的是“分割直線” 闯冷。但在現(xiàn)實中砂心,數(shù)據(jù)往往是“非線性”可分的,但這類數(shù)據(jù)中也存在可識別的分類模式蛇耀。所以SVM還要搭配稱為“核函數(shù)”(kernel)的工具辩诞,它可以將數(shù)據(jù)從低維空間映射到高維空間,因此可以將一個在低維空間中的非線性問題轉(zhuǎn)換成高維空間下的線性問題來求解纺涤。
一般流程
1.收集數(shù)據(jù):可以使用任何方法译暂;
2.準備數(shù)據(jù):需要數(shù)值型數(shù)據(jù);
3.分析數(shù)據(jù):可視化分隔超平面撩炊;
4.訓練算法:SVM的大部分時間都源自訓練外永,該過程主要實現(xiàn)兩個參數(shù)的調(diào)優(yōu);
5.測試算法:十分簡單的計算過程就可以實現(xiàn)拧咳;
6.使用算法:幾乎所有分類問題都可以使用SVM伯顶,值得一提的是,SVM本身是一個二類分類器,地多類問題應用SVM需要對代碼做一些修改祭衩。
可使用場景
1.圖像識別
2.天氣預報
......