支持向量機(jī)


1. SVM簡介

支持向量機(jī)(support vector machines枪眉,SVM)是一種二分類模型捺檬,它的基本模型是定義在特征空間上的間隔最大的線性分類器,間隔最大使它有別于感知機(jī)瑰谜;SVM還包括核技巧欺冀,這使它成為實(shí)質(zhì)上的非線性分類器。SVM的學(xué)習(xí)策略就是間隔最大化萨脑,可形式化為一個(gè)求解凸二次規(guī)劃的問題隐轩,也等價(jià)于正則化的損失函數(shù)最小值問題。SVM的學(xué)習(xí)算法就是求解凸二次規(guī)劃的最優(yōu)算法渤早。

? ? 它在手寫識別數(shù)字和人臉識別中應(yīng)用廣泛职车,在文本和超文本的分類中舉足輕重,因?yàn)镾VM可以大量減少標(biāo)準(zhǔn)歸納和轉(zhuǎn)換設(shè)置中對標(biāo)記訓(xùn)練實(shí)例的需求鹊杖。同時(shí)悴灵,SVM也被用來執(zhí)行圖像的分類,并用于圖像分割系統(tǒng)骂蓖。實(shí)驗(yàn)結(jié)果表明积瞒,在僅僅三到四輪相關(guān)反饋之后,SVM就能實(shí)現(xiàn)比傳統(tǒng)的查詢細(xì)化方案高出一大截的搜索精度登下。除此之外茫孔,生物學(xué)和許多其他學(xué)科都是SVM的青睞者,SVM現(xiàn)在已經(jīng)廣泛用于蛋白質(zhì)分類被芳,現(xiàn)在化合物分類的業(yè)界平均水平可以達(dá)到90%以上的準(zhǔn)確率缰贝。在生物科學(xué)的尖端研究中,人們還使用支持向量機(jī)來識別用于模型預(yù)測的各種特征畔濒,以找出各種基因表現(xiàn)結(jié)果的影響因素剩晴。

2.SVM算法原理

SVM學(xué)習(xí)的基本想法是求解能夠正確劃分訓(xùn)練數(shù)據(jù)集并且?guī)缀伍g隔最大的分離超平面。如下圖所示侵状,w\bullet x+b=0即為分離超平面赞弥,對于線性可分的數(shù)據(jù)集來說毅整,這樣的超平面有無窮多個(gè)(即感知機(jī)),但是幾何間隔最大的分離超平面卻是唯一的绽左。

超平面與最近數(shù)據(jù)點(diǎn)之間的距離成為邊距毛嫉。可以將兩個(gè)類分開的最佳或最佳超平面是具有最大邊距的線妇菱。只有這些點(diǎn)與定義超平面和分類器的構(gòu)造有關(guān)。這些點(diǎn)稱為支持向量暴区。他們支持或定義超平面闯团。實(shí)際上,優(yōu)化算法用于找到使裕度最大化的系數(shù)的值仙粱。

SVM的三層理解:

3.支持向量機(jī)的分類

(1)線性可分支持向量機(jī)房交、硬間隔

(2)線性支持向量機(jī)、軟間隔

(3)非線性支持向量機(jī)伐割、Kernel SVM

支持向量機(jī)模型存在三寶:

(1)間隔:是指樣本點(diǎn)到超平面的距離候味。硬間隔是指對給定的樣本數(shù)據(jù)集中所以的樣本都能正確分類。對于線性不可分的樣本集隔心,無法滿足線性可分支持向量機(jī)的不等式約束白群,也就是不存在對所有樣本都能正確分類的超平面。這種情況可能是因?yàn)閱栴}本身是非線性的硬霍,也可能問題是線性可分的帜慢,但個(gè)別樣本點(diǎn)標(biāo)記錯(cuò)誤或存在誤差而導(dǎo)致樣本集線性不可分。

因此唯卖,我們可以允許對少量的樣本分類錯(cuò)誤粱玲,容忍特異點(diǎn)的存在,而對于去除特異點(diǎn)的樣本集是線性可分的拜轨,這時(shí)稱為軟間隔抽减。

(2)對偶

(3)核技巧

支持向量機(jī)和感知機(jī)在某些方面很相似,其相同點(diǎn)

(1)都是二分類模型

(2)都是通過一個(gè)分離超平民啊對特征進(jìn)行分類

不同點(diǎn):

(1)SVM是特殊的感知機(jī)

(2)感知機(jī)是用誤分類最小的策略橄碾,求得分離超平面卵沉,這時(shí)存在無窮個(gè)解,感知機(jī)利用間隔最大化求得最優(yōu)分離超平面堪嫂。如下圖所示偎箫。


圖一 感知機(jī)與支持向量機(jī)的區(qū)別

????圖中的藍(lán)色和黃色圓點(diǎn)分別表示正負(fù)樣本,對于這個(gè)二分類皆串,從圖中我們可知淹办,在最上面的黃線和最下面的綠線之間的線條都是可以把訓(xùn)練樣本集完全分開的,這就是感知機(jī)的原理恶复,通過這些分離超平面把訓(xùn)練集分開怜森,這樣的分離超平面存在很多條速挑,比如圖中的虛線,從視覺上中間那條實(shí)線應(yīng)該是眾多線條中最優(yōu)的一條副硅,感知機(jī)對于學(xué)習(xí)的分離超平面由于優(yōu)化算法姥宝、學(xué)習(xí)率等不同因素,會隨機(jī)地學(xué)習(xí)到這眾多分離超平面的一條恐疲,當(dāng)學(xué)習(xí)到的是靠近上下邊緣的分離超平面是腊满,對于一個(gè)未知樣本,當(dāng)這個(gè)樣本稍微浮動一下培己,模型就很可能對他進(jìn)行誤分類了碳蛋,因此魯棒性很低,而支持向量機(jī)的目標(biāo)是找到圖中中間那條最優(yōu)的分離超平面省咨。

4. 學(xué)習(xí)的對偶算法

為求解支持向量機(jī)的最優(yōu)化問題肃弟,我們將公式10作為原始問題,應(yīng)用拉格朗日對偶性零蓉,通過求解對偶問題得到原始問題的最優(yōu)解笤受,這就是支持向量機(jī)的對偶算法。在約束最優(yōu)化問題中敌蜂,常常利用拉格朗日對偶性將原始問題轉(zhuǎn)換為對偶問題箩兽,通過解對偶問題而得到原始問題的解(最優(yōu)解是反的,值是一樣的)紊册。這是因?yàn)椋?/p>

? ? 1)對偶問題的對偶是原問題

? ? 2)無論原始問題與約束條件是否是凸的比肄,對偶問題都是凹問題,加個(gè)負(fù)號就變成凸問題了囊陡,凸問題容易優(yōu)化芳绩。

? ? 3)對偶問題可以給出原始問題一個(gè)下界

? ? 4)當(dāng)滿足一定條件時(shí),原始問題與對偶問題的解是完全等價(jià)的

5. sklearn中支持向量機(jī)的應(yīng)用

LinearSVC()類的主要參數(shù):

(1)C: float, default=1.0, 懲罰系數(shù)撞反,必須大于0妥色,默認(rèn)值1.0。用于設(shè)置對錯(cuò)誤分類的懲罰強(qiáng)度遏片,對于設(shè)置對錯(cuò)誤分類的懲罰強(qiáng)度嘹害,對于完全線性可分的硬間隔問題不需要設(shè)置。

(2)fit_intercept: boolean, optional(default=True):是否計(jì)算截距吮便,默認(rèn)為True笔呀。如果數(shù)據(jù)均值為0,則可以選擇False不計(jì)算截距髓需。

(3)multi_class: string许师,”ovr“ or "crammer_singer"(default='ovr'):多類別分類策略開關(guān)。對于多元分類問題,選擇'ovr'將使用多類別策略(one-vs-set)直接對多個(gè)類別進(jìn)行分類(默認(rèn)方法)微渠;選擇"crammer_singer"將主次進(jìn)行二值分類搭幻。

(4)class_weight:dict or "balanced", default=None,特征變量的加權(quán)系數(shù)逞盆。用于為某個(gè)特征變量設(shè)置權(quán)重檀蹋,默認(rèn)所有特征變量的權(quán)重相同。

結(jié)論:1)線性核云芦,尤其是多項(xiàng)式核函數(shù)在高次項(xiàng)時(shí)計(jì)算非常緩慢俯逾。

? ? ? ? ? ?2)rbf和多項(xiàng)式核函數(shù)都不擅長處理量綱不統(tǒng)一的數(shù)據(jù)集

這兩個(gè)缺點(diǎn)都可以由數(shù)據(jù)無量綱化來解決。因此舅逸,SVM執(zhí)行之前纱昧,非常推薦先進(jìn)行數(shù)據(jù)的無量綱化!

svc.score(): 返回給定測試數(shù)據(jù)和標(biāo)簽的平均準(zhǔn)確度堡赔。

5.2 二分類SVC中樣本不均衡問題:重要參數(shù)class_weight

? ? 首先,分類模型天生會傾向于多數(shù)的類设联,讓多數(shù)類更容易被判斷正確善已,少數(shù)類被犧牲掉。因?yàn)閷τ谀P投岳肜瑯颖玖吭酱蟮臉?biāo)簽可以學(xué)習(xí)的信息越多换团,算法就會更加依賴于從多數(shù)類中學(xué)到的信息來進(jìn)行判斷。如果我們希望捕獲少數(shù)類宫蛆,模型就會失敗艘包。其次,模型評估指標(biāo)會失去意義耀盗。這種分類狀況下想虎,即便模型什么也不做,全把所有人都當(dāng)成不會犯罪的人叛拷,準(zhǔn)確率也能非常高舌厨,這使得模型評估指標(biāo)accuracy變得毫無意義,根本無法達(dá)到我們的“要識別出會犯罪的人”的建模目的忿薇。

? ? 所以現(xiàn)在裙椭,我們首先要讓算法意識到數(shù)據(jù)的標(biāo)簽是不均衡的,通過施加一些懲罰或者改變樣本本身署浩,來讓模型向著捕獲少數(shù)類的方向建模揉燃。然后,我們要改進(jìn)我們的模型評估指標(biāo)筋栋,使用更加針對于少數(shù)類的指標(biāo)來優(yōu)化模型炊汤。要解決第一個(gè)問題,我們在邏輯回歸中已經(jīng)介紹了一些基本方法,比如上采樣下采樣婿崭。但這些采樣方法會增加樣本的總數(shù)拨拓,對于支持向量機(jī)這個(gè)樣本總是對計(jì)算速度影響巨大的算法來說,我們完全不想輕易地增加樣本數(shù)量氓栈。況且渣磷,支持向量機(jī)中的決策僅僅受到?jīng)Q策邊界的影響,而決策邊界僅僅受到參數(shù)C和支持向量的影響授瘦,單純地增加樣本數(shù)量不僅會增加計(jì)算時(shí)間醋界,可能還會增加無數(shù)對決策邊界無影響的樣本點(diǎn)。因此在支持向量機(jī)中提完,我們要大力依賴我們調(diào)節(jié)樣本均衡的參數(shù):SVC類的class_weight和接口fit可以設(shè)定的sample_weight形纺。

5.3 SVC模型評估指標(biāo)

? ? 混淆矩陣是二分類問題的多維衡量指標(biāo)體系,在樣本不平衡時(shí)極其有用徒欣。在混淆矩陣中逐样,我們將少數(shù)類認(rèn)為是正例,多數(shù)類認(rèn)為是負(fù)例打肝。在決策樹脂新,隨機(jī)森林這些普通的分類算法里,即是說少數(shù)類是1粗梭,多數(shù)類是0争便。在SVM里,就是說少數(shù)類是1断医,多數(shù)類是-1滞乙。普通的混淆矩陣,一般使用{0,1}來表示鉴嗤≌镀簦混淆矩陣中,永遠(yuǎn)是真實(shí)值在前醉锅,預(yù)測值在后浇垦。

ROC曲線及相關(guān)問題

? ? 基于混淆矩陣,總共有六個(gè)指標(biāo):準(zhǔn)確率Accuracy荣挨,精確度Precision男韧,召回率Recall,精確度和召回度的平衡指標(biāo)F measure, 特異度Specificity默垄,以及假正率FPR此虑。

? ? 其中,假正率有一個(gè)非常重要的應(yīng)用:我們在追求較高的Recall的時(shí)候口锭,Precision會下降朦前,就是說隨著更多的少數(shù)類被捕捉出來介杆,會有更多的多數(shù)類被判斷錯(cuò)誤,但我們很好奇韭寸,隨著Recall的逐漸增加春哨,模型將多數(shù)類判斷錯(cuò)誤的能力如何變化呢?我們希望理解恩伺,我每判斷正確一個(gè)少數(shù)類赴背,就有多少個(gè)多數(shù)類會被判斷錯(cuò)誤。假正率正好可以幫助我們衡量這個(gè)變化晶渠。相對的凰荚,Precision無法判斷這些判斷錯(cuò)誤的多數(shù)類在全部多數(shù)類中究竟占多大的比例,所以無法在提升Recall的過程中也顧及到模型整體的Accuracy褒脯。因此便瑟,我們可以使用Recall和FPR之間的平衡,來替代Recall和Precision之間的平衡番川,讓我們衡量模型在盡量捕捉少數(shù)類的時(shí)候到涂,誤傷多數(shù)類的情況如何變化,這就是我們的ROC曲線衡量的平衡颁督。

? ? ROC曲線养盗,全稱The Receiver Operating Characteristic Curve。這是一條以下不同閾值下的假正率FPR為橫坐標(biāo)适篙,不同閾值下的召回率Recall為縱坐標(biāo)的曲線。

6. SVM的優(yōu)缺點(diǎn)

優(yōu)點(diǎn):

(1)有嚴(yán)格的數(shù)學(xué)理論支持箫爷,可解釋性強(qiáng)嚷节,不依靠統(tǒng)計(jì)方法,從而簡化了通常的分類和回歸問題

(2)解決小樣本下機(jī)器學(xué)習(xí)問題虎锚;

(3)能找出對任務(wù)至關(guān)重要的關(guān)鍵樣本(即:支持向量)

(4)采用核技巧之后硫痰,可以處理非線性分類/回歸任務(wù);可以解決高維問題窜护,即大型特征空間效斑;

(5)最終決策函數(shù)只由少數(shù)的支持向量所確定,計(jì)算的復(fù)雜性取決于支持向量的數(shù)目柱徙,而不是樣本空間的維數(shù)缓屠,這在某種意義上避免了”維數(shù)災(zāi)難“。

缺點(diǎn):

(1)訓(xùn)練時(shí)間長护侮。當(dāng)采用SMO算法時(shí)敌完,由于每次都需要挑選一對參數(shù),因此時(shí)間復(fù)雜度O(N^2)羊初,其中N為訓(xùn)練樣本的數(shù)量滨溉;

(2)當(dāng)采用核技巧時(shí),如果需要存儲核矩陣,則空間復(fù)雜度為O(N^2)晦攒。對非線性問題沒有通用解決方案闽撤,有時(shí)候很難找到一個(gè)合適的核函數(shù);

(3)對于核函數(shù)的高維映射解釋力不強(qiáng)脯颜,尤其是徑向基函數(shù)哟旗;

(4)模型預(yù)測時(shí),預(yù)測時(shí)間與支持向量的個(gè)數(shù)成正比伐脖。當(dāng)支持向量的數(shù)量較大時(shí)热幔,預(yù)測計(jì)算復(fù)雜度較高。

(5)對缺失數(shù)據(jù)敏感讼庇;

因此支持向量機(jī)目前只適合小批量樣本的任務(wù)绎巨,無法適應(yīng)百萬條甚至上億樣本的任務(wù)

7.適應(yīng)場景

? ? SVM主要用于分類問題蠕啄,主要的應(yīng)用場景有字符識別场勤、面部識別、行人檢測歼跟、文本分類等領(lǐng)域和媳。在機(jī)器學(xué)習(xí)領(lǐng)域,SVM是有監(jiān)督的學(xué)習(xí)模型哈街,通常用來進(jìn)行模式識別留瞳、分類(異常值檢測)以及回歸分析

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末骚秦,一起剝皮案震驚了整個(gè)濱河市她倘,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌作箍,老刑警劉巖硬梁,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胞得,居然都是意外死亡荧止,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進(jìn)店門阶剑,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跃巡,“玉大人,你說我怎么就攤上這事牧愁〈膳冢” “怎么了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵递宅,是天一觀的道長娘香。 經(jīng)常有香客問我苍狰,道長,這世上最難降的妖魔是什么烘绽? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任淋昭,我火速辦了婚禮,結(jié)果婚禮上安接,老公的妹妹穿的比我還像新娘翔忽。我一直安慰自己,他們只是感情好盏檐,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布歇式。 她就那樣靜靜地躺著,像睡著了一般胡野。 火紅的嫁衣襯著肌膚如雪材失。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天硫豆,我揣著相機(jī)與錄音龙巨,去河邊找鬼。 笑死熊响,一個(gè)胖子當(dāng)著我的面吹牛旨别,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播汗茄,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼秸弛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了洪碳?” 一聲冷哼從身側(cè)響起递览,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤定拟,失蹤者是張志新(化名)和其女友劉穎潘拨,沒想到半個(gè)月后谐檀,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡纯趋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了冷离。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吵冒。...
    茶點(diǎn)故事閱讀 37,997評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖西剥,靈堂內(nèi)的尸體忽然破棺而出痹栖,到底是詐尸還是另有隱情,我是刑警寧澤瞭空,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布揪阿,位于F島的核電站疗我,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏南捂。R本人自食惡果不足惜吴裤,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望溺健。 院中可真熱鬧麦牺,春花似錦、人聲如沸鞭缭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽岭辣。三九已至吱晒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間易结,已是汗流浹背枕荞。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留搞动,地道東北人躏精。 一個(gè)月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像鹦肿,于是被迫代替她去往敵國和親矗烛。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,722評論 2 345

推薦閱讀更多精彩內(nèi)容