支持向量機演算法流程圖
Ⅰ 支持向量機學習演算法
支持向量機學習演算法主要有以下五種:
(1)獲取學習樣本(xi,yi),i=1,2…,其中xi∈Rn,y∈任 {1,-1}l,對樣本進行預處理;
(2)選擇進行非線性變換的核函數及對錯分(誤差)進行懲罰的懲罰因子c;
(3)形成二次優化問題用優化方法(如:Chuknlng演算法、內點演算法、SMO演算法);
(4)獲得a,a*及b0的值,代入方程中,獲得分類或函數擬合的支持向量機;
(5)將需預測或分類的數據代入支持向量機方程中獲得結果。
基坑降水環境影響評價參數選取降水方式、岩土性質、水文地質邊界、基坑側壁狀態、邊載分布、後續使用年限、基礎型式、差異沉降8級,目標輸出模式對應4個級別:優等級(Ⅰ)、良好級(Ⅱ)、中等級(Ⅲ)、差級(Ⅳ)。
用一對多多類支持向量機水質分類法:有四類等級要劃分,於是在抽取訓練集的時候,分別抽取I所對應的向量作為正集,其餘所對應的向量作為負集;Ⅱ所對應的向量作為正集,其餘所對應的向量作為負集……,這四個訓練集分別進行訓練得到四個分類器。然後,利用這四個訓練結果文件對測試集分別進行測試,最後每個測試都有一個結果,最終的結果便是這四個值中最大的一個。
利用支持向量機進行基坑降水環境影響評價就是尋找影響基坑降水環境系統和孕災環境系統的指標和基坑降水環境影響等級之間的關系,可建立以下四個分類函數:
基坑降水工程的環境效應與評價方法
Ⅱ 支持向量機請通俗介紹 高中文化
超級通俗的解釋:
支持向量機是用來解決分類問題的。
先考慮最簡單的情況,豌豆和米粒,用曬子很快可以分開,小顆粒漏下去,大顆粒保留。
用一個函數來表示就是當直徑d大於某個值D,就判定為豌豆,小於某個值就是米粒。
d>D, 豌豆
d<D,米粒
在數軸上就是在d左邊就是米粒,右邊就是綠豆,這是一維的情況。
但是實際問題沒這么簡單,考慮的問題不單單是尺寸,一個花的兩個品種,怎麼分類?
假設決定他們分類的有兩個屬性,花瓣尺寸和顏色。單獨用一個屬性來分類,像剛才分米粒那樣,就不行了。這個時候我們設置兩個值 尺寸x和顏色y.
我們把所有的數據都丟到x-y平面上作為點,按道理如果只有這兩個屬性決定了兩個品種,數據肯定會按兩類聚集在這個二維平面上。
我們只要找到一條直線,把這兩類劃分開來,分類就很容易了,以後遇到一個數據,就丟進這個平面,看在直線的哪一邊,就是哪一類。
比如x+y-2=0這條直線,我們把數據(x,y)代入,只要認為x+y-2>0的就是A類,x+y-2<0的就是B類。
以此類推,還有三維的,四維的,N維的 屬性的分類,這樣構造的也許就不是直線,而是平面,超平面。
一個三維的函數分類 :x+y+z-2=0,這就是個分類的平面了。
有時候,分類的那條線不一定是直線,還有可能是曲線,我們通過某些函數來轉換,就可以轉化成剛才的哪種多維的分類問題,這個就是核函數的思想。
例如:分類的函數是個圓形x^2+y^2-4=0。這個時候令x^2=a; y^2=b,還不就變成了a+b-4=0 這種直線問題了。
這就是支持向量機的思想。
機的意思就是 演算法,機器學習領域裡面常常用「機」這個字表示演算法
支持向量意思就是 數據集種的某些點,位置比較特殊,比如剛才提到的x+y-2=0這條直線,直線上面區域x+y-2>0的全是A類,下面的x+y-2<0的全是B類,我們找這條直線的時候,一般就看聚集在一起的兩類數據,他們各自的最邊緣位置的點,也就是最靠近劃分直線的那幾個點,而其他點對這條直線的最終位置的確定起不了作用,所以我姑且叫這些點叫「支持點」(意思就是有用的點),但是在數學上,沒這種說法,數學里的點,又可以叫向量,比如二維點(x,y)就是二維向量,三維度的就是三維向量( x,y,z)。所以 「支持點」改叫「支持向量」,聽起來比較專業,NB。
所以就是 支持向量機 了。
Ⅲ 什麼是SVM支持向量機
大家好,今天要講的內容是,SVM支持向量機。
如果沒有深度學習,可能現在依然是SVM的天下。
也許SVM過時了,但不管怎麼說,SVM都是演算法工程師必須要學習的常識性演算法。
1.什麼是SVM
SVM是用來解決分類問題的。
下面這個例子,直接表明了SVM分類器的特點:
假設在平面上分布著藍色和紅色兩種樣本,M和N對應了兩個不同模型的決策邊界。
直觀來說,哪個模型更好一些?為什麼?
很明顯,M要比N,看起來更好。
因為對於M,即使樣本在觀測時產生了誤差,但只要在綠色圓圈范圍內,就不會影響最終的分類結果。
對於N,綠色圓圈很小,樣本稍有變化,超出圓圈,分類器就會產生不同的結果。
因此M比N有更好的容忍測量誤差的能力,M對樣本的分類信心更強。
SVM就是要找到一個「對樣本分類最有信心」的決策邊界。
SVM的決策邊界,到各個樣本的間隔margin,是最大的。
因此SVM也被稱為是最大間隔分類器。
例如,分界面M和N都可以將樣本正確的分開。
這時將紅色的分界面同時向左右兩邊平移,到達與某個樣本點相切的位置,此時在分界面的兩側,就得到了兩條平行的黃線。
黃線之間的距離即為間隔margin。
我們可以看出,M是large margin,N是small margin。
SVM演算法,就是要找到間隔margin最大的決策邊界。
而支撐這個間隔的樣本,會被稱為支持向量。
因此該演算法得名,支持向量機,Support Vector Machine。
2.SVM目標函數的推導
無論訓練哪種模型,例如,感知器、邏輯回歸還是SVM,都需要先設計出模型的目標函數。
我們需要基於尋找最大間隔的分界面這一目標,來設計SVM的目標函數:
下面就來詳細討論,SVM目標函數的推導過程。
設樣本的特徵向量為X,其中包含x1到xn,n個特徵,
每個特徵對應的權重為w1到wn,保存在向量W中:
因此,得到決策邊界的方程為w1x1+w2x2+...+wnxn+b=0,
它的向量形式為WT*X+b=0:
設空間中有m個樣本,第i個樣本表示為(xi, yi):
如果樣本xi是正例,那麼標記yi=+1。
如果樣本xi是負例,那麼標記yi=-1。
我們可以將第i個樣本的預測值,表示為W轉置乘向量xi加b。
SVM將嘗試尋找最大間隔的分界面M:
而我們要將這個目標,轉為具體的目標函數,進而設計出迭代演算法。
設第i個樣本xi到分界面的距離為distance(xi, W),其中W是分界面的參數。
在全部樣本到分界面的距離中,有一個最短的距離,我們設它的長度是d。
而間隔margin就等於2d:
SVM就是要求出,在所有樣本正確分類的條件下,使margin=2d最大的,分界面參數W。
根據空間中點到平面的距離公式,可以將第i個樣本xi到平面M的距離distance表示出來。
它等於將第i個樣本的預測值WT*xi+b,取絕對值,然後除以平面法向量W的模。
因為d是樣本到分界面最短的距離:
所以對於任意的正例yi=1,它們到分界面M的距離都大於等於d。
而任意的負例yi=-1,到分界面M的距離,都小於等於負d。
我們將不等式的兩邊都除以距離d。
然後將平面的法向量w的模和距離d相乘的結果看做是一個常數。
接著將不等式左側的分子和分母同時除以該常數,就會得到新的參數wd和bd:
此時相當於對所有的參數w和b,都縮放了相同的長度。
接著,對於原分界面WT*x+b=0:
同時令該等式的兩邊除以,法向量w的模和距離d的乘積。
這會使該分界面的參數,進行相同比例的縮放。
因此,我們將w和b的右下角,標記一個d。
縮放操作不會改變分界面本身,但可以使分界面和兩條間隔邊界線的參數保持一致。
我們將 wd 和 bd 的名稱重新修改為w和b:
得到所有正樣本滿足不等式1,負樣本滿足不等式2。
另外,恰好在分界面的黃色間隔邊界上的正樣本的代入值是+1,負樣本的代入值是-1。
接著,將間隔邊界上的樣本的預測值正負1,再代入到距離公式中:
就會得到最短距離d等於法向量w的模分之1。
因此我們推導出,margin=2倍的W模分之1:
而為了使margin最大,就是要使w的模最小。
求間隔margin的最大值,等價於求模的平方的最小值。
再根據模的計算公式展開,就可以得到二分之一倍的W轉置乘W。
另外,由於全部樣本都會被預測正確,因此預測值和真實值的符號是一致的。
在正負樣本滿足的不等式的兩邊,都乘以標記值yi,就得到了一個合成的約束條件。
最終,總結出SVM演算法的目標函數為:
在滿足所有樣本的真實值乘上預測值大於等於1的情況下,
求出使W轉置乘W取得最小值時的參數w和b的值。
3.一個具體的例子
設平面上有4個樣本,每個樣本有x1和x2兩個特徵:
樣本的坐標為0-0、2-2、2-0和3-0。
其中藍色圓圈是正例,紅色叉子是負例。
我們要基於SVM的目標函數:
求出直線方程中的w1、w2和b三個參數的值。
首先,將4個樣本點代入到約束條件中,可以得到4個不等式,A、B、C、D:
例如,將負例A(0, 0)代入,得到-b>=1。
接下來,要基於這4個不等式:
求1/2(w1^2+w2^2)取得最小值時,參數w和b的值。
將A和C聯立,得到w1>=1。
B和C聯立,得到w2=<-1。
很明顯,在w1=1、w2=-1的情況下,待優化的函數,會取得最小值1。
然後將w1=1和w2=-1,重新代入到4個不等式中,可以求得b=-1:
因此,就得到了平面方程x1-x2-1=0。
從計算的過程中可以發現:
實際上只有A、B、C三個樣本對應的不等式,參與了運算,所以它們是支持向量。
另外還可以計算出margin的長度,它等於w的模分之2,等於根號2,也就是1.414。
4.關於SVM的求解
在剛剛的例子中,我們手動計算了SVM的結果。
實際上,如果要用演算法求解SVM,還要有如下三個關鍵點:
1)拉格朗日乘子法和KKT條件。
2)SVM的等價問題和對偶問題。
3)對偶SVM的化簡和計算。
通過一系列的數學推導,我們可以得到一個,只關於拉格朗日乘子α的SVM最優化函數:
在該函數中,只有參數α和需要滿足的條件。
該最優化函數說明了,如果我們有m個樣本數據,那麼就有α1到αm這些參數。
其中解出的α需要大於等於0,並且所有α與樣本標簽y相乘,再相加的結果是0。
當解出α後,再根據KKT條件:
就可以計算出參數w和b了。
那麼到這里,SVM支持向量機,就講完了,感謝大家的觀看,我們下節課再會。