天天看點

Svm的一些小碎碎(個人整理)

原文章位址:寒小陽http://blog.csdn.net/han_xiaoyang/article/details/52678373

1.引言

欠的總是要還的,SVM這麼神聖的算法是每個從事資料挖掘/資料分析的朋友可能會頭疼的東西,又是不得不面對的,

因為最近準備應聘,是以又将機器學習的這些算法又整理一遍,複習一下,希望我好運!

2.支援向量機(SVM)的學習目标

 SVM的目标是利用訓練資料集的間隔最大化找到一個最優分離超平面

 首先SVM和樸素貝葉斯一樣,需要一些用于訓練的資料進行訓練模型,也就是說SVM是一個有監督學習算法.

SVM也是一個分類算法,和樸素貝葉斯一樣,可以用來預測資料屬于哪個類别。比如Kg比賽典型的例子:泰坦尼克号生存結果和垃圾郵件分類.

舉一個簡單的例子友善了解:

Svm的一些小碎碎(個人整理)

圖中是人的身高和體重繪制的散點圖,使用支援向量機(SVM),可以嘗試一下這些問題:

給定一個特征的資料點(重量和身高),這個人的性别是什麼?

比如現在有一個人身高為175cm,體重為80kg,他是男性還是女性呢?

很顯然,結合上邊的圖,此人為男性。

3.什麼是分離超平面

 結合上圖很容易就可以看出,我們是有辦法可以分離這兩類樣本點的.比如可以畫一條直線,使的将男性和女性分開,在SVM中我們把這條線叫做分離超平面,大概就是下圖的這個樣子:

Svm的一些小碎碎(個人整理)

 那麼問題來了:這明明是一條直線,為什麼稱他為一個超平面

上邊的小例子中知識隻是在二維空間中的,那麼如果如果在三維空間中呢?

所謂超平面是平面的一般化:

 在一維空間中,它是點

 在二維空間中,它是線

 在三維空間中,它是面

 在四維以及更高維的空間中,我們就稱為超平面

什麼是最優分離超平面?

回到剛才的例子當中,我們可以找到好幾個分離超平面,他們每一個都是正确的,可以成功按照性劃分

Svm的一些小碎碎(個人整理)

顯然不能随便選擇一條分割線,就确定最終的結果,那就太荒唐了!

是以我們選擇選擇這樣的一個超平面:最可能的遠離所有類别的資料點;

Svm的一些小碎碎(個人整理)

 我們選擇這條線為最優,看起來好多了,可以将他們好好的分對了!

這就是SVM要做的事情,支援向量機就是要找到這樣一個最優分類超平面,保證:

1.準确無誤的将訓練資料進行分類

2.對測試集資料也要進行很好的分類

那麼最早說這篇部落客要說Margin/間隔有什麼關系呢?又怎麼找到呢?

Svm的一些小碎碎(個人整理)
Svm的一些小碎碎(個人整理)

結合上邊的圖,簡單的說就是:Margin就是最優分離超平面的間隔

給定一個特征的超平面,我們可以計算出這個超平面與和他最接近的資料點之間的距離.間隔就是二倍的這個距離

一般的說,間隔中間是無點區域.這意味着裡邊不會有任何的資料元素.(如果資料中存在噪聲的,可能不會這麼理想)

從剛才的圖中選一個,間隔hi看起來像這個樣子:

Svm的一些小碎碎(個人整理)

 可以看到:圖中B的間隔小于A的間隔.

 我們有以下的觀察結果:

 1.如果一個超平面有非常接近的一個資料點,那麼間隔會小

 2.如果一個超平面離資料點越遠,那麼間隔越大.

 這就意味着 "最優超平面将有最大的間隔"

接下來準備寫SVM是利用間隔最大化求得最優分離超平面的!

小陽大佬部落格寫的非常不錯,經常學習,學到了很多東西,這次自己學習寫了一下!再次緻謝!

繼續閱讀