第四章 決策樹

第四章 決策樹

基本思想

決策樹是基於樹結構來進行決策的,這正是人類在面臨決策問題時一種很自然的處理機制

一般的,一顆決策樹包含一個根節點、若干個內部節點和若干個葉節點;葉節點對應於決策結果,其他的每個節點則對應於一個屬性測試;每個節點包含的樣本集合根據屬性測試的結果被劃分到子節點中;根節點包含樣本全集。

Wikipedia: A decision tree is a flowchart-like structure in which each internal node represents a “test” on an attribute (e.g. whether a coin flip comes up heads or tails), each branch represents the outcome of the test and each leaf node represents a class label (decision taken after computing all attributes). The paths from root to leaf represents classification rules.

Example:

Decision Tree

度量值

信息熵(Information Entropy)

信息熵是度量樣本集合純度最常用的一種指標

Wikipedia: Information entropy is a concept from information theory. It tells how much information there is in an event. In general, the more uncertain or random the event is, the more information it will contain. The concept of information entropy was created by mathematician Claude Shannon.

假定當前樣本集合D中第k類樣本所佔的比例爲pk(k=1,2,,|y|) ,則D的信息熵定義爲

Entropy(D)=k=1|y|(pk·log2pk)

Entropy(D) 的值越小,則D的純度越高

信息增益(Information Gain)

信息增益爲總的熵減去某個分類標準對應的熵

假定屬性a有V個可能的取值{a1,a2,a3,,aV} ,若使用a來對樣本集合D進行劃分,可以的到V個樣本子集{D1,D2,D3,,DV} ,每個樣本子集對應到一個分支節點上,考慮到不同分支節點樣本數量不同,我們給每個子節點定義權重|Dv|/|D| ,於是我們可以計算出用屬性a對D進行劃分所獲的的信息增益

Gain(D,a)=Entropy(D)v=1V|Dv||D|Entropy(Dv)

一般而言,信息增益越大,則表明使用屬性a來劃分所獲得的純度提升越大。

選擇屬性時的目標函數

a=arg maxaA Gain(D,a)

增益率(Gain Ratio)

信息增益有一個缺點,它對取值數目較多的屬性有所偏好,爲了減少這種偏好的影響,我們引入增益率

Gain ratio(D,a)=Gain(D,a)IV(a)

其中
IV(a)=v=1V|Dv||D|·log2|Dv||D|

IV(a) 稱爲屬性a的固有值(Intrinsic value)屬性a的可能取值越多,那個IV(a) 的值通常越大

Note! 增益率準則對可取值數目較少的屬性有所偏好,因此實際中,我們先從候選劃分屬性中找出信息增益高於平均水平的屬性,再從中選出增益率最高的

基尼指數(Gini Index)

數據集D的純度可以用基尼指數來度量,定義如下

Gini(D)=k=1|y|kkpkpk=1k=1mp2k

Gini(D)反應了從數據集中隨機抽取兩個樣本,其類別標記不一致的概率

屬性a的基尼指數定義爲

Gini(D,a)=v=1V|Dv||D|Gini(Dv)

選擇屬性時的目標函數
a=arg minaA Gini(D,a)

剪枝處理

預剪枝

決策樹從根節點開始以上文介紹的度量值爲依據往外分枝延伸,分別計算分枝前和分枝後的驗證集精度,然後判斷是否分枝

優缺點:預剪枝可以有效降低過擬合的風險,還顯著減少了決策樹訓練時間開銷和測試時間開銷,但是基於“貪心”使得某些分枝不能展開(後續展開可能導致性能顯著提升的分枝),從而存在欠擬合的風險

後剪枝

決策樹從根節點開始以上文介紹的度量值爲依據往外分枝延伸,生成整棵決策樹,然後至底向上對各節點考慮是否要分枝

優缺點:能避免前欠擬合,但是訓練開銷較大

連續屬性處理

當我們遇到屬性值爲連續數值時,我們可以利用連續屬性離散化技術

Discrete Continue

給定樣本D和連續屬性a,假定a在D上出現n個不同的取值,將這些值從小到大排序,記爲{a1,a2,,an} , 基於劃分點t可以將集合D分爲D+t,Dt ,在區間[ai,ai+1] 中任意取值t對劃分的結果沒有影響,故我們可以選取劃分點集合如下

Ta={ai+ai+12|1in1}

然後我們就能像離散值一樣來考慮這些劃分點並選取最優劃分點,選取依據爲
Gain(D,a)=maxtTa Gain(D,a,t)=maxtTa Entropy(D)λ{+,}|Dλt||D|Entropy(Dλt)

Note! 與離散屬性不同,若當前節點劃分屬性爲連續屬性,該屬性還可作爲其後代節點的劃分屬性

缺失值處理

現實中我們經常會遇到數據存在缺失值的狀況,如果直接把存在缺失值的數據給去除掉,那麼我們的樣本集合往往會受到較大影響,並且這樣做對數據造成了很大的浪費。

數據缺失例子

編號 屬性1 屬性2 標籤
1 A 1 N
2 - 2 Y
3 A - N
4 B 3 Y

劃分屬性的選擇

給定數據集D和屬性a,令D̂  表示D屬性a上沒有缺失值的樣本子集,假定a有V個可取值{a1,a2,...aV} ,令D̂ v 表示D̂  中在屬性a上取值爲av 的樣本子集,D̂ k 表示D̂  中屬於第k(k=1,2,3,,|y|) 類的樣本子集,假定我們爲每一個樣本x 賦予一個權重wx

據此我們定義如下變量

無缺失值樣本所佔比例

ρ=xD̂ wxxDwx

無缺失樣本中第k類所佔比例
pk^=xD̂ kwxxD̂ wx (1k|y|)

無缺失樣本中在屬性a上取值av 的樣本所佔的比例
r̂ v=xD̂ vwxxD̂ wx (1vV)

從而我們得到新的信息增益計算公式
Gain(D,a)=ρ×Gain(D̂ ,a)=ρ×(Entropy(D̂ )v=1Vr̂ vEntropy(D̂ v))

其中
Entropy(D̂ )=k=1|y|p̂ k·log2p̂ k

樣本的劃分

  1. 若樣本x 在劃分屬性a上的屬性已知,則將樣本x 劃分入與其取值對應的子節點中,並保持權值不變
  2. 若樣本x 在劃分屬性a上的屬性未知,則將樣本x 同時劃分入所有子節點中,且樣本權值在與屬性av 對應的子節點中更新爲r̂ ·wx

多變量決策樹

在n維空間考慮決策樹可知,決策樹的分類邊界是由與若干個座標軸平行的分段組成的,這樣的分類邊界能使學習結果有較好的解釋性,但是在現實問題中,分類邊界往往比較複雜,必須得用很多分段才能描述

爲此引入多變量決策樹,在這類決策樹中,非葉節點不再是針對某個屬性,而是針對屬性的線性組合進行測試,爲此能使用斜的分類邊界,每個非葉節點是一個形如ni=1wiai=t 的線性分類器

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