1. 程式人生 > >第五講:決策樹+隨機森林+AdaBoost(上)

第五講:決策樹+隨機森林+AdaBoost(上)

主要內容

3 邏輯斯蒂迴歸(下)

3.5 邏輯斯諦迴歸和凸優化問題

3.5.1 什麼是凸優化問題

3.5.2 為什麼說邏輯斯諦迴歸是一個凸優化問題

3.6 多項邏輯斯諦迴歸

3.6.1 模型

3.6.2 策略

3.6.3 演算法

3.6.4 正則化

3.7 對比感知機、SVM和邏輯斯諦迴歸

3.7.1 損失函式

3.7.2 分離超平面

3.7.3 演算法效能

4 整合學習(上)

4.1 決策樹

4.1.1 CRAT框架

4.1.2 模型 

4.1.3 特徵選擇

 

3.5 邏輯斯諦迴歸和凸優化問題

 

 3.5.1 什麼是凸優化問題

在機器學習中,我們經常會遇到凸優化問題。那麼什麼叫凸優化問題,凸優化又有什麼作用呢?

 

凸優化是指一種比較特殊的優化,是指求取最小值的目標函式為凸函式的一類優化問題。凸優化問題的形式是:,其中f(x)是凸函式,可行域S是凸集。此外還有個等價形式:

其中f(x)和所有的限制函式gi(x)都必須是凸函式。

 

那麼什麼是凸函式,什麼是凸集呢?所謂的凸集指的是如果對於一個集合S中的任意兩個點A和B,這兩個點的連線AB也在S內,那麼S就是一個凸集。換句話說,凸集不能有洞,不能有任何凹陷。

而凸函式是指同時滿足以下條件的函式:

(1)它的定義域是凸集

(2)對於其定義域中的任意兩點x1,x2,對任意0 ≤ α ≤ 1,f ( αx1 + (1−α) x2 ) ≤ α f( x1 ) + ( 1−α ) f ( x2 ),那麼這個函式f就是凸函式。凸優化問題有個很好的性質,就是它的區域性最優解一定是全域性最優解。

 

3.5.2 為什麼說邏輯斯諦迴歸是一個凸優化問題

 

根據上面的內容我們知道,一個凸優化問題要滿足可行域是凸集並且目標函式為凸函式兩個條件。對於邏輯斯諦迴歸,引數w可以取任意值,可行域是整個實數空間,很明顯它是一個凸集。然後我們對損失函式進行二階求導。

 

     求一階導:

 求二階導:

接下來我們令

 

我們可以得到:

因為B是一個n階對角矩陣,很容易得到,因此是半正定的,即L(w)的Hesse矩陣是半正定的,根據凸函式的性質,如果其Hesse矩陣(二階偏導)是半正定的,那麼該損失函式是一個凸函式。

 

邏輯斯諦迴歸的可行域是凸集,損失函式是凸函式,所以它是一個凸優化問題。

3.6 多項邏輯斯諦迴歸

3.6.1 模型

 

上一講介紹的邏輯斯諦迴歸模型是二項類分類模型,用於二類分類。我們可以將其推廣為多項邏輯斯諦迴歸模型,用於多分類。在多項邏輯斯諦迴歸中,我們解決的是多分類問題,因此離散型隨機變數Y可以取值{1,2,…,K},這樣我們可以得到多項邏輯斯諦迴歸的模型:

       因為它滿足,所以我們也可以將它寫成另外一種形式:

 

3.6.2 策略

       為了使二分類的邏輯斯諦迴歸擴充套件到多分類問題,我們將sigmoid函式,換成softmax函式。

     softmax(x)=(其中,ei代表第i類,K代表總共的類別數),應用到多項邏輯斯諦迴歸模型中是:

應用極大似然估計,然後取負對數變成極小化問題,因此我們可以得到多項邏輯斯諦迴歸的損失函式:

 

3.6.3 演算法

 和二分類的邏輯斯諦迴歸類似,我們也可以使用隨機梯度下降的演算法對其進行優化:

 

3.6.4 正則化

 

但是,softmax迴歸有一個不同尋常的特點,它有一個“冗餘”的引數集。假設我們從引數向量wk中減去向量ψ,這時每一個wk都變成了wk – ψ(k=1,… ,K)。此時的假設函式變成了下面這個式子:

 

 

換句話說,從wk中減去ψ完全不影響假設函式的預測結果。這表明前面的 softmax 迴歸模型中存在冗餘的引數。更正式一點來說,softmax模型被過度引數化了。對於任意一個用於擬合數據的假設函式,可以求出多組引數值,這些引數得到的是完全相同的假設函式hw。進一步而言,如果引數(w1,w2,… ,wk)是價函式J(w)的極小值點,那麼(w1 - ψ,w2 - ψ,… ,wk - ψ)同樣也是它的極小值點,其中ψ可以為任意向量。因此使J(w)最小化的解不是唯一的。由於J(w)仍然是一個凸函式,因此梯度下降時不會遇到區域性最優解的問題。但是Hessian矩陣是奇異的(不可逆的),這會直接導致採用牛頓法優化就遇到數值計算的問題。


注意,當ψ= w1時,我們總是可以將w1替換為(即替換為全零向量),並且這種變換不會影響假設函式。因此我們可以去掉引數向量w1(或者其他wk中的任意一個)而不影響假設函式的表達能力。實際上,與其優化全部k(n+1)個引數(w1,w2,… ,wk),我們可以令,只優化剩餘的(k-1)(n+1)個引數,這樣演算法依然能夠正常工作。但在實際應用中,為了使演算法實現更簡單清楚,我們往往保留所有引數(w1,w2,… ,wn),而不任意地將某一引數設定為0。但此時我們需要對代價函式做一個改動:加入權重衰減,權重衰減可以解決softmax迴歸的引數冗餘所帶來的數值問題。

 

我們通過新增一個權重衰減項來修改損失函式,這個衰減項會懲罰過大的引數值,現在我們的損失函式變為:

 

 

有了這個權重衰減項以後 (λ>0),代價函式就變成了嚴格的凸函式,這樣就可以保證得到唯一的解,此時的 Hessian矩陣變為可逆矩陣。並且因為J(θ)是凸函式,梯度下降法和 L-BFGS 等演算法可以保證收斂到全域性最優解。再通過最小化J(w),我們就能實現一個可用的softmax迴歸模型。

3.7 對比感知機、SVM和邏輯斯諦迴歸

 

感知機、SVM和邏輯斯諦迴歸三者既有聯絡也有區別。聯絡在於這三者都是線性分類器,而且SVM和Logistic都是由感知器發展改善而來的。但是三者在損失函式,分離超平面和演算法效能上都有所區別。

 

3.7.1 損失函式

 

感知機、SVM和邏輯斯諦迴歸三者的損失函式不同,後兩者的損失函式的目的都是增加對分類影響較大的資料點的權重,SVM的處理方法是隻考慮support vectors,也就是和分類最相關的少數點,去學習分類器。而邏輯迴歸通過非線性對映,大大減小了離分類平面較遠的點的權重,相對提升了與分類最相關的資料點的權重。

 

感知機的損失函式:

SVM的損失函式:

邏輯斯諦迴歸的損失函式:

 

下圖中紅色的曲線代表Logistic迴歸的損失函式,綠色的線代表SVM的損失函式。 

 

3.7.2 分離超平面

 

感知機、SVM和邏輯斯諦迴歸同樣都用到了分離超平面,但是如何利用這個分離超平面三者有所區別。

 

❖ 感知機模型將分離超平面對資料分割,尋找出所有錯誤的分類點,計算這些點到超平面的距離,使這一距離和最小化,也就是說感知機模型的最優化問題是使得錯誤分類點到超平面距離之和最小化。

 

❖支援向量機的最優化問題是最大化樣本點到分離超平面的最小距離。

 

❖邏輯斯諦迴歸是將分離超平面作為sigmoid函式的自變數進行輸入,獲得了樣本點被分為正例和反例的條件概率,然後用極大似然估計極大化這個後驗概率分佈,也就是說邏輯斯諦迴歸模型的最優化問題是極大似然估計樣本的後驗概率分佈。

 

3.7.3 演算法效能

 

感知機模型無法加入核方法對映到高維,而邏輯斯諦迴歸和支援向量機都能通過核方法對低維不可分高維可分的資料集進行分類。感知機模型和支援向量機模型可以通過二分類方法的擴充套件處理多分類問題,方法是對每一類都產生一個分離超平面區分該類和其他類的樣本。支援向量機計算相對複雜,但因為其實凸優化問題,因此演算法一定可以收斂。

 

邏輯斯諦迴歸相比感知機多了一層sigmoid函式的計算,計算仍然十分高效。其線上性可分的資料集中不能收斂但可以加入正則化來使演算法收斂,線上性不可分的資料集中可以較好的收斂。邏輯斯諦迴歸進行多分類問題通過選擇最後一個類為基準類,構造k-1個分離超平面(分類器)。k-1個分類器計算sigmoid函式值求和在加1作為投票法的分母,每個分類器計算的sigmoid函式值作為分子進行投票,選出最大的分配到該類別。

4 整合學習(上)

整合學習是指通過訓練多個分類器,然後將這些分類器組合起來,來獲得比單個分類器更優的效能(比最好的那個分類器還要好)。如果每個分類器都是同種型別的(比如都是決策樹或者都是SVM等等),那麼這些單個的分類器我們稱為基學習器;如果整合中包含不同型別的分類器,這樣的整合是異質的。需要注意的是,這些單個的分類器效能不一定要很好,只需要比隨機猜測好就可以。在我們一般的經驗中,如果把好的東西與壞的東西摻雜在一起,那麼結果通常是比最壞的要好但比最好的要差一些,但是整合學習可以獲得比最好的單一學習器更好的效能。

 

整合學習的發展歷史我們可以從下圖中簡單瞭解。

 

4.1 決策樹

4.1.1 CRAT框架

CART使用基尼指數來選擇劃分。基尼指數反映的是從資料集D中隨機抽取兩個樣本,其類別標記不一致的概率。因此基尼指數越少,資料集D包含的資訊量越少。CART在候選特徵集中選取一個特徵,使得劃分後基尼指數最小。

分類舉例:

 

我們根據決策樹,將下面的區域分成四塊。分別是X2≤0.7,X1≤-1.4; X2≤0.7,X1>-1.4; X2>0.7,X1≤-0.6; X2>0.7,X1>-0.6。

 

迴歸舉例:

           

 

 

4.1.2 模型

 

分類決策樹模型是一種描述對例項進行分類的樹形結構,決策樹由結點和有向邊組成。結點有兩種型別:內部結點和葉結點。內部結點表示一個特徵或屬性,葉結點表示一個類。用決策樹分類,從根結點開始,對例項的某一特徵進行測試,根據測試結果,將例項分配到其子結點;這時,每一個子結點對應著該特徵的一個取值。如此遞迴地對例項進行測試並分配,直至達到葉結點。最後將例項分到葉結點的類中。

 

 

我們可以將決策樹看成一個if-then規則的集合,轉換成if-then規則的過程:由決策樹的根結點到葉結點的每一條路徑構建一條規則;路徑上內部結點的特徵對應著規則的條件,而葉結點的類對應著規則的結論。決策樹的路徑或其對應的if-then規則集合具有一個重要的性質:互斥並且完備,每一個例項都被一條路徑或一條規則所覆蓋,而且只被一條路徑或一條規則所覆蓋。這裡所謂覆蓋是指例項的特徵與路徑上的特徵一致或例項滿足規則的條件。

 

4.1.3 特徵選擇

特徵選擇在於選取對訓練資料具有分類能力的特徵,通常特徵選擇的準則是資訊增益或資訊增益比。在學習資訊增益之前,我們給出熵、聯合熵和條件熵的定義。

設有隨機變數(X,Y),其聯合概率分佈為:

P(X=xi,Y=yi)=Pi,j,i=1,2,…,n;j=1,2,…,m

隨機變數熵X的熵定義為:

所以聯合熵的定義為:

熵H(p)隨概率p變化的曲線如下圖所示:

條件熵H(Y|X)表示在已知隨機變數X的條件下隨機變數Y的不確定性。隨機變數X給定的條件下隨機變數Y的條件熵(conditional entropy) H(Y|X),定義為X給定條件下Y的條件概率分佈的熵對X的數學期望:

     當熵和條件熵中的概率由資料估計(特別是極大似然估計)得到時,所對應的熵與條件熵分別稱為經驗熵和經驗條件熵。

reference:

[1] 李航 . 統計學習方法 . 清華大學出版社,北京(2012)

[2] 周志華 . 機器學習 . 清華大學出版社,北京(2016)