機(jī)器學(xué)習(xí)之支持向量機(jī)算法
怎么理解支持向量機(jī)SVM算法這一概念及其應(yīng)用場景?這篇文章里,作者做了相對詳細(xì)的分析和解讀,一起來看一下。
一、什么叫支持向量機(jī)算法
支持向量機(jī)SVM算法,英文全稱是“Support Vector Machine”。在機(jī)器學(xué)習(xí)中,SVM是監(jiān)督學(xué)習(xí)下的二分類算法,可用于分類和回歸任務(wù)。
二、基本原理
SVM的核心任務(wù)就是:構(gòu)建一個N-1維的分割超平面來實(shí)現(xiàn)對N維樣本數(shù)據(jù)放入劃分,認(rèn)定的分隔超平面兩側(cè)的樣本點(diǎn)分屬兩個不同類別。我們還是從一個最為簡單的示例開始講起(二維平面):
情況1:請大家觀察一下,A、B、C三條直線哪一條才是正確的分類邊界呢?顯而易見,只有A“完整”的區(qū)分了兩種數(shù)據(jù)的決策邊界。
情況2:與情況1不同的是,上圖中,A、B、C三條線都完整的區(qū)分了邊界,那我們應(yīng)該如何選擇呢?既然能分豆的工具這么多,那我們理所當(dāng)然應(yīng)該找一個最好的是不是?最佳答案應(yīng)該是B,因?yàn)锽與邊數(shù)據(jù)的距離是最遠(yuǎn)的,之所以選擇邊距最遠(yuǎn)的線,是因?yàn)檫@樣它的容錯率更高,表現(xiàn)更穩(wěn)定,也就是說當(dāng)我們再次放入更多的豆的時候,出錯的概率更小。
那么由此推導(dǎo)出,SVM的分類方法,首先考慮的是正確分類;其次考慮的優(yōu)化數(shù)據(jù)到邊界的距離。接下來更麻煩的情景出現(xiàn)了,請看下圖,這堆豆子要怎么分?如果這是在一個二維平面上,這些豆子應(yīng)該用一條什么線來劃分呢?
難道我們真的要在畫一條無限曲折的線去劃分嗎?如果再怎樣曲折還是無法區(qū)分又該怎么做呢?這就是線性不可分的情況,其實(shí)在現(xiàn)實(shí)生活中,大量的問題都線性不可分,而SVM正是處理這種線性不可分情況的好幫手。
處理這類問題的辦法就是,將二維平面轉(zhuǎn)化到一個三維空間,因?yàn)橥诘途S空間下的非線性問題,轉(zhuǎn)化到高維空間中,就變成了線性問題。比如說上面的圖也許就變成了下方的情況。
如上圖所示,即三維樣本數(shù)據(jù)被二維平面劃分,在二維空間中的不可分問題也被轉(zhuǎn)換成了三維線性可分問題,可以被支持向量機(jī)處理。基于這個思想,SVM采用核函數(shù)來實(shí)現(xiàn)低維空間到高維空間的映射,從而在一定程度上解決了低維空間線性不可分的問題。
下面我們簡述一下關(guān)于核函數(shù)的定義,以利于進(jìn)一步理解他的作用。
核函數(shù):任意兩個樣本點(diǎn)在擴(kuò)維后的空間的內(nèi)積,如果等于這兩個樣本點(diǎn)在原來空間經(jīng)過一個函數(shù)后的輸出,那么這個函數(shù)就叫核函數(shù)。作用:有了這個核函數(shù),以后的高維內(nèi)積都可以轉(zhuǎn)化為低維的函數(shù)運(yùn)算了,這里也就是只需要計(jì)算低維的內(nèi)積,然后再平方。明顯問題得到解決且復(fù)雜度極大降低。總而言之,核函數(shù)它本質(zhì)上隱含了從低維到高維的映射,從而避免直接計(jì)算高維的內(nèi)積。
常用的核函數(shù)有如下一些:例如線性核函數(shù)、多項(xiàng)式核函數(shù)、徑向基核函數(shù)(RBF)、高斯核函數(shù)、拉普拉斯核函數(shù)、sigmoid核函數(shù)等等。三、支持向量機(jī)算法的應(yīng)用步驟
下面是SVM算法應(yīng)用過程中的關(guān)鍵步驟:
第一步:數(shù)據(jù)準(zhǔn)備與預(yù)處理(通用)在應(yīng)用SVM前,首先需要收集并準(zhǔn)備相關(guān)數(shù)據(jù)。數(shù)據(jù)預(yù)處理步驟可能包括數(shù)據(jù)清洗(去除噪聲和不相關(guān)的數(shù)據(jù)點(diǎn)),數(shù)據(jù)轉(zhuǎn)換(如特征縮放確保不同特征在相近的數(shù)值范圍),以及數(shù)據(jù)標(biāo)準(zhǔn)化處理。
第二步:選擇核函數(shù)根據(jù)數(shù)據(jù)集的特性選擇合適的核函數(shù),是SVM核心的步驟之一。如果數(shù)據(jù)集線性可分,可以選擇線性核;對于非線性數(shù)據(jù),可以選擇如徑向基函數(shù)(RBF)核或多項(xiàng)式核來增加數(shù)據(jù)維度并發(fā)掘復(fù)雜的數(shù)據(jù)關(guān)系。
第三步:參數(shù)優(yōu)化優(yōu)化SVM的參數(shù)(例如C參數(shù)和核參數(shù))對模型的性能有著直接的影響。C參數(shù)決定數(shù)據(jù)點(diǎn)違反間隔的程度的容忍性,而核參數(shù)(如RBF核的γ參數(shù))控制了數(shù)據(jù)映射到高維空間后的分布。
第四步:訓(xùn)練SVM模型使用選定的核函數(shù)和優(yōu)化后的參數(shù),利用訓(xùn)練數(shù)據(jù)來訓(xùn)練SVM模型。在這個階段,算法將學(xué)習(xí)劃分不同類別的最佳超平面,并確定支持向量。
第五步:模型評估(通用)利用測試集來評估SVM模型的表現(xiàn)。常見的評估指標(biāo)包括準(zhǔn)確率、召回率、F1分?jǐn)?shù)等。評估結(jié)果可以幫助我們了解模型在未知數(shù)據(jù)上的泛化能力。第六步:模型部署與監(jiān)控(通用)
最后一步是將訓(xùn)練好的SVM模型部署到生產(chǎn)環(huán)境中,并實(shí)施持續(xù)監(jiān)控。在模型部署過程中,需要確保實(shí)時數(shù)據(jù)的格式與訓(xùn)練時一致,并對模型進(jìn)行定期評估以適應(yīng)可能的數(shù)據(jù)或環(huán)境變化。
四、應(yīng)用場景
SVM不僅適用于線性問題,還適用于非線性問題,具有較好的分類性能和泛化能力,適用于多種實(shí)際問題的解決。
- 文本分類:SVM可以將文本表示為特征向量,并通過訓(xùn)練一個SVM分類器來將文本分為不同的類別,如垃圾郵件分類、情感分析、文本主題分類等。
- 圖像分類:通過提取圖像的特征向量,可以使用SVM來訓(xùn)練一個分類器,將圖像分為不同的類別,如人臉識別、物體識別、圖像檢索等。
- 生物醫(yī)學(xué)領(lǐng)域:可以使用SVM來進(jìn)行癌癥分類、蛋白質(zhì)結(jié)構(gòu)預(yù)測、基因表達(dá)數(shù)據(jù)分析等。
- 金融領(lǐng)域:SVM可以用于金融領(lǐng)域的多個任務(wù),如信用評分、欺詐檢測、股票市場預(yù)測等。
- 醫(yī)學(xué)圖像分析:可以使用SVM來進(jìn)行病變檢測、疾病診斷、醫(yī)學(xué)圖像分割等。
- 自然語言處理:可以使用SVM進(jìn)行命名實(shí)體識別、句法分析、機(jī)器翻譯等任務(wù)。
五、優(yōu)缺點(diǎn)
優(yōu)點(diǎn):
- 效果很好,分類邊界清晰;
- 在高維空間中特別有效;
- 在空間維數(shù)大于樣本數(shù)的情況下很有效;
- 它使用的是決策函數(shù)中的一個訓(xùn)練點(diǎn)子集(支持向量),所以占用內(nèi)存小,效率高。
缺點(diǎn):
- 如果數(shù)據(jù)量過大,或者訓(xùn)練時間過長,SVM會表現(xiàn)不佳;
- 如果數(shù)據(jù)集內(nèi)有大量噪聲,SVM效果不好;
- SVM不直接計(jì)算提供概率估計(jì),所以我們要進(jìn)行多次交叉驗(yàn)證,代價過高。
參考:
- AI產(chǎn)品經(jīng)理必懂算法:支持向量機(jī)SVM-人人都是產(chǎn)品經(jīng)理-燕然未勒
- 解碼分類的超級英雄——支持向量機(jī)(SVM)-人人都是產(chǎn)品經(jīng)理-柳星聊產(chǎn)品
本文由@厚謙 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)作者許可,禁止轉(zhuǎn)載。
題圖來自Unsplash,基于CC0協(xié)議。
該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺僅提供信息存儲空間服務(wù)。
- 目前還沒評論,等你發(fā)揮!