機器學習實戰 機器學習實戰 支援向量機(一)

2021-10-12 08:20:52 字數 2467 閱讀 6825

從分類效力來講,svm在無論線性還是非線性分類中,都十分出色:

現在桌子上有一些雜亂的「小球」我們想要將他們分開:

我們可以放一根棒棒上去~是不是看起來還行,小棍將藍色球和紅色球分開。

但這時,又有個人把一顆紅色的小球放在了棍子的另一邊,這樣就有乙個球似乎落在了錯誤的一側,我們可能需要調整棒棒:

所謂,svm 就是要將棒棒放置到最佳位置上,使得兩側都有盡可能大的間隔:

現在即使再有人搗亂,棒棒也能把兩種顏色的小球分開:

但要是小球是這樣擺放怎麼辦?好像沒有任何一根直的棒棒可以把兩種小球分開:

那就使出你三成內力拍向桌子,將小球震向空中!憑藉你水果忍者的技術,用一張紙切到小球中間!

現在~特徵空間出現了,而在別人的角度看來小球似乎被一條曲線完美分隔:

資料科學家們就把這些小球稱為「資料」、棒棒稱為「分類器」、找到最大間隔的過程稱為「優化」、拍桌子叫「核函式kernelling」、那張紙叫「超平面」。

總結一下就是說,當乙個分類問題是線性可分的時候,我們只需用一根棒就可以將小球分開,棒棒最佳的位置就是讓兩種小球離棒的距離最遠,尋找這個最大間隔的過程就是「優化」。但現實中,一般的資料往往是線性不可分的,這個時候我們就需要將小球拍起「核函式」,用一張紙「超平面」在空間中將小球分開。如果資料是 n 維的,那麼超平面就是 n-1 維的。比較下之前所學的內容,其實 logistic 模型找的超平面,是盡量讓所有點都遠離它,而 svm 尋找的超平面,是只讓最靠近中間分割線的那些點盡量遠離,即只用到那些「支援向量 support vector」的樣本——所以叫「支援向量機」。

把乙個資料集正確分開的超平面可能有多個,而具有「最大間隔」的超平面就是 svm 所要找的最優解。最靠近超平面的樣本點即為「支援向量」。支援向量到超平面的距離稱為「間隔 margin」。

在上面的例子中,我們通過將空間巧妙地對映到更高維度來分類非線性資料。然而事實證明,這種轉換可能會帶來很大的計算成本:可能會出現很多新的維度,每乙個都可能帶來複雜的計算。為資料集中的所有向量做這種操作會帶來大量的工作,所以尋找乙個更簡單的方法非常重要。

還好,我們已經找到了一些訣竅:svm 其實並不需要真正的向量,它可以用它們的數量積(點積)來進行分類。這意味著我們可以避免耗費計算資源的境地了。我們需要這樣做:

找到新空間中點積的形式:

讓 svm 處理新的點積結果——這就是核函式

這就是核函式的技巧,它可以減少大量的計算資源需求。通常,核心是線性的,所以我們得到了乙個線性分類器。但如果使用非線性核心,我們可以在完全不改變資料的情況下得到乙個非線性分類器:我們只需改變點積為我們想要的空間,svm 就會對它忠實地進行分類。注意,核函式技巧實際上並不是 svm 的一部分。它可以與其他線性分類器共同使用,如邏輯回歸等。支援向量機只負責找到決策邊界。

以上就是支援向量機的基礎。總結來說就是:

相比於神經網路這樣更先進的演算法,支援向量機有兩大主要優勢:更高的速度、用更少的樣本(千以內)取得更好的表現。這使得該演算法非常適合文字分類問題。

關於數學推導 svm 我在下週可能會提及一些,因為確實有些複雜。。。我還沒有參悟透 qaq,自己挖的坑含著淚也得填上。。。

reference

猜你喜歡

機器學習實戰 | 邏輯回歸

機器學習實戰 | 樸素貝葉斯

機器學習實戰 | 決策樹

機器學習實戰 | k-鄰近演算法

一起來學習機器學習吧~

生信考研經歷分享

生信基礎知識100講

生信菜鳥團-專題學習目錄(5)

機器學習實戰

花了一段時間,總算把 機器學習實戰 粗讀了一遍,重點就在這個粗讀上。這本書的確不錯,機器學習的幾個經典演算法都涉及了,每個演算法都有1 2個實際例子進行說明,都有實實在在的 讓我想起了linus的 talk is cheap,show me the code 那句名言。但多年來養成的習慣,從來都是喜...

機器學習實戰 支援向量機

有些人認為svm是最好的現成的分類器,這裡說的現成值得是分類器不加修改即可直接使用。同時,這意味著在資料上應用基本形式的svm分類器就可以得到低錯誤率的結果。svm能夠對訓練集之外的資料點作出很好的分類決策。svm有很多實現,本章只關注其中最流行的一種實現,即序列最小優化 smo 演算法。優點 泛化...

金融反欺詐模型 專案實戰 機器學習

本文旨在通過乙個完整的實戰例子,演示從源資料清洗到特徵工程建立,再到模型訓練,以及模型驗證和評估的乙個機器學習的完整流程。由於初識機器學習,會比較多的困惑,希望通過借助這個實戰的例子,可以幫助大家對機器學習了乙個初步的認識。本文旨在通過乙個完整的實戰例子,演示從源資料清洗到特徵工程建立,再到模型訓練...