分類——決策樹模型

RUCmatthew發表於2020-10-23

在分類問題中,表示基於特徵對例項進行分類的過程,可以認為是if-then的集合,也可以認為是定義在特徵空間與類空間上的條件概率分佈。
決策樹是一種預測模型,對未標識的例項進行分類;也是一種描述性模型,標識哪些誒特在可以將例項從不同類裡區分不來。決策樹分類器是基於資訊熵的學習。決策樹學習的本質:從訓練集中歸納出一組分類規則,或者說是由訓練資料集估計條件概率模型。決策樹原理和問答判斷相似,根據一系列資料,判斷是否,然後給出問題答案。因此決策樹分類器的可解釋性質較好。

決策樹學習用損失函式表示這一目標,其損失函式通常是正則化的極大似然函式,決策樹學習的策略是以損失函式為目標函式的最小化。

樹:
樹有三種型別的節點

  1. 根節點
  2. 內部節點
  3. 葉子節點
    樹的節點包含一個資料元素及若干指向其子樹的分支。節點擁有的子樹數稱為結點的度(Degree)。度為0的結點稱為葉子節點(Leaf)或終端節點。度不為0的節點稱為非終端節點或分支節點。除根節點之外,分支節點也稱為內部節點。樹的度是樹內各節點的度的最大值。
    在這裡插入圖片描述

資訊熵:
X 資訊熵定義為資訊的期望值。
資訊熵就是用來衡量一個隨機變數取值的不確定性的一個指標,資訊熵越大則不確定性越大,資訊熵越小則不確定性也就越小。
假設一個隨機變數X的概率分佈如下:
在這裡插入圖片描述

p ( x i ) 是選擇該分類的概率,n為分類數目,隨機變數X的資訊熵的計算公式如下:
在這裡插入圖片描述

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-LTW2Y3dB-1603437684841)(C:\Users\RUCchen\AppData\Roaming\Typora\typora-user-images\image-20201023103353676.png)]

條件熵:
設二維隨機變數(X, Y)的概率分佈為:
在這裡插入圖片描述
隨機變數X給定條件下隨機變數Y的條件熵表示為H(Y|X),已知隨機變數X的情況下隨機變數Y的不確定性,給定X的條件下隨機變數Y的熵對於X的期望值,其定義如下:
在這裡插入圖片描述
當熵和條件熵中的概率由資料估計(特別是極大似然估計)得到時,所對應的分別為經驗熵和經驗條件熵,此時如果有0概率,令0*log0 = 0。
資訊增益
給定X的能夠使隨機變數Y的確定性增加的程度。對於特徵a對於資料集D的資訊增益是g(D,a),定義為在集合D的資訊熵H(D)和特徵a給定條件下D的經驗條件熵H(D|a)之差,即:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-HXE4Ywse-1603437684844)(C:\Users\RUCchen\AppData\Roaming\Typora\typora-user-images\image-20201023103921618.png)]

顯然,對於資料集D而言,資訊增益依賴於特徵,不同的特徵往往具有不同的資訊增益,資訊增益大的特徵具有更強的分類能力。根據資訊增益準則的特徵選擇方法:對訓練資料集(或子集)D,計算其每個特徵的資訊增益,並比較它們的大小,選擇資訊增益最大的特徵。

1.先計算資訊熵 2.算特徵下的的條件熵 3.算資訊增益

資訊增益率

資訊增益值的大小是相對於訓練資料集而言的,並沒有絕對意義。在訓練資料集的資訊熵大的時候,資訊增益值會偏大。反之,資訊增益值會偏小。使用資訊增益率(information gain ratio)可以對這一問題進行校正。

基尼係數

基尼指數是另一個選擇的標準,代表了從樣本中任意選擇兩個樣本,類別不一致的概率,所以基尼指數越小,代表樣本純度越高。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-rI7aUZTm-1603437684845)(C:\Users\RUCchen\AppData\Roaming\Typora\typora-user-images\image-20201023112747978.png)]

屬性a的基尼指數定義為屬性a各類樣本比率的基尼指數和:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片儲存下來直接上傳(img-SS0zbLnH-1603437684847)(C:\Users\RUCchen\AppData\Roaming\Typora\typora-user-images\image-20201023112831745.png)]

構建決策樹

決策樹學習的演算法通常是一個遞迴地選擇最優特徵,並根據該特徵對訓練資料進行分割,使得各個子資料集有一個最好的分類的過程。
1) 開始:構建根節點,將所有訓練資料都放在根節點,選擇一個最優特徵,按著這一特徵將訓練資料集分割成子集,使得各個子集有一個在當前條件下最好的分類。
2) 如果這些子集已經能夠被基本正確分類,那麼構建葉節點,並將這些子集分到所對應的葉節點去。
3)如果還有子集不能夠被正確的分類,那麼就對這些子集選擇新的最優特徵,繼續對其進行分割,構建相應內部節點,如果遞迴進行,直至所有訓練資料子集被基本正確的分類,或者沒有合適的特徵為止。
4)每個子集都被分到葉節點上,即都有了明確的類,這樣就生成了一顆決策樹。

如何決定什麼時候停止分支呢?

我們可以這樣設定,當某個節點的資訊熵小於某個閾值時我們就停止對這個節點的分支操作,那麼此節點也就成為了葉子節點。
最終我們需要確定每個葉子結點的類別,即葉子結點中的樣本集中,佔比最大的那一個類別便是當前葉子節點的類別,當新來一個樣本我們只需要按照決策樹從頂層向下逐步判斷,看樣本最終落入那個葉子結點,所落入的葉子結點的類別便是當前樣本的預測類別。

ID3演算法

在決策樹各個結點上應用資訊增益準則選擇特徵,遞迴地構建決策樹。具體方法是:從根結點開始,對結點計算所有可能的特徵的資訊增益,選擇資訊增益最大的特徵作為根結點的特徵,由該特徵的不同取值建立子結點。之後,對子結點遞迴地呼叫以上方法,構建決策樹,直到所有特徵的資訊增益均很小或沒有特徵可以選擇為止,最終得到一個決策樹。ID3相當於用極大似然法進行概率模型的選擇

輸入:訓練資料集合D,特徵集A,閾值ϵ

輸出:決策樹T

1.若D中所有例項屬於同一類Ck則T為單結點樹,並將類Ck作為該結點的類標記,返回決策樹T

2.若A是空集,T為單節點樹,並將D的例項樹最大的類Ck作為該節點的類標記,返回決策樹

3.否則,計算A各特徵對D的資訊增益,選擇資訊增益最大的特徵a

4.如果a的資訊增益小於閾值ϵ,則T為單節點數,將D裡的例項樹最大的類Ck作為該節點

5.否則對於a的每一個可能值a*,按照a=a*將D分割為若干非空子集Dv,將Dv裡的例項數最大的類作為該節點,構建子節點,由節點和子節點構成決策樹T,返回決策樹T。

6.對第 v個子結點,以Dv為訓練集,以A−{a}為特徵集,遞迴地呼叫第(1)步~第(5)步,得到子樹T

C4.5演算法

C4.5決策樹演算法不直接使用資訊增益來選擇劃分屬性,而是使用資訊增益率來選擇最優劃分屬性。

資訊增益率越大就優先變成為節點。

評價

引數學習:先假定資料屬於一定的分佈,然後再進行操作

非引數學習:不做先驗假設

決策樹演算法:

屬於非引數學習;有強的解釋力;計算效率不一定高;

在訓練資料集合具有相關性(比如多重共線性)則不用決策樹模型;

決策樹模型對於處理移失值具有優勢(利用基於概率的切分方法、基於替換的切分方法等)

非引數學習:不做先驗假設

決策樹演算法:

屬於非引數學習;有強的解釋力;計算效率不一定高;

在訓練資料集合具有相關性(比如多重共線性)則不用決策樹模型;

決策樹模型對於處理移失值具有優勢(利用基於概率的切分方法、基於替換的切分方法等)

相關文章