sklearn學(xué)習(xí)筆記——支持向量機(jī)SVM

Support Vector Machines

 scikit-learn中SVM的算法庫分為兩類棋凳,一類是分類的算法庫邪驮,包括SVC笙隙,?NuSVC,和LinearSVC 3個(gè)類隔心。另一類是回歸算法庫白群,包括SVR,?NuSVR硬霍,和LinearSVR 3個(gè)類帜慢。相關(guān)的類都包裹在sklearn.svm模塊之中。

 我們使用這些類的時(shí)候,如果有經(jīng)驗(yàn)知道數(shù)據(jù)是線性可以擬合的粱玲,那么使用LinearSVC去分類 或者LinearSVR去回歸躬柬,它們不需要我們?nèi)ヂ恼{(diào)參去選擇各種核函數(shù)以及對(duì)應(yīng)參數(shù), 速度也快抽减。如果我們對(duì)數(shù)據(jù)分布沒有什么經(jīng)驗(yàn)允青,一般使用SVC去分類或者SVR去回歸,這就需要我們選擇核函數(shù)以及對(duì)核函數(shù)調(diào)參了卵沉。

    什么特殊場(chǎng)景需要使用NuSVC分類 和 NuSVR 回歸呢颠锉?如果我們對(duì)訓(xùn)練集訓(xùn)練的錯(cuò)誤率或者說支持向量的百分比有要求的時(shí)候,可以選擇NuSVC分類 和 NuSVR?史汗。它們有一個(gè)參數(shù)來控制這個(gè)百分比琼掠。

nu代表訓(xùn)練集訓(xùn)練的錯(cuò)誤率的上限,或者說支持向量的百分比下限停撞,取值范圍為(0,1],默認(rèn)是0.5.它和懲罰系數(shù)C類似瓷蛙,都可以控制懲罰的力度。

 一般情況下怜森,對(duì)非線性數(shù)據(jù)使用默認(rèn)的高斯核函數(shù)會(huì)有比較好的效果速挑,如果你不是SVM調(diào)參高手的話,建議使用高斯核來做數(shù)據(jù)分析副硅。

如果我們?cè)趉ernel參數(shù)使用了多項(xiàng)式核函數(shù) 'poly'姥宝,高斯核函數(shù)‘rbf’, 或者sigmoid核函數(shù),那么我們就需要對(duì)這個(gè)參數(shù)進(jìn)行調(diào)參恐疲。

樣本權(quán)重class_weight:

指定樣本各類別的的權(quán)重腊满,主要是為了防止訓(xùn)練集某些類別的樣本過多,導(dǎo)致訓(xùn)練的決策過于偏向這些類別培己。這里可以自己指定各個(gè)樣本的權(quán)重碳蛋,或者用“balanced”,如果使用“balanced”省咨,則算法會(huì)自己計(jì)算權(quán)重肃弟,樣本量少的類別所對(duì)應(yīng)的樣本權(quán)重會(huì)高。當(dāng)然零蓉,如果你的樣本類別分布沒有明顯的偏倚笤受,則可以不管這個(gè)參數(shù),選擇默認(rèn)的"None"

首先敌蜂,常用的核函數(shù)有:線性核函數(shù)箩兽、多項(xiàng)式核函數(shù)、(高斯)RBF徑向基核函數(shù)章喉。

在 SVM 中汗贫,選擇線性核函數(shù)和徑向基核函數(shù)時(shí)身坐,需要對(duì)數(shù)據(jù)進(jìn)行歸一化處理。

一般性建議落包,高維數(shù)據(jù)(數(shù)據(jù)維度大部蛇,是或者可以視為線性可分)的情況下,選擇線性核函數(shù)咐蝇,不行換特征搪花,再不行換高斯核。

維度少的時(shí)候嘹害,如果可以的話提取特征使用線性核函數(shù),不行再換高斯核函數(shù)吮便,因?yàn)榫€性核函數(shù)最簡(jiǎn)單最快笔呀,高斯核復(fù)雜而慢,但是除了速度之外的性能一般都可以達(dá)到或優(yōu)于線性核的效果髓需。多項(xiàng)式核的參數(shù)比高斯核的多许师,參數(shù)越多模型越復(fù)雜;高斯核的輸出值域在 0-1之間僚匆,計(jì)算方便微渠;多項(xiàng)式核的輸出值域在 0-inf 在某些情況下有更好的表現(xiàn)。

###

所謂的核技巧咧擂,就是使用一個(gè)變換將原空間的數(shù)據(jù)映射到新空間逞盆,在新空間里使用線性方法求解。


###

基本思想介紹

這里有一個(gè)有趣的問題:上面的兩條線都分開了紅色聚類和綠色聚類松申。是否有很好的理由選擇一條云芦,不選擇另一條呢?

別忘了贸桶,分類器的價(jià)值不在于它多么擅長(zhǎng)分離訓(xùn)練數(shù)據(jù)舅逸。我們最終想要用它分類未見數(shù)據(jù)點(diǎn)(稱為?測(cè)試數(shù)據(jù))。因此皇筛,我們想要選擇一條捕捉了訓(xùn)練集中的?通用模式(general pattern)的線琉历,這樣的線在測(cè)試集上表現(xiàn)出色的幾率很大。

上面的第一條線看起來有點(diǎn)“歪斜”水醋。下半部分看起來太接近紅聚類旗笔,而上半部分則過于接近綠聚類。是的离例,它完美地分割了訓(xùn)練數(shù)據(jù)换团,但是如果它看到略微遠(yuǎn)離其聚類的測(cè)試數(shù)據(jù)點(diǎn),它很有可能會(huì)弄錯(cuò)標(biāo)簽宫蛆。

第二條線沒有這個(gè)問題艘包。第二條線在正確分割訓(xùn)練數(shù)據(jù)的前提下的猛,盡可能地同時(shí)遠(yuǎn)離兩個(gè)聚類。保持在兩個(gè)聚類的正中間想虎,讓第二條線的“風(fēng)險(xiǎn)”更小卦尊,為每個(gè)分類的數(shù)據(jù)分布留出了一些搖動(dòng)的空間,因而能在測(cè)試集上取得更好的概括性舌厨。

SVM試圖找到第二條線岂却。上面我們通過可視化方法挑選了更好的分類器,但我們需要更準(zhǔn)確一點(diǎn)地定義其中的理念裙椭,以便在一般情形下加以應(yīng)用躏哩。下面是一個(gè)簡(jiǎn)化版本的SVM:

1、找到正確分類訓(xùn)練數(shù)據(jù)的一組直線揉燃。

2扫尺、在找到的所有直線中,選擇那條離最接近的數(shù)據(jù)點(diǎn)距離最遠(yuǎn)的直線炊汤。

支持向量是怎么計(jì)算的

距離最接近的數(shù)據(jù)點(diǎn)稱為?支持向量(support vector)正驻。

支持向量定義的沿著分隔線的區(qū)域稱為?間隔(margin)?。

盡管上圖顯示的是直線和二維數(shù)據(jù)抢腐,SVM實(shí)際上適用于任何維度姑曙;在不同維度下,SVM尋找類似二維直線的東西迈倍。

SVM允許我們通過參數(shù) C 指定愿意接受多少誤差伤靠。

由于現(xiàn)實(shí)世界的數(shù)據(jù)幾乎從來都不是整潔的,因此決定較優(yōu)的C值很重要授瘦。我們通常使用?交叉驗(yàn)證(cross-validation)之類的技術(shù)選定較優(yōu)的C值醋界。

核函數(shù)

注意,關(guān)鍵的地方來了提完!我們已經(jīng)有了一項(xiàng)非常擅長(zhǎng)尋找超平面的技術(shù)形纺,但是我們的數(shù)據(jù)卻是非線性可分的。所以我們?cè)撛趺崔k徒欣??將數(shù)據(jù)投影到一個(gè)線性可分的空間逐样,然后在那個(gè)空間尋找超平面!


2. 所以我首先投影數(shù)據(jù)接著運(yùn)行SVM打肝?

否脂新。為了讓上面的例子易于理解,我首先投影了數(shù)據(jù)粗梭。其實(shí)你只需讓SVM為你投影數(shù)據(jù)争便。這帶來了一些優(yōu)勢(shì),包括SVM將使用一種稱為?核(kernels)的東西進(jìn)行投影断医,這相當(dāng)迅速(我們很快將講解原因)滞乙。

另外奏纪,還記得我在上一點(diǎn)提過投影至無窮維么?那該如何表示斩启、存儲(chǔ)無窮維呢序调?結(jié)果SVM在這一點(diǎn)上非常聰明,同樣兔簇,這和核有關(guān)发绢。

這是讓SVM奏效的秘密武器。這里我們需要一點(diǎn)數(shù)學(xué)垄琐。

讓我們回顧下之前的內(nèi)容:

SVM在線性可分的數(shù)據(jù)上效果極為出色边酒。使用正確的C值,SVM在基本線性可分的數(shù)據(jù)上效果相當(dāng)出色狸窘。線性不可分的數(shù)據(jù)可以投影至完美線性可分或基本線性可分的空間甚纲,從而將問題轉(zhuǎn)化為1或2.

看起來讓SVM得到普遍應(yīng)用的關(guān)鍵是投影到高維。這正是核的用武之地朦前。

SVM的目標(biāo)是在正確分類的前提下,最大化間隔寬度

你可以不用在意以上公式的細(xì)節(jié)鹃操,只需注意一點(diǎn)韭寸,?以上計(jì)算都是基于向量的內(nèi)積。也就是說荆隘,無論是超平面的選取恩伺,還是確定超平面后分類測(cè)試數(shù)據(jù)點(diǎn),都只需要計(jì)算向量的內(nèi)積椰拒。

而?核函數(shù)(kernel function)晶渠,簡(jiǎn)稱?核(kernel)?正是算內(nèi)積的!核函數(shù)接受原始空間中兩個(gè)數(shù)據(jù)點(diǎn)作為輸入燃观,可以?直接給出投影空間中的點(diǎn)積褒脯。

看來用核函數(shù)計(jì)算所需內(nèi)積要快得多。大型數(shù)據(jù)集上缆毁,核函數(shù)節(jié)省的算力將飛速累積番川。這是核函數(shù)的巨大優(yōu)勢(shì)

大多數(shù)SVM庫內(nèi)置了流行的核函數(shù)脊框,比如?多項(xiàng)式(Polynomial)颁督、?徑向基函數(shù)(Radial Basis Function,RBF)?浇雹、?Sigmoid?沉御。當(dāng)我們不進(jìn)行投影時(shí)(比如本文的第一個(gè)例子),我們直接在原始空間計(jì)算點(diǎn)積——我們把這叫做使用?線性核(linear kernel)?昭灵。

我們通常并不定義數(shù)據(jù)的投影吠裆。相反伐谈,我們從現(xiàn)有的核中選取一個(gè),加以微調(diào)硫痰,以找到最匹配數(shù)據(jù)的核函數(shù)衩婚。我們當(dāng)然可以定義自己的核,甚至自行投影效斑。但許多情形下不必如此非春。至少,我們從嘗試現(xiàn)有核函數(shù)開始缓屠。如果存在我們想要的投影的核奇昙,我們將使用它,因?yàn)楹私?jīng)车型辏快很多储耐。RBF核可以投影數(shù)據(jù)點(diǎn)至無窮維。

事實(shí)上滨溉,如果你需要?快速了解不同核什湘、C值等對(duì)尋找分割邊界的影響,你可以嘗試libSVM主頁上的“圖形界面”晦攒。標(biāo)記數(shù)據(jù)點(diǎn)分類闽撤,選擇SVM參數(shù),然后點(diǎn)擊運(yùn)行(Run)脯颜!這個(gè)可視化工具的魅力無可阻擋


參考文獻(xiàn)

【1】https://www.cnblogs.com/pinard/p/6117515.html? ??scikit-learn 支持向量機(jī)算法庫使用小結(jié)

【2】https://baijiahao.baidu.com/s?id=1607469282626953830&wfr=spider&for=pc? ??SVM教程:支持向量機(jī)的直觀理解

【3】https://blog.csdn.net/qq_35992440/article/details/80987664? ??SVM支持向量機(jī)入門及數(shù)學(xué)原理

【4】https://blog.csdn.net/MachineRandy/article/details/80358931? ? 機(jī)器學(xué)習(xí)中的核技巧

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末哟旗,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子栋操,更是在濱河造成了極大的恐慌闸餐,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,386評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矾芙,死亡現(xiàn)場(chǎng)離奇詭異舍沙,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)剔宪,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,142評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門场勤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人歼跟,你說我怎么就攤上這事和媳。” “怎么了哈街?”我有些...
    開封第一講書人閱讀 164,704評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵留瞳,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我骚秦,道長(zhǎng)她倘,這世上最難降的妖魔是什么璧微? 我笑而不...
    開封第一講書人閱讀 58,702評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮硬梁,結(jié)果婚禮上前硫,老公的妹妹穿的比我還像新娘。我一直安慰自己荧止,他們只是感情好屹电,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,716評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著跃巡,像睡著了一般危号。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上素邪,一...
    開封第一講書人閱讀 51,573評(píng)論 1 305
  • 那天外莲,我揣著相機(jī)與錄音,去河邊找鬼兔朦。 笑死偷线,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的沽甥。 我是一名探鬼主播淋昭,決...
    沈念sama閱讀 40,314評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼安接!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起英融,我...
    開封第一講書人閱讀 39,230評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤盏檐,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后驶悟,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胡野,經(jīng)...
    沈念sama閱讀 45,680評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,873評(píng)論 3 336
  • 正文 我和宋清朗相戀三年痕鳍,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了硫豆。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,991評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡笼呆,死狀恐怖熊响,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情诗赌,我是刑警寧澤汗茄,帶...
    沈念sama閱讀 35,706評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站铭若,受9級(jí)特大地震影響洪碳,放射性物質(zhì)發(fā)生泄漏递览。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,329評(píng)論 3 330
  • 文/蒙蒙 一瞳腌、第九天 我趴在偏房一處隱蔽的房頂上張望绞铃。 院中可真熱鬧,春花似錦嫂侍、人聲如沸儿捧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,910評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽纯命。三九已至,卻和暖如春痹栖,著一層夾襖步出監(jiān)牢的瞬間亿汞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,038評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工揪阿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留疗我,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,158評(píng)論 3 370
  • 正文 我出身青樓南捂,卻偏偏與公主長(zhǎng)得像吴裤,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子溺健,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,941評(píng)論 2 355

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