一、支持向量機(SVM)
主要思想 :找一個超平面,使其儘可能多地將兩類數據點分開,還要使得分開的數據點距分類面儘可能地遠.
1. 線性可分的支持向量機
設有一組觀測樣本:D = { ( x i , y i ) ∣ i = 1 , 2 , ⋯ , n , x i ∈ X ⊆ R m , y i ∈ { 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 D = { ( x i , y i ) ∣ i = 1 , 2 , ⋯ , n , x i ∈ X ⊆ R m , y i ∈ { 1 , − 1 } } . 根據標籤 y i y_i y i 將其分爲兩類:D 1 = { ( x i , y i ) ∣ y i = 1 } , D 2 = { ( x i , y i ) ∣ y i = − 1 } . \small D_1=\lbrace(x_i,y_i) |\,y_i=1\rbrace,D_2=\lbrace(x_i,y_i) |\, y_i=-1\rbrace. D 1 = { ( x i , y i ) ∣ y i = 1 } , D 2 = { ( x i , y i ) ∣ y i = − 1 } .
已知 D 1 , D 2 \small D_1,D_2 D 1 , D 2 線性可分,即存在一個超平面能夠將兩類點完全分隔開. 然後尋找這樣的一個超平面 w T x + b = 0 w^Tx+b=0 w T x + b = 0 (其中 w w w 表示超平面的法向量),不僅能夠滿足分隔條件,而且能夠使分開的數據點距超平面儘可能地遠. 該問題可以表示爲優化問題,數學描述如下:m a x ρ s . t . { w T x i + b ≥ l , x i ∈ D 1 w T x i + b ≤ − l , x i ∈ D 2 \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} m a x ρ s . t . { w T x i + b ≥ l , w T x i + b ≤ − l , x i ∈ D 1 x i ∈ D 2 其中 w T x i + b = l , w T x i + b = − l ( l > 0 ) w^Tx_i+b= l,w^Tx_i+b= -l(l>0) w T x i + b = l , w T x i + b = − l ( l > 0 ) 分別經過 D 1 , D 2 \small D_1,D_2 D 1 , D 2 的邊界點,ρ \rho ρ 表示兩個超平面之間的距離,可以由 l , w l,w l , w 表示,推導過程如下:
設 x 1 , x 2 x_1,x_2 x 1 , x 2 分別爲 D 1 , D 2 \small D_1,D_2 D 1 , D 2 的邊界點,則由 w T x i + b = l , w T x i + b = − l w^Tx_i+b= l,w^Tx_i+b= -l w T x i + b = l , w T x i + b = − l 分別經過 D 1 , D 2 \small D_1,D_2 D 1 , D 2 的邊界點可知,w T x 1 + b = l , w T x 2 + b = − l w^Tx_1+b= l,w^Tx_2+b= -l w T x 1 + b = l , w T x 2 + b = − l ,於是兩個超平面之間的距離可以表示爲 ρ = ∣ ( x 1 − x 2 ) ⋅ w ∣ ∣ ∣ w ∣ ∣ \rho=\frac{|(x_1-x_2)\cdot w|}{||w||} ρ = ∣ ∣ w ∣ ∣ ∣ ( x 1 − x 2 ) ⋅ w ∣ ( x 1 − x 2 ) ⋅ w = w T x 1 − w T x 2 = l − b − ( − l − b ) = 2 l (x_1-x_2)\cdot w=w^Tx_1-w^Tx_2=l-b-(-l-b)=2l ( x 1 − x 2 ) ⋅ w = w T x 1 − w T x 2 = l − b − ( − l − b ) = 2 l ,則 ρ = 2 l / ∣ ∣ w ∣ ∣ , l = ρ ∣ ∣ w ∣ ∣ / 2. \rho=2l/||w||,l=\rho||w||/2. ρ = 2 l / ∣ ∣ w ∣ ∣ , l = ρ ∣ ∣ w ∣ ∣ / 2 .
約束條件{ w T x i + b ≥ l , x i ∈ D 1 w T x i + b ≤ − l , x i ∈ D 2 \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} { w T x i + b ≥ l , w T x i + b ≤ − l , x i ∈ D 1 x i ∈ D 2 可以簡化爲 y i ( w T x i + b ) ≥ l y_i(w^Tx_i+b)\geq l y i ( w T x i + b ) ≥ l ,兩邊同除 l l l ,將 l = ρ ∣ ∣ w ∣ ∣ / 2 l=\rho||w||/2 l = ρ ∣ ∣ w ∣ ∣ / 2 代入上式,得y i ( 2 w T ρ ∣ ∣ w ∣ ∣ x i + 2 b ρ ∣ ∣ w ∣ ∣ ) ≥ 1 y_i(\frac{2w^T}{\rho||w||}x_i+\frac{2b}{\rho||w||})\geq1 y i ( ρ ∣ ∣ w ∣ ∣ 2 w T x i + ρ ∣ ∣ w ∣ ∣ 2 b ) ≥ 1 換元,令 w ′ = 2 w ρ ∣ ∣ w ∣ ∣ , b ′ = 2 b ρ ∣ ∣ w ∣ ∣ w'=\frac{2w}{\rho||w||},b'=\frac{2b}{\rho||w||} w ′ = ρ ∣ ∣ w ∣ ∣ 2 w , b ′ = ρ ∣ ∣ w ∣ ∣ 2 b 代入原式,得 y i ( w ′ T x i + b ′ ) ≥ 1 y_i(w'^Tx_i+b')\geq 1 y i ( w ′ T x i + b ′ ) ≥ 1 .
同時 ∣ ∣ w ′ ∣ ∣ = 2 / ρ ||w'||=2/\rho ∣ ∣ w ′ ∣ ∣ = 2 / ρ ,最優化目標 m a x ρ = m a x 2 / ∣ ∣ w ′ ∣ ∣ max\;\rho=max\;2/||w'|| m a x ρ = m a x 2 / ∣ ∣ w ′ ∣ ∣ 等價於 m i n ∣ ∣ w ′ ∣ ∣ 2 / 2 min\;||w'||^2/2 m i n ∣ ∣ w ′ ∣ ∣ 2 / 2 .
原問題轉化爲:m i n 1 2 ∣ ∣ w ′ ∣ ∣ 2 s . t . y i ( w ′ T x i + b ′ ) ≥ 1 \begin{aligned}&min\; \frac{1}{2}||w'||^2\\
&s.t. \;y_i(w'^Tx_i+b')\geq 1\end{aligned} m i n 2 1 ∣ ∣ w ′ ∣ ∣ 2 s . t . y i ( w ′ T x i + b ′ ) ≥ 1
2. 近似線性可分的支持向量機
即找不到一個超平面將兩類數據點分隔開,但去除邊界上與其他類混雜的一小部分點後能夠線性可分.
對於這種情況,只需對約束條件 y i ( w ′ T x i + b ′ ) ≥ 1 y_i(w'^Tx_i+b')\geq 1 y i ( w ′ T x i + b ′ ) ≥ 1 稍加調整. 具體做法:引入鬆弛變量 ξ i ≥ 0 , i = 1 , 2 , ⋯ , n \xi_i\geq0,i=1,2,\cdots,n ξ i ≥ 0 , i = 1 , 2 , ⋯ , n ,使得 y i ( w ′ T x i + b ′ ) ≥ 1 − ξ i y_i(w'^Tx_i+b')\geq 1-\xi_i y i ( w ′ T x i + b ′ ) ≥ 1 − ξ i ,原問題轉化爲:m i n 1 2 ∣ ∣ w ′ ∣ ∣ 2 + C ∑ i = 1 n ξ i s . t . { y i ( w ′ T x i + b ′ ) ≥ 1 − ξ i , i = 1 , 2 , ⋯ , n ξ i ≥ 0 , 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} m i n 2 1 ∣ ∣ w ′ ∣ ∣ 2 + C i = 1 ∑ n ξ i s . t . { y i ( w ′ T x i + b ′ ) ≥ 1 − ξ i , ξ i ≥ 0 , i = 1 , 2 , ⋯ , n i = 1 , 2 , ⋯ , n 其中 C > 0 \small C>0 C > 0 ,稱爲懲罰因子.
二、決策樹(Decision Tree)
主要思想 :從一個無規則的樣本集中推導出一個分類規則,其可以以樹的形式表示,也稱決策樹,內部節點表示特徵或分類指標,一個葉子節點表示一類.
先來談談信息論的一些知識,偉大的祖師爺——香農給出了信息的數學描述,利用信息量衡量事件不確定性的大小,事件發生概率越小,信息量越大. 將信息量表示成自變量爲概率的函數,這個函數需要滿足以下三條性質:
(1) 非負性,即信息量總是大於等於零的;
(2) 隨概率的增大而減小;
(3) f ( p 1 p 2 ) = f ( p 1 ) + f ( p 2 ) f(p_1p_2)=f(p_1)+f(p_2) f ( p 1 p 2 ) = f ( p 1 ) + f ( p 2 ) .
易知對數函數 f ( p ) = l o g a p ( 0 < a < 1 ) f(p)=log_a p\;(0<a<1) f ( p ) = l o g a p ( 0 < a < 1 ) ( p \,p p 爲事件發生的概率)滿足這些性質,並稱其爲事件的信息量 ,一般取 a = 1 / 2 a=1/2 a = 1 / 2 .
再來看兩個更高級的定義:
信息熵 :信息量的期望. 假設事件 D \small D D 有 N \small N N 中可能的結果,每種結果的發生概率爲 P k \small P_k P k ,定義事件 D \small D D 的信息熵爲:E n t ( D ) = ∑ k = 1 N P k ( − l o g 2 P k ) . Ent(D)=\sum_{k=1}^NP_k(-log_2P_k). E n t ( D ) = k = 1 ∑ N P k ( − l o g 2 P k ) . 得知新特徵的信息後,信息熵的減少量g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D,A)=H(D)-H(D|A) g ( D , A ) = H ( D ) − H ( D ∣ A ) 稱爲信息增益 ,具體計算方法:
假設樣本集 D \small D D 可以分爲 K \small K K 類, C i \small C_i C i 表示第 i i i 類,i = 1 , 2 , ⋯ , K , ∑ i = 1 K ∣ C i ∣ = ∣ D ∣ \small i=1,2,\cdots,K,\, \sum_{i=1}^K|C_i|=|D| i = 1 , 2 , ⋯ , K , ∑ i = 1 K ∣ C i ∣ = ∣ D ∣ ,D \small D D 的信息熵爲H ( D ) = ∑ i = 1 K ∣ C i ∣ ∣ D ∣ ( − l o g 2 ∣ C i ∣ ∣ D ∣ ) . H(D)=\sum_{i=1}^K\frac{|C_i|}{|D|}(-log_2{\frac{|C_i|}{|D|}}). H ( D ) = i = 1 ∑ K ∣ D ∣ ∣ C i ∣ ( − l o g 2 ∣ D ∣ ∣ C i ∣ ) . 特徵 A \small A A 將 D \small D D 劃分爲 n n n 個子集 D i , i = 1 , 2 , ⋯ , n \small D_i,i=1,2,\cdots,n D i , i = 1 , 2 , ⋯ , n ,定義H ( D ∣ A ) ≜ ∑ i = 1 n ∣ D i ∣ ∣ D ∣ H ( D i ) , H(D|A)\triangleq\sum_{i=1}^n\frac{|D_i|}{|D|}H(D_i), H ( D ∣ A ) ≜ i = 1 ∑ n ∣ D ∣ ∣ D i ∣ H ( D i ) , 可以理解爲子集信息熵的期望.
好的分類特徵 A \small A A 應該使 H ( D ∣ A ) \small H(D|A) H ( D ∣ A ) 儘可能地小,即信息增益 g ( D , A ) \small g(D,A) g ( D , A ) 儘可能地大. 至於爲啥?
好的分類特徵意味着對結果更精確的預測. 而預測得越準確,預測結果發生的概率也就越大. 大的概率意味着小的信息量,小的信息量會帶來小的信息熵,進而使H ( D ∣ A ) \small H(D|A) H ( D ∣ A ) 儘可能地小.
決策樹的生成過程就是,先選擇信息增益最大的特徵進行分類. 然後對每個小類進行相同的操作,遞歸下去,就可以得到一棵分類樹,也稱決策樹.
終止條件可以這樣設置:當前節點的信息熵小於給定的閾值時,就停止遞歸,取佔比最大的類作爲當前葉子節點的類別.
上述介紹的根據信息增益 選取特徵,只是決策樹中的 ID3 算法,這種算法傾向於選擇取值較多的特徵,後續提出的 C4.5 算法,以信息增益率作爲特徵選擇指標,在一定程度上克服了這個缺點. 其他的決策樹算法還有 CART,既能做分類也能做迴歸,感興趣的讀者可以瞭解一下.
Plus: 如有錯誤、可以改進的地方、或任何想說的,請在評論區留言!