1. 程式人生 > >統計學習方法 | 決策樹

統計學習方法 | 決策樹

01 決策樹定義

今天我們來學習另一種分類方法——決策樹

在開始學習之前,先提出一個問題:

這三種分類方法的區別是什麼呢?分別適用什麼場景呢?

好了,帶著疑問,我們開始學習決策樹~

決策樹是什麼?

它是一種基本的分類與迴歸的方法,可以認為是if-then規則的集合,決策樹分類時,將某結點的例項強行分到條件概率大的那一類中去。

下面我們主要啊解釋分類決策樹,迴歸決策樹在CART演算法中有提及,篇幅限制,本文暫不做講解。

它的優點是,模型具有可讀性,分類速度快。

決策樹定義

決策樹由結點、有向邊組成,結點分為內部結點和葉結點,顧名思義,內部節點就是特徵或屬性,葉結點就是決策樹的末端,表示一個類,決策樹大概長成這樣:

我們用決策樹分類時,從根結點開始,對例項的某一特徵進行測試,根據測試結果,將例項分配到子結點,這時每個子結點對應著分類特徵的一個值,如此遞迴地對例項進行測試並分配,直到達到葉結點,最後將例項分到葉結點的類中。

02 決策樹學習

在01節的末尾,我們概述了決策樹的構建過程,這一節我們更進一步講解決策樹的學習過程。

**目標:**根據給定的訓練資料集,構建一個決策樹模型,使它能夠對例項進行正確的分類。

**本質:**從訓練資料集歸納出一組分類規則,由訓練資料集估計條件概論模型,從而對訓練集有很好的擬合,對未知資料有很好的預測。

步驟:

  1. 特徵選擇
  2. 決策樹的生成
  3. 決策樹的剪枝

學習過程 可以概括為,遞迴地選擇最優特徵,並根據該特徵對訓練資料進行分割,使得對各個子資料集有一個最好的分類。

具體步驟如下:

  1. 構建根結點,所有訓練資料都放在根結點
  2. 選擇一個最優特徵,按照此特徵將訓練資料集分割成子集,使各子集有一個在當前條件下最好的分類
  3. 若子集已經能被正確分類,該結點變為葉結點;否則繼續對這些結點選擇最優特徵,分類,如此遞迴下去
  4. 每個子集都被分到葉結點上,決策樹生成
  5. step1~4可能對訓練資料有很好的分類能力,但對未知資料的預測能力較弱(過擬合),於是需要對決策樹進行修剪
  6. 去掉過於細分的葉結點,回退到父結點甚至更高的結點,然後將父結點或更高結點改為新的葉結點

常用演算法: ID3 C4.5 CART

03 學習步驟詳解

決策樹學習過程分為三個步驟:特徵選擇、決策樹生成、決策樹剪枝。

下面我們詳細講解每個步驟的演算法和原理,介紹ID3演算法和C4.5演算法。由於篇幅限制,CART演算法在本文暫不做講解。

1. 特徵選擇

**目的:**選取對訓練資料具有分類能力的特徵,從而提高決策樹學習效率

準則: 資訊增益 (information gain) 資訊增益比 (information gain ratio)

資訊增益是什麼? 定義為,集合D的經驗熵H(D)與特徵A給定的條件下D的經驗條件熵H(D|A)之差

g(D,A) = H(D) - H(D|A)

其中,H(D), H(D|A)定義如下,

在熱力學中,熵表示物質的混亂程度,在這裡,我們可以這樣理解資訊增益:表示得知特徵X的資訊而使得類Y的資訊的不確定性減少的程度。資訊增益越大,特徵的分類能力越強。

如何選擇最優特徵 我們現在知道資訊增益越大,特徵的分類能力越強。有了資訊增益這個工具,我們自然而然可以選擇最優特徵了——選擇資訊增益最大的特徵。

再提一句,以資訊增益作為劃分選擇資料集的特徵,可能存在偏向於選擇取值較多的特徵的問題。因此產生了資訊增益比這個度量,它規避了資訊增益的問題,定義為:資訊增益g(D,A)與訓練資料集D關於特徵A的值的熵HA(D)之比。

2. 決策樹的生成

**演算法核心:**在決策樹各個結點上應用資訊增益準則(ID3演算法)或資訊增益比準則(C4.5演算法)選擇特徵,遞迴地構建決策樹。

**過程:**從根結點開始,對結點計算所有可能特徵的資訊增益(比),選擇增益(比)最大的特徵作為結點特徵,由該特徵的不同取值建立子結點,再對子結點遞迴地呼叫以上方法,構建決策樹,直到所有特徵的資訊增益均很小或沒有特徵可以選擇為止。

ID3演算法

C4.5演算法

3. 決策樹的剪枝

決策樹的生成演算法(ID3, C4.5),因為過多地考慮提高對訓練資料的正確分類,容易產生過擬合。

於是人們想出一個辦法解決過擬合的問題:正則化(控制樹的複雜度),及決策樹的剪枝。

剪枝是將已生成的樹進行簡化的過程:從已生成的樹上裁掉一些子樹或葉結點,並將根結點或父結點作為新的葉結點,從而簡化分類樹模型。

**原理:**通過極小化決策樹整體的損失函式或代價函式來實現。

決策樹的損失函式 設樹T的葉結點有|T|個,t是樹T的葉結點,該葉結點有Nt個樣本點,其中k類樣本點Ntk個,Ht(T)為葉結點t上的經驗熵,那麼有:

決策樹學習的損失函式

葉結點t的經驗熵

決策樹損失函式公式

其中:

  • C(T)——模型對訓練資料的預測誤差(即模型與訓練資料的擬合程度)
  • |T|——模型的複雜度(即葉結點個數)
  • alpha——>=0,控制模型擬合程度和複雜度
    • 較大的alpha促使選擇較簡單的模型(樹)
    • 較小的alpha促使選擇較複雜的模型(樹)
    • alpha=0表示只考慮模型與訓練資料的擬合程度,不考慮過擬合

剪枝演算法

4. 生成和剪枝演算法的區別

決策樹生成:只考慮通過提高資訊增益(比)對訓練資料進行更好地擬合,容易產生過擬合,相當於用極大似然估計進行模型選擇。

決策樹剪枝:還考慮減小模型複雜度|T|,從而減小過擬合,更好地對未知資料進行預測,相當於用正則化極大似然估計進行模型選擇。

04 總結

今天我們學習了除KNN,Naive Bayes分類方法之外的另一種分類方法:決策樹。

決策樹可以用於分類和迴歸,我們主要學習了分類樹。

我們給出了決策樹的定義、學習過程以及過程詳解,介紹了ID3、C4.5、剪枝三種演算法。

其中,由於篇幅限制,CART演算法(分類與迴歸樹演算法)沒有介紹。

下期我們將學習邏輯迴歸,敬請期待~

05 參考

《統計學習方法》 李航 Chapter5