機器學(xué)習(xí)之支持向量機算法

0 評論 853 瀏覽 1 收藏 10 分鐘

怎么理解支持向量機SVM算法這一概念及其應(yīng)用場景?這篇文章里,作者做了相對詳細的分析和解讀,一起來看一下。

一、什么叫支持向量機算法

支持向量機SVM算法,英文全稱是“Support Vector Machine”。在機器學(xué)習(xí)中,SVM是監(jiān)督學(xué)習(xí)下的二分類算法,可用于分類和回歸任務(wù)。

二、基本原理

SVM的核心任務(wù)就是:構(gòu)建一個N-1維的分割超平面來實現(xiàn)對N維樣本數(shù)據(jù)放入劃分,認定的分隔超平面兩側(cè)的樣本點分屬兩個不同類別。我們還是從一個最為簡單的示例開始講起(二維平面):

情況1:請大家觀察一下,A、B、C三條直線哪一條才是正確的分類邊界呢?顯而易見,只有A“完整”的區(qū)分了兩種數(shù)據(jù)的決策邊界。

情況2:與情況1不同的是,上圖中,A、B、C三條線都完整的區(qū)分了邊界,那我們應(yīng)該如何選擇呢?既然能分豆的工具這么多,那我們理所當然應(yīng)該找一個最好的是不是?最佳答案應(yīng)該是B,因為B與邊數(shù)據(jù)的距離是最遠的,之所以選擇邊距最遠的線,是因為這樣它的容錯率更高,表現(xiàn)更穩(wěn)定,也就是說當我們再次放入更多的豆的時候,出錯的概率更小。

那么由此推導(dǎo)出,SVM的分類方法,首先考慮的是正確分類;其次考慮的優(yōu)化數(shù)據(jù)到邊界的距離。接下來更麻煩的情景出現(xiàn)了,請看下圖,這堆豆子要怎么分?如果這是在一個二維平面上,這些豆子應(yīng)該用一條什么線來劃分呢?

難道我們真的要在畫一條無限曲折的線去劃分嗎?如果再怎樣曲折還是無法區(qū)分又該怎么做呢?這就是線性不可分的情況,其實在現(xiàn)實生活中,大量的問題都線性不可分,而SVM正是處理這種線性不可分情況的好幫手。

處理這類問題的辦法就是,將二維平面轉(zhuǎn)化到一個三維空間,因為往往在低維空間下的非線性問題,轉(zhuǎn)化到高維空間中,就變成了線性問題。比如說上面的圖也許就變成了下方的情況。

如上圖所示,即三維樣本數(shù)據(jù)被二維平面劃分,在二維空間中的不可分問題也被轉(zhuǎn)換成了三維線性可分問題,可以被支持向量機處理。基于這個思想,SVM采用核函數(shù)來實現(xiàn)低維空間到高維空間的映射,從而在一定程度上解決了低維空間線性不可分的問題。

下面我們簡述一下關(guān)于核函數(shù)的定義,以利于進一步理解他的作用。

核函數(shù):任意兩個樣本點在擴維后的空間的內(nèi)積,如果等于這兩個樣本點在原來空間經(jīng)過一個函數(shù)后的輸出,那么這個函數(shù)就叫核函數(shù)。作用:有了這個核函數(shù),以后的高維內(nèi)積都可以轉(zhuǎn)化為低維的函數(shù)運算了,這里也就是只需要計算低維的內(nèi)積,然后再平方。明顯問題得到解決且復(fù)雜度極大降低??偠灾?,核函數(shù)它本質(zhì)上隱含了從低維到高維的映射,從而避免直接計算高維的內(nèi)積。

常用的核函數(shù)有如下一些:例如線性核函數(shù)、多項式核函數(shù)、徑向基核函數(shù)(RBF)、高斯核函數(shù)、拉普拉斯核函數(shù)、sigmoid核函數(shù)等等。三、支持向量機算法的應(yīng)用步驟

下面是SVM算法應(yīng)用過程中的關(guān)鍵步驟:

第一步:數(shù)據(jù)準備與預(yù)處理(通用)在應(yīng)用SVM前,首先需要收集并準備相關(guān)數(shù)據(jù)。數(shù)據(jù)預(yù)處理步驟可能包括數(shù)據(jù)清洗(去除噪聲和不相關(guān)的數(shù)據(jù)點),數(shù)據(jù)轉(zhuǎn)換(如特征縮放確保不同特征在相近的數(shù)值范圍),以及數(shù)據(jù)標準化處理。

第二步:選擇核函數(shù)根據(jù)數(shù)據(jù)集的特性選擇合適的核函數(shù),是SVM核心的步驟之一。如果數(shù)據(jù)集線性可分,可以選擇線性核;對于非線性數(shù)據(jù),可以選擇如徑向基函數(shù)(RBF)核或多項式核來增加數(shù)據(jù)維度并發(fā)掘復(fù)雜的數(shù)據(jù)關(guān)系。

第三步:參數(shù)優(yōu)化優(yōu)化SVM的參數(shù)(例如C參數(shù)和核參數(shù))對模型的性能有著直接的影響。C參數(shù)決定數(shù)據(jù)點違反間隔的程度的容忍性,而核參數(shù)(如RBF核的γ參數(shù))控制了數(shù)據(jù)映射到高維空間后的分布。

第四步:訓(xùn)練SVM模型使用選定的核函數(shù)和優(yōu)化后的參數(shù),利用訓(xùn)練數(shù)據(jù)來訓(xùn)練SVM模型。在這個階段,算法將學(xué)習(xí)劃分不同類別的最佳超平面,并確定支持向量。

第五步:模型評估(通用)利用測試集來評估SVM模型的表現(xiàn)。常見的評估指標包括準確率、召回率、F1分數(shù)等。評估結(jié)果可以幫助我們了解模型在未知數(shù)據(jù)上的泛化能力。第六步:模型部署與監(jiān)控(通用)

最后一步是將訓(xùn)練好的SVM模型部署到生產(chǎn)環(huán)境中,并實施持續(xù)監(jiān)控。在模型部署過程中,需要確保實時數(shù)據(jù)的格式與訓(xùn)練時一致,并對模型進行定期評估以適應(yīng)可能的數(shù)據(jù)或環(huán)境變化。

四、應(yīng)用場景

SVM不僅適用于線性問題,還適用于非線性問題,具有較好的分類性能和泛化能力,適用于多種實際問題的解決。

  • 文本分類:SVM可以將文本表示為特征向量,并通過訓(xùn)練一個SVM分類器來將文本分為不同的類別,如垃圾郵件分類、情感分析、文本主題分類等。
  • 圖像分類:通過提取圖像的特征向量,可以使用SVM來訓(xùn)練一個分類器,將圖像分為不同的類別,如人臉識別、物體識別、圖像檢索等。
  • 生物醫(yī)學(xué)領(lǐng)域:可以使用SVM來進行癌癥分類、蛋白質(zhì)結(jié)構(gòu)預(yù)測、基因表達數(shù)據(jù)分析等。
  • 金融領(lǐng)域:SVM可以用于金融領(lǐng)域的多個任務(wù),如信用評分、欺詐檢測、股票市場預(yù)測等。
  • 醫(yī)學(xué)圖像分析:可以使用SVM來進行病變檢測、疾病診斷、醫(yī)學(xué)圖像分割等。
  • 自然語言處理:可以使用SVM進行命名實體識別、句法分析、機器翻譯等任務(wù)。

五、優(yōu)缺點

優(yōu)點:

  • 效果很好,分類邊界清晰;
  • 在高維空間中特別有效;
  • 在空間維數(shù)大于樣本數(shù)的情況下很有效;
  • 它使用的是決策函數(shù)中的一個訓(xùn)練點子集(支持向量),所以占用內(nèi)存小,效率高。

缺點:

  • 如果數(shù)據(jù)量過大,或者訓(xùn)練時間過長,SVM會表現(xiàn)不佳;
  • 如果數(shù)據(jù)集內(nèi)有大量噪聲,SVM效果不好;
  • SVM不直接計算提供概率估計,所以我們要進行多次交叉驗證,代價過高。

參考:

本文由@厚謙 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。

題圖來自Unsplash,基于CC0協(xié)議。

該文觀點僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!