支援向量機(support vector machine, svm)演算法,是一種用於二分類的分類演算法,通過資料集訓練得到的分類器,可以用來**新的樣本的類別(正例或負例兩種類別)。svm也可以用於回歸。
文字僅講述支援向量分類器(svc)。根據資料集的不同,svm可以分為三類:
1.線性可分
2.線性不可分
3.非線性
下面,以線性可分的情況為例,講解svm的概念和基本公式推導過程。
先以乙個二維資料集例項為例,介紹svm的概念,直觀理解svm的作用。
如下圖所示,是乙個訓練集(二維平面上的點集),其中黑色為正例,紅色點為負例,這是他們的類別標籤(label)。現在,需要根據訓練集求出一條線,對測試集的點進行分類。在直線兩側的樣本分別屬於不同的兩類。
現在,有如下圖的兩條直線,用於分類。
那麼哪條直線的分類效果最好呢,直觀地看,是l2。可以看一下,這兩種情況下對新的樣本(下圖中綠色的點)的分類**情況,如下圖。
可以看出,在第一種分類下,第乙個綠點被分類為負例,然而直觀地看,這個點明顯於是正例的一類,第二個綠點的分類情況類似。在第二種分類下,兩個綠點(直觀上)都被正確地分類,所以我們選擇l2作為分類的標準。
下面,記我們選擇的這條直線為l。我們將l沿著左下和右上的方向,移動,直到直線分別第一次接觸到兩個類中的點,達到如下圖所示的狀態。
回過頭來思考之前那個問題,為什麼l2比l1好?因為l2(l),距離支援兩個類別中的支援向量的距離大。可以看下面的對比圖。
如上圖,前面提到的第一條直線,距離兩個類的支援向量的距離非常小。因此,我們在尋找最優的直線的時候,可以以直線距離兩個類中的支援向量的和作為目標函式,讓這個目標最大化,對應的直線,就是我們要尋找的直線。
下面,我們用數學符號表示、推導這些過程。上面的例子是二維平面內的點,而實際的資料集可能不止二維,而是高維數的,因此,下面的一些數學符號、數學用語可以用來表示高維資料集。
上述問題,是乙個關於α的二次規劃問題,可以利用已有的程式包求解,也可以利用更高效的smo演算法求解(smo演算法略)。關於svm最基本的數學推導,就是上面這些。
1. 2.
2.
資料探勘十大演算法 SVM
support vector classifier svc 與support vector regressor svr 函式間隔 mi n w x b 此時如果我們倍增w,b 可以無限擴大函式間隔,因此,它並不能作為標準 幾何間隔,是歸一化的函式間隔 mi n w x b w 為了方便討論,令幾何間...
十大經典資料探勘演算法 SVM
十大經典資料探勘演算法 系列 c4.5 k means svmapriori empagerank adaboost knnna ve bayes cart svm support vector machines 是分類演算法中應用廣泛 效果不錯的一類。統計學習方法 對svm的數學原理做了詳細推導與...
資料探勘十大演算法
資料探勘十大演算法分為c4.5,k means,svm,apriori,em,pagerank,adaboost,knn,bayes,cart十種演算法。c4.5 關聯演算法 id3。關係 c4.5是id3的改進。決策樹演算法的一種。k means 聚類演算法。svm 支援向量機。apriori 關...