十大经典数据挖掘算法:SVM
Treant 人工智能愛好者社區專欄作者
博客專欄:https://www.cnblogs.com/en-heng
?
SVM(Support Vector Machines)是分類算法中應用廣泛、效果不錯的一類。《統計學習方法》對SVM的數學原理做了詳細推導與論述,本文僅做整理。由簡至繁SVM可分類為三類:線性可分(linear SVM in linearly separable case)的線性SVM、線性不可分的線性SVM、非線性(nonlinear)SVM。
?
1.線性可分
對于二類分類問題,訓練集
,其類別
,線性SVM通過學習得到分離超平面(hyperplane):
?
?
以及相應的分類決策函數:
?
?
有如下圖所示的分離超平面,哪一個超平面的分類效果更好呢?
?
?
直觀上,超平面
的分類效果更好一些。將距離分離超平面最近的兩個不同類別的樣本點稱為支持向量(support vector)的,構成了兩條平行于分離超平面的長帶,二者之間的距離稱之為margin。顯然,margin更大,則分類正確的確信度更高(與超平面的距離表示分類的確信度,距離越遠則分類正確的確信度越高)。通過計算容易得到:
?
?
從上圖中可觀察到:margin以外的樣本點對于確定分離超平面沒有貢獻,換句話說,SVM是有很重要的訓練樣本(支持向量)所確定的。至此,SVM分類問題可描述為在全部分類正確的情況下,最大化
(等價于最小化
);線性分類的約束最優化問題
?
?
對每一個不等式約束引進拉格朗日乘子(Lagrange multiplier)
構造拉格朗日函數(Lagrange function):
?
?
根據拉格朗日對偶性,原始的約束最優化問題可等價于極大極小的對偶問題:
?
?
將
對
求偏導并令其等于0,則
?
?
將上述式子代入拉格朗日函數(3)中,對偶問題轉為
?
?
等價于最優化問
?
?
線性可分是理想情形,大多數情況下,由于噪聲或特異點等各種原因,訓練樣本是線性不可分的。因此,需要更一般化的學習算法。
?
2.線性不可分
線性不可分意味著有樣本點不滿足約束條件(2),為了解決這個問題,對每個樣本引入一個松弛變量
這樣約束條件變為:
?
?
目標函數則變為
?
?
其中,
為懲罰函數,目標函數有兩層含義:
- margin盡量大,
- 誤分類的樣本點計量少
?
為調節二者的參數。通過構造拉格朗日函數并求解偏導(具體推導略去),可得到等價的對偶問題:
?
?
與上一節中線性可分的對偶問題相比,只是約束條件
發生變化,問題求解思路與之類似。
?
3.非線性
對于非線性問題,線性SVM不再適用了,需要非線性SVM來解決了。解決非線性分類問題的思路,通過空間變換?(一般是低維空間映射到高維空間
后實現線性可分,在下圖所示的例子中,通過空間變換,將左圖中的橢圓分離面變換成了右圖中直線。
?
?
在SVM的等價對偶問題中的目標函數中有樣本點的內積
在空間變換后則是
由于維數增加導致內積計算成本增加,這時核函數(kernel function)便派上用場了,將映射后的高維空間內積轉換成低維空間的函數:
?
?
將其代入一般化的SVM學習算法的目標函數(7)中,可得非線性SVM的最優化問題:
?
?
4.參考資料
[1] 李航,《統計學習方法》.
[2] Pang-Ning Tan, Michael Steinbach, Vipin Kumar, Introduction to Data Mining.
?
往期回顧:
【十大經典數據挖掘算法】C4.5
【十大經典數據挖掘算法】k-means
總結
以上是生活随笔為你收集整理的十大经典数据挖掘算法:SVM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 机器学习手动撸代码系列3-感知机
- 下一篇: 机器学习实战:GBDT Xgboost