1. svm是什麼?
support vector machine。乙個普通的svm就是一條直線,用來完美劃分linearly separable的2類,即2分類。
但這有不是一條普通的直線,這是無數條可以分類的直線當中最完美的,因為它喬海在2個類的中間,距離2個類的點都一樣遠。
而所謂的support vector就是距離分界線最近的點(如下圖有填充色的蘋果和香蕉)。如果去到這些點,直線多半是要改變位置的,可以說這些vectors(點)support(定義)了machine(分類器/模型)。
所以說,只要找到了這些最靠近的點,就找到svm了。
如果是高維的點,svm的分界就從線變成了平面或者超平面。其實本至上都是一刀切兩塊,姑且彤彤叫做直線了。
2. svm的優缺點
可以解決小樣本情況下的ml問題
可以解決高維度問題,可以避免神經網路結構選擇和區域性極小點問題
可用於線性&非線性分類,泛化錯誤率低、計算開銷不大、結果容易解釋
svm是最好的現成的分類器,現成是指不加修改即可直接使用、並且能夠得到較低的錯誤率,svm可以對訓練集之外的資料點做很好的分類決策
對引數調節和核函式的選擇敏感,對缺失值敏感;
svm演算法對大規模訓練樣本難以實施。由於svm是借助二次規劃來求解支援向量,所涉及到的m階矩陣的計算(m為樣本的個數)在m很大時,會耗費大連的機器記憶體和運算時間。(吐槽:這不就跟優點「計算開銷不大」衝突了?)
用svm解決多分類問題存在困難,經典的svm演算法只給出了2分類的演算法,而在資料探勘的實際應用中,一般要解決多分類的分類問題。當然,可以通過多個2分類svm的組合來解決。
是乙個凸優化問題,所以求得的解一定是全域性最優而不是區域性最優
3. svm的原理
一種說法是:svm是建立在統計學習理論的vc維理論和結構風險最小原理基礎上的,根據有限的資訊在模型的複雜性(即對特定訓練樣本的學習的accruracy,參見混淆矩陣)和學習能力(即無錯誤的識別任意樣本的能力)之間尋求最佳折中,一起獲得最好的泛化能力/推廣能力。
所謂vc維:4. svm的主要應用場景&研究熱點
主要應用於分類問題中的模式識別領域的文字識別、中文分類、人臉識別等;同時也應用到資訊過濾等方面
當前的研究熱點主要是對svm中演算法的優化:
2.1 包括解決svm中二次規劃求解問題、對大規模svm的求解問題、對svm中qp問題的求解等
2.2 另外就是如何更好地構造基於svm的多分類器、如何提高svm的歸納能力和分類速度等;
2.3 如何根據實際問題確定核函式也是乙個重要的熱點(核函式即是線性不可分的轉化為高維線性可分的問題,再進行線性分類);
ML筆記 分類模型評估
混淆矩陣 confusion matrix 是視覺化工具,特別用於監督學習,在無監督學習中一般叫做匹配矩陣,主要用於比較分類結果和實際測得值,可以把分類結果的精度顯示在乙個混淆矩陣裡面。tp的定義 實際為正 為正 fp的定義 實際為負但 為正 tn的定義 實際為負 為負 fn的定義 實際為正但 為負...
學習筆記 分類演算法 邏輯回歸
邏輯回歸 logistic regression 簡稱lr。它的特點是能夠使我們的特徵輸入集合轉化為0和1這兩類的概率。一般來說,回歸不用在分類問題上,因為回歸是連續型模型,而且受雜訊影響比較大。如果非要應用進了 來,可以使用邏輯回歸。了解過線性回歸之後再來看邏輯回歸可以更好的理解。logistic...
分類演算法(四) SVM
svm 演算法 一種效果比較好的分類演算法,相對來說訓練速度較其他方法可能慢一些 encoding utf 8 from sklearn import svm from sklearn import neighbors,linear model from sklearn import metrics...