資料探勘十大演算法(三) SVM支援向量機 初步

2021-08-21 11:51:10 字數 1747 閱讀 6669

支援向量機(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 關...