svm是一種訓練機器學習的演算法,可以用於解決分類和回歸問題,同時還使用了一種稱之為kernel trick的技術進行資料的轉換,然後再根據這些轉換資訊,在可能的輸出之中找到乙個最優的邊界。簡單來說,就是做一些非常複雜的資料轉換工作,然後根據預定義的標籤或者輸出進而計算出如何分離使用者的資料。
簡單理解:
什麼是機?什麼是向量?什麼是支援?機就是演算法的意思,為什麼不叫演算法叫機是因為一些歷史原因。向量就是向量,做分類的時候每個樣本都用乙個向量表示。支援有撐起來,決定的意思。做分類的時候一般都是找到乙個分類超平面(二緯的話是線),超平面一側是正類一側是負類。何為支援向量,就是決定了這個分類超平面的向量。所以可以這樣理解支援向量機:它是乙個分類演算法,這個演算法是通過超平面進行分類的,這個超平面是由支援向量決定的。
最大間隔超平面:支援向量機中最簡答的模型是最大間隔分類器,他只能用於特徵空間中線性可分的資料,因此不能在現實世界的許多情況下使用。
凸二次規劃:
稀疏解:
最大鬆弛變數:
首先,svm全稱是supported vector machine(支援向量機)。我們先不管它的名稱,因為這一開始並不是很好理解所謂的支援向量是什麼。但是本質上,這就是乙個分類器,並且是二類分類器。分類器我想答主一定是理解的吧,我就不贅述了,為什麼是二類的分類器呢?因為它最多只能告訴你這個東西要麼屬於a要麼屬於b,不能告訴你要麼屬於a要麼屬於b要麼屬於c。
先開始說svm的思想。如圖的例子,(訓練集)紅色點是我們已知的分類1,(訓練集)藍色點是已知的分類2,我們想尋找乙個分界超平面(圖中綠線)(因為示例是二維資料點,所以只是一條線,如果資料是三維的就是平面,如果是三維以上就是超平面)把這兩類完全分開,這樣的話再來乙個樣本點需要我們**的話,我們就可以根據這個分界超平面**出分類結果。
那我們如何選擇這個分類超平面呢?從數學上說,超平面的公式是
傳統方法是根據最小二乘錯誤法(least squared error),首先隨便定選取乙個隨機平面,也就是隨機選取
那我們svm演算法的思路是怎樣的呢?不同於傳統的最小二乘策略的思想,我們採用一種新的思路,這個分介面有什麼樣的特徵呢?第一,它「夾」在兩類樣本點之間;第二,它離兩類樣本點中所有「離它最近的點」,都離它盡可能的遠。如圖所示:
另外,這裡我們就可以解釋什麼是「支援向量」了,支援向量就是虛線上的離分類超平面最近的樣本點,因為每乙個樣本點都是乙個多維的向量,向量的每乙個維度都是這個樣本點的乙個特徵。比如在根據身高,體重,特徵進行男女分類的時候,每乙個人是乙個向量,向量有兩個維度,第一維是身高,第二維是體重。
介紹完svm的基本思想,我們來**一下如何用數學的方法進行svm分類。首先我們需要把剛剛說的最大間隔分類器的思想用數學公式表達出來。先定義幾何間隔的概念,幾何間隔就是在多維空間中乙個多維點到乙個超平面的距離,根據向量的知識可以算出來:
然後對於所有的支援向量,使他們到超平面
因為對於所有支援向量,他們
推導過程略為複雜,詳細了解可以參考凸二次規劃知識,結合smo演算法理解svm計算超平面的詳細過程。
總之,在計算的過程中,我們不需要了解支援向量以外的其他樣本點,只需要利用相對於所有樣本點來說為數不多的支援向量,就可以求出分類超平面,計算複雜度大為降低。
自己理解:
svm是一種訓練機器學習的演算法,本質上,這就是乙個分類器,並且是二類分類器,這個演算法是通過超平面進行分類的,最優分類面就是要求分類線不但能將兩類正確分開(訓練錯誤率為0),且使分類間隔最大
使用svm演算法的思路:(1)簡單情況,線性可分情況,把問題轉化為乙個凸優化問題,可以用拉格朗日乘子法簡化,然後用既有的演算法解決;(2)複雜情況,線性不可分,用核函式將樣本投射到高維空間,使其變成線性可分的情形,利用核函式來減少高緯度計算量。
首先,核函式是什麼
個人理解為:,核函式是一種表徵對映、實現內積邏輯關係且降低計算複雜度的一類特殊函式(滿足mercer's condition)!
核函式的作用就是隱含著乙個從低維空間到高維空間的對映,而這個對映可以把低維空間中線性不可分的兩類點變成線性可分的。
SVM演算法的理解
距離上次看svm演算法已經快過了半個月了,今天再次看到,溫故知新後決定把自己的理解寫出來。不過由於本人文筆不佳,所以想到什麼寫什麼,等有空了再整理。看到覺得混亂的還請見諒。剛剛看svm的時候,只能明白支援向量機之所以叫支援向量機是因為支援向量,後面懂得了w的內容是什麼 幾何距離的意義 低維對映到高維...
關於SVM的理解
因為參閱 涉及到svm數學原理,故跟著學習了下。先是看了知乎對svm的解釋,其中乙個高票答案看得我一頭霧水,擷取如下 畫第乙個圈的地方就很有誤導性,此處的y與後面的y都不一樣,後面的兩處y都是標記值。應該這麼去理解wt b 這個理解好了再參考 的內容就很容易把svm原理理解了 再談下關於文中 兩條直...
svm的形象理解
svm學了又忘,想來形象的理解一下 首先從字面上來看,支援向量機,為什麼取名叫支援向量機呢?核心在於支援向量,向量是啥,就是乙個線 高維就是平面 而已,為什麼要這條線呢,因為要根據這條線來確定唯一的平面 那麼這條線如何確定,那肯定要找到兩點,這兩點如何確定,類別a中出乙個點,類別b中出乙個點,求出兩...