數(shù)據(jù)挖掘十大經(jīng)典算法之支持向量機(jī)(SVM)

支持向量機(jī)(SVM)

它是一種監(jiān)督式學(xué)習(xí)的方法扇单,廣泛應(yīng)用于統(tǒng)計(jì)分類和回歸分析中跨算。

一右钾、主要思想

1. 它是針對線性可分情況進(jìn)行分析,對于線性不可分的情況复旬,通過使用非線性映射算法將低維輸入空間線性不可分的樣本轉(zhuǎn)化為高維特征空間使其線性可分垦缅,從而使得高維特征空間采用線性算法對樣本的非線性特征進(jìn)行線性分析成為可能;

2.?它基于結(jié)構(gòu)風(fēng)險最小化理論之上在特征空間中建構(gòu)最優(yōu)分割超平面驹碍,使得學(xué)習(xí)器得到全局最優(yōu)化,并且在整個樣本空間的期望風(fēng)險以某個概率滿足一定上界壁涎。

概括:支持向量機(jī)將向量映射到一個更高維的空間里,在這個空間里建立有一個最大間隔超平面志秃。在分開數(shù)據(jù)的超平面的兩邊建有兩個互相平行的超平面怔球。分隔超平面使兩個平行超平面的距離最大化。假定平行超平面間的距離或差距越大浮还,分類器的總誤差越小竟坛。

有很多個分類器(超平面)可以把數(shù)據(jù)分開,但是只有一個能夠達(dá)到最大分割碑定。?我們通常希望分類的過程是一個機(jī)器學(xué)習(xí)的過程。這些數(shù)據(jù)點(diǎn)并不需要是中的點(diǎn)又官,而可以是任意(統(tǒng)計(jì)學(xué)符號)中或者 ?(計(jì)算機(jī)科學(xué)符號) 的點(diǎn)延刘。我們希望能夠把這些點(diǎn)通過一個n-1維的超平面分開,通常這個被稱為線性分類器六敬。有很多分類器都符合這個要求碘赖,但是我們還希望找到分類最佳的平面,即使得屬于兩個不同類的數(shù)據(jù)點(diǎn)間隔最大的那個面外构,該面亦稱為最大間隔超平面普泡,會更有魯棒性。如果我們能夠找到這個面审编,那么這個分類器就稱為最大間隔分類器撼班。

圖解

二、目標(biāo)函數(shù):

SVM是要使到超平面最近的樣本點(diǎn)的“距離”最大垒酬。

使margin最大化砰嘁,margin為

之后再進(jìn)行化簡轉(zhuǎn)化...

具體推導(dǎo)見:https://zhuanlan.zhihu.com/p/77750026?utm_source=wechat_session

線性不可分時:

將低維空間映射到高維空間件炉,使其線性可分。例如

線性不可分
映射到高維空間后可分

而此時矮湘,會造成計(jì)算量太大斟冕,也容易過擬合,有學(xué)者已經(jīng)解決了這個問題缅阳。使用核函數(shù)k(x,y)的計(jì)算結(jié)果與高維空間的內(nèi)積計(jì)算相同磕蛇,可以代替。

常用核函數(shù)有:線性核函數(shù)十办、多項(xiàng)式核函數(shù)和高斯核函數(shù)秀撇。

三、優(yōu)缺點(diǎn)

1. 優(yōu)點(diǎn)

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

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

采用核函數(shù)技巧之后,可以處理非線性分類/回歸任務(wù)适肠;

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

2. 缺點(diǎn)

訓(xùn)練時間長。

當(dāng)采用核技巧時逛揩,如果需要存儲核矩陣柠傍,則空間復(fù)雜度為O(N^2 )

模型預(yù)測時辩稽,預(yù)測時間與支持向量的個數(shù)成正比惧笛。當(dāng)支持向量的數(shù)量較大時,預(yù)測計(jì)算復(fù)雜度較高逞泄。

因此支持向量機(jī)目前只適合小批量樣本的任務(wù)患整,無法適應(yīng)百萬甚至上億樣本的任務(wù)。但是有的說適用于大量數(shù)據(jù)喷众,筆者還未弄明白各谚。

四、SVC方法

sklearn.svm.SVC(C=1.0,kernel='rbf',?degree=3,?gamma='auto',coef0=0.0,shrinking=True,probability=False,tol=0.001,cache_size=200,?class_weight=None,verbose=False,max_iter=-1,decision_function_shape=None,random_state=None)

參數(shù)說明:

l ?C:C-SVC的懲罰參數(shù)C?默認(rèn)值是1.0

C越大到千,相當(dāng)于懲罰松弛變量昌渤,希望松弛變量接近0,即對誤分類的懲罰增大憔四,趨向于對訓(xùn)練集全分對的情況愈涩,這樣對訓(xùn)練集測試時準(zhǔn)確率很高望抽,但泛化能力弱。C值小履婉,對誤分類的懲罰減小煤篙,允許容錯,將他們當(dāng)成噪聲點(diǎn)毁腿,泛化能力較強(qiáng)辑奈。

l ?kernel :核函數(shù),默認(rèn)是rbf已烤,可以是‘linear’, ‘poly’, ‘rbf’, ‘sigmoid’, ‘precomputed’

  0 – 線性:u’v

   1 – 多項(xiàng)式:(gamma*u’*v + coef0)^degree

  2 – RBF函數(shù):exp(-gamma|u-v|^2)

  3 –sigmoid:tanh(gamma*u’*v + coef0)

l ?degree :多項(xiàng)式poly函數(shù)的維度鸠窗,默認(rèn)是3,選擇其他核函數(shù)時會被忽略胯究。

l ?gamma : ‘rbf’,‘poly’ 和‘sigmoid’的核函數(shù)參數(shù)稍计。默認(rèn)是’auto’,則會選擇1/n_features

l ?coef0 :核函數(shù)的常數(shù)項(xiàng)裕循。對于‘poly’和 ‘sigmoid’有用臣嚣。

l ?probability :是否采用概率估計(jì)?.默認(rèn)為False

l ?shrinking :是否采用shrinking heuristic方法剥哑,默認(rèn)為true

l ?tol :停止訓(xùn)練的誤差值大小硅则,默認(rèn)為1e-3

l ?cache_size :核函數(shù)cache緩存大小,默認(rèn)為200

l ?class_weight :類別的權(quán)重株婴,字典形式傳遞怎虫。設(shè)置第幾類的參數(shù)C為weight*C(C-SVC中的C)

l ?verbose :允許冗余輸出?

l ?max_iter :最大迭代次數(shù)困介。-1為無限制大审。

l ?decision_function_shape :‘ovo’, ‘ovr’ or None, default=None3

l ?random_state :數(shù)據(jù)洗牌時的種子值,int值

主要調(diào)節(jié)的參數(shù)有:C座哩、kernel徒扶、degree、gamma八回、coef0酷愧。

五驾诈、SVR

1. 介紹

SVM/SVR圖示

SVR回歸與SVM分類的區(qū)別在于缠诅,SVR的樣本點(diǎn)最終只有一類,它所尋求的最優(yōu)超平面不是SVM那樣使兩類或多類樣本點(diǎn)分的“最開”乍迄,而是使所有的樣本點(diǎn)離著超平面的總偏差最小管引。SVM是要使到超平面最近的樣本點(diǎn)的“距離”最大;SVR則是要使到超平面最遠(yuǎn)的樣本點(diǎn)的“距離”最小闯两。

統(tǒng)計(jì)上的理解就是:使得所有的數(shù)據(jù)的類內(nèi)方差最小褥伴,把所有的類的數(shù)據(jù)看作是一個類谅将。

傳統(tǒng)的回歸方法當(dāng)且僅當(dāng)回歸f(x)完全等于y時才認(rèn)為是預(yù)測正確,需計(jì)算其損失重慢;而支持向量回歸(SVR)則認(rèn)為只要是f(x)與y偏離程度不要太大饥臂,既可認(rèn)為預(yù)測正確,不用計(jì)算損失似踱。具體的就是設(shè)置一個閾值α隅熙,只是計(jì)算 |f(x) - y| > α 的數(shù)據(jù)點(diǎn)的loss。如圖:支持向量回歸表示只要在虛線內(nèi)部的值都可認(rèn)為是預(yù)測正確核芽,只要計(jì)算虛線外部的值的損失即可囚戚。

SVR超平面示意圖

損失函數(shù)相關(guān)的問題及改進(jìn):

在SVR中對于損失函數(shù)構(gòu)成的模型,有些權(quán)重很大轧简,有些權(quán)重很小驰坊,這樣就會容易導(dǎo)致過擬合(就是過分?jǐn)M合了訓(xùn)練數(shù)據(jù)集),而過擬合則是因?yàn)闃颖咎嗟奶卣鞅话M(jìn)來哮独,很多與項(xiàng)目本身無關(guān)的特征也被包含進(jìn)來拳芙。

解決過擬合問題有很多方式,常見的有以下幾種:

1).喂數(shù)據(jù)借嗽,也就是給足夠多的數(shù)據(jù)态鳖,只有數(shù)據(jù)多了,數(shù)據(jù)的很多特征才會更加明顯的體現(xiàn)出來恶导,訓(xùn)練的模型也會不斷的修正浆竭,特征的作用也會體現(xiàn)的越來越大。

2).特征降維惨寿,越多的特征導(dǎo)致訓(xùn)練集的維度越高邦泄,降維就是把高維空間的數(shù)據(jù)投影到低維空間中(保存下來的特征是數(shù)據(jù)量大的)。主要有:PCA降維(主成分分析,無監(jiān)督)裂垦、反向特征消除顺囊、隨機(jī)森林/組合樹、LDA(線性判別分析蕉拢,有監(jiān)督)特碳、LLE(局部線性嵌入)、Laplacian Eigenmaps(拉普拉斯特征映射)等

3).針對具體的負(fù)荷預(yù)測晕换,對電量值進(jìn)行標(biāo)準(zhǔn)化或者歸一化午乓。可以時特征訓(xùn)練集能夠快速的收斂闸准,可以使特征值域范圍變小益愈,有利于提高精度。

2. svr方法

sklearn.svm.SVR(kernel='rbf', degree=3, gamma='auto_deprecated', coef0=0.0, tol=0.001, C=1.0, epsilon=0.1, shrinking=True, cache_size=200, verbose=False, max_iter=-1)

參數(shù)解釋:

kernel: type: string;optional(default=‘rbf’)

? ? ? ? ? ? ?算法中所使用的核函數(shù)類型蒸其,其中有(‘linear’敏释, ‘poly’, ‘rbf’摸袁, ‘sigmoid’钥顽,‘precomputer’,默認(rèn)使用‘rbf’)

?degree:type:int靠汁, optional(default=3)

? ? ? ? ? ? ?多項(xiàng)式核函數(shù)的次數(shù)耳鸯,默認(rèn)為3,所以當(dāng)核函數(shù)為‘poly’時用到膀曾,其它核函數(shù)忽略

gamma:type:float县爬, optional(default=‘a(chǎn)uto’)

? ? ? ? ? ? ?核函數(shù)的系數(shù), 在核函數(shù)為‘rbf’添谊, ‘poly’财喳, ‘sigmoid’時使用,其他核函數(shù)忽略斩狱。gamma的值必須大于0耳高, 隨著gamma的增大,對于測試集分類效果越差所踊,對于訓(xùn)練集分類效果好泌枪,并且使模型的復(fù)雜度提高,泛化能力(對未知數(shù)的預(yù)測能力)較差秕岛,從而出現(xiàn)過擬合的情況碌燕。

coef0:type:float, optional(default=0.0)

? ? ? ? ? ? ?核函數(shù)中的獨(dú)立項(xiàng)继薛,只在核函數(shù)為‘poly’跟‘sigmoid’時使用修壕。

tol:type:float, optional(default=1e-3)停止判斷的公差

C:type:float遏考, optional(default=1.0)

? ? ? ? ? ?錯誤項(xiàng)的懲罰因子:表征有多重視離群點(diǎn)慈鸠,C越大越重視,也就是越不想丟掉這些離群點(diǎn)灌具。C值大時對誤差分類的懲罰增大青团,C值小時對誤差分類的懲罰減小。當(dāng)C趨近于無窮大時咖楣,表示不允許分類誤差的存在督笆;當(dāng)C趨于0時,表示不再關(guān)注分類是否正確截歉。

epsilon:type:float胖腾, optional(default=0.1)

shrinking:type:boolean烟零,optional(default=True)

? ? ? ? ? ?是否使用收縮啟發(fā)式

cache_size:type:float瘪松, optional

? ? ? ? ? ?內(nèi)核緩存的大小

verbose:type:bool咸作, default:False

? ? ? ? ? 啟用詳細(xì)輸出。如果啟用宵睦,在多線程環(huán)境下可能無法正常工作

max_iter:type:int记罚, optional(default=-1)

? ? ? ? ? ?解算器內(nèi)迭代的硬性限制,默認(rèn)為-1(無限制)

SVM常見面試問題:https://blog.csdn.net/yanhx1204/article/details/79481003

參考:

https://blog.csdn.net/u011067360/article/details/24368085

https://blog.csdn.net/qq_36523839/article/details/82383597

數(shù)學(xué)解釋:https://zhuanlan.zhihu.com/p/77750026?utm_source=wechat_session

SVC方法解釋:https://www.imooc.com/article/details/id/40903

SVR介紹:https://zhuanlan.zhihu.com/p/76609851壳嚎、http://www.reibang.com/p/399ddcac2178

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末桐智,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子烟馅,更是在濱河造成了極大的恐慌说庭,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,188評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件郑趁,死亡現(xiàn)場離奇詭異刊驴,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)寡润,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,464評論 3 395
  • 文/潘曉璐 我一進(jìn)店門捆憎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人梭纹,你說我怎么就攤上這事躲惰。” “怎么了变抽?”我有些...
    開封第一講書人閱讀 165,562評論 0 356
  • 文/不壞的土叔 我叫張陵础拨,是天一觀的道長。 經(jīng)常有香客問我绍载,道長太伊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,893評論 1 295
  • 正文 為了忘掉前任逛钻,我火速辦了婚禮僚焦,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘曙痘。我一直安慰自己芳悲,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,917評論 6 392
  • 文/花漫 我一把揭開白布边坤。 她就那樣靜靜地躺著名扛,像睡著了一般。 火紅的嫁衣襯著肌膚如雪茧痒。 梳的紋絲不亂的頭發(fā)上肮韧,一...
    開封第一講書人閱讀 51,708評論 1 305
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼弄企。 笑死超燃,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拘领。 我是一名探鬼主播意乓,決...
    沈念sama閱讀 40,430評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼约素!你這毒婦竟也來了届良?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,342評論 0 276
  • 序言:老撾萬榮一對情侶失蹤圣猎,失蹤者是張志新(化名)和其女友劉穎士葫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體送悔,經(jīng)...
    沈念sama閱讀 45,801評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡为障,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,976評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了放祟。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鳍怨。...
    茶點(diǎn)故事閱讀 40,115評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖跪妥,靈堂內(nèi)的尸體忽然破棺而出鞋喇,到底是詐尸還是另有隱情,我是刑警寧澤眉撵,帶...
    沈念sama閱讀 35,804評論 5 346
  • 正文 年R本政府宣布侦香,位于F島的核電站,受9級特大地震影響纽疟,放射性物質(zhì)發(fā)生泄漏罐韩。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,458評論 3 331
  • 文/蒙蒙 一污朽、第九天 我趴在偏房一處隱蔽的房頂上張望散吵。 院中可真熱鬧,春花似錦蟆肆、人聲如沸矾睦。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,008評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽枚冗。三九已至,卻和暖如春蛇损,著一層夾襖步出監(jiān)牢的瞬間赁温,已是汗流浹背坛怪。 一陣腳步聲響...
    開封第一講書人閱讀 33,135評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留股囊,地道東北人袜匿。 一個月前我還...
    沈念sama閱讀 48,365評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像毁涉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子锈死,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,055評論 2 355