支持向量機(SVM)和決策樹(Decision Tree)簡介

一、支持向量機(SVM)

  主要思想:找一個超平面,使其儘可能多地將兩類數據點分開,還要使得分開的數據點距分類面儘可能地遠.

1. 線性可分的支持向量機

  設有一組觀測樣本:D={(xi,yi)i=1,2,,n,xiXRm,yi{1,1}}\small D=\lbrace (x_i,y_i)|\,i=1,2,\cdots,n,x_i\in X\subseteq R^m,y_i\in \lbrace1,-1\rbrace \rbrace. 根據標籤 yiy_i 將其分爲兩類:D1={(xi,yi)yi=1},D2={(xi,yi)yi=1}.\small D_1=\lbrace(x_i,y_i) |\,y_i=1\rbrace,D_2=\lbrace(x_i,y_i) |\, y_i=-1\rbrace.
  已知 D1,D2\small D_1,D_2 線性可分,即存在一個超平面能夠將兩類點完全分隔開. 然後尋找這樣的一個超平面 wTx+b=0w^Tx+b=0 (其中 ww 表示超平面的法向量),不僅能夠滿足分隔條件,而且能夠使分開的數據點距超平面儘可能地遠. 該問題可以表示爲優化問題,數學描述如下:max  ρs.t.{wTxi+bl,xiD1wTxi+bl,xiD2\begin{aligned}&max\;\rho\\ &s.t. \begin{cases} w^Tx_i+b\geq l, & x_i \in D_1\\ w^Tx_i+b\leq -l, & x_i \in D_2 \end{cases}\end{aligned}其中 wTxi+b=l,wTxi+b=l(l>0)w^Tx_i+b= l,w^Tx_i+b= -l(l>0) 分別經過 D1,D2\small D_1,D_2 的邊界點,ρ\rho 表示兩個超平面之間的距離,可以由 l,wl,w 表示,推導過程如下:

  設 x1,x2x_1,x_2 分別爲 D1,D2\small D_1,D_2 的邊界點,則由 wTxi+b=l,wTxi+b=lw^Tx_i+b= l,w^Tx_i+b= -l 分別經過 D1,D2\small D_1,D_2 的邊界點可知,wTx1+b=l,wTx2+b=lw^Tx_1+b= l,w^Tx_2+b= -l,於是兩個超平面之間的距離可以表示爲 ρ=(x1x2)ww\rho=\frac{|(x_1-x_2)\cdot w|}{||w||}(x1x2)w=wTx1wTx2=lb(lb)=2l(x_1-x_2)\cdot w=w^Tx_1-w^Tx_2=l-b-(-l-b)=2l,則 ρ=2l/w,l=ρw/2.\rho=2l/||w||,l=\rho||w||/2.
  約束條件{wTxi+bl,xiD1wTxi+bl,xiD2\begin{cases} w^Tx_i+b\geq l, & x_i \in D_1\\ w^Tx_i+b\leq -l, & x_i \in D_2 \end{cases}可以簡化爲 yi(wTxi+b)ly_i(w^Tx_i+b)\geq l,兩邊同除 ll,將 l=ρw/2l=\rho||w||/2 代入上式,得yi(2wTρwxi+2bρw)1y_i(\frac{2w^T}{\rho||w||}x_i+\frac{2b}{\rho||w||})\geq1換元,令 w=2wρw,b=2bρww'=\frac{2w}{\rho||w||},b'=\frac{2b}{\rho||w||}代入原式,得 yi(wTxi+b)1y_i(w'^Tx_i+b')\geq 1.
  同時 w=2/ρ||w'||=2/\rho ,最優化目標 max  ρ=max  2/wmax\;\rho=max\;2/||w'|| 等價於 min  w2/2min\;||w'||^2/2.
  原問題轉化爲:min  12w2s.t.  yi(wTxi+b)1\begin{aligned}&min\; \frac{1}{2}||w'||^2\\ &s.t. \;y_i(w'^Tx_i+b')\geq 1\end{aligned}

2. 近似線性可分的支持向量機

  即找不到一個超平面將兩類數據點分隔開,但去除邊界上與其他類混雜的一小部分點後能夠線性可分.
  對於這種情況,只需對約束條件 yi(wTxi+b)1y_i(w'^Tx_i+b')\geq 1 稍加調整. 具體做法:引入鬆弛變量 ξi0,i=1,2,,n\xi_i\geq0,i=1,2,\cdots,n,使得 yi(wTxi+b)1ξiy_i(w'^Tx_i+b')\geq 1-\xi_i,原問題轉化爲:min  12w2+Ci=1nξis.t.  {yi(wTxi+b)1ξi,i=1,2,,nξi0,i=1,2,,n\begin{aligned}&min\; \frac{1}{2}||w'||^2+C\sum_{i=1}^n\xi_i\\ &s.t. \;\begin{cases} y_i(w'^Tx_i+b')\geq 1-\xi_i, & i=1,2,\cdots,n\\ \xi_i\geq0, &i=1,2,\cdots,n \end{cases}\end{aligned}其中 C>0\small C>0,稱爲懲罰因子.

二、決策樹(Decision Tree)

  主要思想:從一個無規則的樣本集中推導出一個分類規則,其可以以樹的形式表示,也稱決策樹,內部節點表示特徵或分類指標,一個葉子節點表示一類.

  先來談談信息論的一些知識,偉大的祖師爺——香農給出了信息的數學描述,利用信息量衡量事件不確定性的大小,事件發生概率越小,信息量越大. 將信息量表示成自變量爲概率的函數,這個函數需要滿足以下三條性質:
(1) 非負性,即信息量總是大於等於零的;
(2) 隨概率的增大而減小;
(3) f(p1p2)=f(p1)+f(p2)f(p_1p_2)=f(p_1)+f(p_2).
  易知對數函數 f(p)=logap  (0<a<1)f(p)=log_a p\;(0<a<1) (p\,p 爲事件發生的概率)滿足這些性質,並稱其爲事件的信息量,一般取 a=1/2a=1/2.

再來看兩個更高級的定義:
信息熵:信息量的期望. 假設事件 D\small DN\small N 中可能的結果,每種結果的發生概率爲 Pk\small P_k,定義事件 D\small D 的信息熵爲:Ent(D)=k=1NPk(log2Pk).Ent(D)=\sum_{k=1}^NP_k(-log_2P_k).得知新特徵的信息後,信息熵的減少量g(D,A)=H(D)H(DA)g(D,A)=H(D)-H(D|A) 稱爲信息增益,具體計算方法:
  假設樣本集 D\small D 可以分爲 K\small K 類, Ci\small C_i 表示第 ii 類,i=1,2,,K,i=1KCi=D\small i=1,2,\cdots,K,\, \sum_{i=1}^K|C_i|=|D|D\small D 的信息熵爲H(D)=i=1KCiD(log2CiD).H(D)=\sum_{i=1}^K\frac{|C_i|}{|D|}(-log_2{\frac{|C_i|}{|D|}}).特徵 A\small AD\small D 劃分爲 nn 個子集 Di,i=1,2,,n\small D_i,i=1,2,\cdots,n,定義H(DA)i=1nDiDH(Di),H(D|A)\triangleq\sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i),可以理解爲子集信息熵的期望.

  好的分類特徵 A\small A 應該使 H(DA)\small H(D|A) 儘可能地小,即信息增益 g(D,A)\small g(D,A) 儘可能地大. 至於爲啥?
  好的分類特徵意味着對結果更精確的預測. 而預測得越準確,預測結果發生的概率也就越大. 大的概率意味着小的信息量,小的信息量會帶來小的信息熵,進而使H(DA)\small H(D|A) 儘可能地小.
  決策樹的生成過程就是,先選擇信息增益最大的特徵進行分類. 然後對每個小類進行相同的操作,遞歸下去,就可以得到一棵分類樹,也稱決策樹.
  終止條件可以這樣設置:當前節點的信息熵小於給定的閾值時,就停止遞歸,取佔比最大的類作爲當前葉子節點的類別.

  上述介紹的根據信息增益選取特徵,只是決策樹中的 ID3 算法,這種算法傾向於選擇取值較多的特徵,後續提出的 C4.5 算法,以信息增益率作爲特徵選擇指標,在一定程度上克服了這個缺點. 其他的決策樹算法還有 CART,既能做分類也能做迴歸,感興趣的讀者可以瞭解一下.



Plus: 如有錯誤、可以改進的地方、或任何想說的,請在評論區留言!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章