算法淺談之支持向量機(jī)

一 起因
實(shí)際上,除了隨機(jī)森林外,支持向量機(jī)也是一個(gè)非常普遍的算法,該算法具有很多優(yōu)點(diǎn),比如適用性廣(二分類或者多分類)、有效性高(高維空間、非線性問(wèn)題和小樣本學(xué)習(xí)具有很好的適用性)、很強(qiáng)的魯棒性(對(duì)訓(xùn)練數(shù)據(jù)中的噪聲和異常值具有較強(qiáng)的魯棒性,減少過(guò)擬合的風(fēng)險(xiǎn),注意,只是減少)、可解釋強(qiáng)等(可視化強(qiáng),這點(diǎn)是許多神經(jīng)學(xué)習(xí)算法所不具備的)諸多優(yōu)點(diǎn)
二?正文
2.1 算法解析
首先,支持向量機(jī)實(shí)際上是對(duì)兩組或多組數(shù)據(jù),通過(guò)建立可分離超平面的方法實(shí)現(xiàn)線性可分的。其中的支持向量就是圖中的兩個(gè)點(diǎn)(距離超平面最近的這幾個(gè)訓(xùn)練樣本點(diǎn)),而我們需要做的就是這個(gè)max Dist能夠達(dá)到最大。實(shí)際上,那三條直線的角度也是不固定的,算法會(huì)通過(guò)對(duì)角度進(jìn)行旋轉(zhuǎn),并計(jì)算max Dist,不斷的微調(diào)模型,從而達(dá)到最優(yōu)。由圖中可知,決定模型好壞主要因素就是支持向量的分布,因而異常值和噪音對(duì)于模型的影響其實(shí)不是很大。

下圖是以鳶尾花數(shù)據(jù)集特征集兩個(gè)特征的SVM分類結(jié)果可視化過(guò)程??梢钥闯?,迭代10次之后,兩組數(shù)據(jù)已經(jīng)可以被線性可分了。
其實(shí),這些都是一種非常理想的狀態(tài),但是讀者也知道,真實(shí)世界中其實(shí)沒(méi)有那么多線性可分的事件,我們常常需要面對(duì)的是多維的,且低維空間不可分的數(shù)據(jù),為下圖,那么,我們就需要借助如核函數(shù)等一類的函數(shù)將這些數(shù)據(jù)轉(zhuǎn)換到高維空間進(jìn)行分類,從而將線性不可分的數(shù)據(jù)變?yōu)榫€性可分。
但是,這常常會(huì)帶來(lái)維數(shù)爆炸的計(jì)算困境,因此,數(shù)學(xué)家開(kāi)發(fā)了一些高級(jí)(也就是非專業(yè)人士眼中的視若天書的數(shù)據(jù)公式,筆者也懂的不多)的工具將這類計(jì)算變的更為容易。但是,實(shí)質(zhì)都是從不同角度實(shí)現(xiàn)兩組數(shù)據(jù)的線性可分。
2.2 算法缺點(diǎn)
數(shù)據(jù)量大:SVM在大數(shù)據(jù)量情況下的訓(xùn)練時(shí)間較長(zhǎng),計(jì)算成本高,這個(gè)嘛,我到覺(jué)得不是啥大問(wèn)題。應(yīng)該如果數(shù)據(jù)真的異常龐大,那么基本上都會(huì)用到深度學(xué)習(xí)吧,畢竟現(xiàn)在數(shù)據(jù)越大,深度學(xué)習(xí)提升的越好。

參數(shù)調(diào)節(jié)難度大:SVM需要調(diào)節(jié)的參數(shù)較多,例如核函數(shù)類型、核函數(shù)參數(shù)和懲罰參數(shù)等,需要專業(yè)知識(shí)和經(jīng)驗(yàn)支持,也是計(jì)算機(jī)科學(xué)家和數(shù)學(xué)家擅長(zhǎng)做的事情了,而不是半路出家的生信工程師所熟悉的。
對(duì)缺失數(shù)據(jù)敏感:SVM對(duì)于數(shù)據(jù)的缺失和不完整性較為敏感,需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理和填充,這一部分則涉及到缺失值的填充。
只能處理二分類問(wèn)題:SVM本質(zhì)上是一個(gè)二分類算法,對(duì)于多分類問(wèn)題需要進(jìn)行額外的處理,例如使用多個(gè)SVM組成分類器,那么算法的時(shí)間則是線性增加,如果分類太多,那么很有可能是指數(shù)性增加。
三?慣例小結(jié)
簡(jiǎn)單來(lái)說(shuō),支持向量就是通過(guò)算法尋找一條直線,能夠使得二分類間的間距最大。而針對(duì)線性不可分的數(shù)據(jù),我們通過(guò)高維計(jì)算,實(shí)現(xiàn)線性可分。雖然,這其中涉及到許多數(shù)據(jù)公式,但是,對(duì)于一個(gè)一般的使用者而言,或許只需要知道其應(yīng)用的原理以及不可用的情況就可以實(shí)現(xiàn)算法為我所用的目的了。
當(dāng)然了,要感謝那些數(shù)學(xué)家和計(jì)算機(jī)科學(xué)家,沒(méi)有他們?cè)谟?jì)算角度的孜孜不倦,就沒(méi)有我們?cè)趹?yīng)用角度的踏步前進(jìn)。
四 公眾號(hào)其他資源(方便讀者使用)
本公眾號(hào)開(kāi)發(fā)的相關(guān)軟件,Multi-omics Hammer軟件和Multi-omics Visual軟件歡迎大家使用。
Multi-omics Hammer軟件下載地址:
https://github.com/wangjun258/Multi-omics-Hammer
Multi-omics Visual軟件下載地址:https://github.com/wangjun258/Multi_omics_Visual/releases/tag/Multi_omics_Visual_v1.03
PS:因?yàn)楸拒浖怯胮ython腳本撰寫,調(diào)用了部分依賴包,用戶首次使用需要安裝python以及對(duì)應(yīng)的包,安裝之后便可永久使用。
下面是本號(hào)在其他平臺(tái)的賬戶,也歡迎大家關(guān)注并多提意見(jiàn)。
簡(jiǎn)書:WJ的生信小院
公眾號(hào):生信小院
博客園:生信小院
最后,也歡迎各位大佬能夠在本平臺(tái)上:1傳播和講解自己發(fā)表的論文;2:發(fā)表對(duì)某一科研領(lǐng)域的看法;3:想要達(dá)成的合作或者相應(yīng)的招聘信息;4:展示自己以尋找博后工作或者博士就讀的機(jī)會(huì);5:博導(dǎo)提供博后工作或者博士攻讀機(jī)會(huì),都可以后臺(tái)給筆者留言。希望本平臺(tái)在進(jìn)行生信知識(shí)分享的同時(shí),能夠成為生信分析者的交流平臺(tái),能夠?qū)崿F(xiàn)相應(yīng)的利益互補(bǔ)和雙贏(不一定能實(shí)現(xiàn),但是夢(mèng)想總得是有的吧)。?
五 封面圖?



