ML經典算法:決策樹(1)

        決策樹 (decision tree ,或稱判定樹)是一類常見的機器學習方法,其核心思想是通過構建一個樹狀模型來對新樣本進行預測。樹的葉結點是預測結果,而所有非葉結點皆是一個決策過程。


1. 簡介

先看下週志華的西瓜書中所舉的例子:
        如,我們要對"這是好瓜嗎?“這樣的問題進行決策時,通常會進行一系列的判斷或"子決策"我們先看"它是什麼顏色?”,如果是"青綠色",則我們再看"它的根蒂是什麼形態?",如果是"蜷縮",我們再判斷"它敲起來是什麼聲音?",最後?我們得出最終決策:這是個好瓜.這個決策過程如圖 所示:
        在這裏插入圖片描述
        顯然決策過程的最終結論對應了"是"或"不是"好瓜;決策過程中提出的每個判定問題都是對某個屬性的"測試",例如"色澤=?" “根蒂:?”;每個測試的結果或是導出最終結論,或是導出進一步的判定問題,其考慮範圍是在上次決策結果的限定範圍之內,例如若在"色澤=青綠"之後再判斷"根蒂=?",則僅在考慮青綠色瓜的根蒂。

        一般的,一棵決策樹包含一個根結點、若干個內部結點和若干個葉結點;葉結點對應於決策結果,其他每個結點則對應於一個屬性測試;每個結點包含的樣本集合根據屬性測試的結果被劃分到子結點中;根結點包含樣本全集.從根結點到每個葉結點的路徑對應了一個判定測試序列。
        決策樹學習的目的是爲了產生一棵泛化能力強,即處理未見示例能力強的決策樹,其基本流程遵循簡單且直觀的"分而治之" (divide-and-conquer)策略,如下圖所示.
在這裏插入圖片描述
        在上圖所展示的決策樹基本算法中,可以看到決策樹的生成是一個遞歸過程.在決策樹基本算法中,有三種情形會導致遞歸返回: (1) 當前結點包含的樣本全屬於同一類別,無需劃分; (2) 當前屬性集爲空,或是所有樣本在所有屬性上取值相同,無法劃分; (3) 當前結點包含的樣本集合爲空,不能劃分.

2. 劃分選擇

        決策樹學習的關鍵是如何選擇最優劃分屬性一般而言,隨着劃分過程不斷進行,我們希望決策樹的分支結點所包含的樣本儘可能屬於同一類別,即結點的"純度" (purity)越來越高.

2.1 信息增益(決策樹ID3算法)

        我們可以以信息增益(information gain)爲準則來選擇劃分屬性,信息增益越大,則意味着使用屬性 α 來進行劃分所獲得的"純度提升"越大。
        假定離散屬性 α 有 V 個可能的取值 {α1 , α2. …, αv},若使用 α 來對樣本集D 進行劃分,則會產生 V 個分支結點,其中第 u 個分支結點包含了 D 中所有在屬性 α 上取值爲 α" 的樣本記爲 Du. 先計算出 Du的信息熵(下面會介紹),再考慮到不同的分支結點所包含的樣本數不同,給分支結點賦予權重 IDuI / IDI ,即樣本數越多的分支結點的影響越大,於是可計算出用屬性 α 對樣本集 D 進行劃分所獲得的"信息增益",公式如下:
        在這裏插入圖片描述
        其中Ent(D)爲"信息熵" (information entropy),信息熵是度量樣本集合純度最常用的一種指標。假定當前樣本集合 D 中第 k 類樣本所佔的比例爲 Pk (k = 1,2,. . . , IYI) , D的信息熵定義爲:Ent(D)
在這裏插入圖片描述           在這裏插入圖片描述            在這裏插入圖片描述
        Ent(D) 的值越小,則 D 的純度越高. 可以看到下圖爲log2曲線,D越純表明某些概率P很大,而log2P越大(負數),最後 -Plog2P越小。
        在這裏插入圖片描述

2.2 增益率(C4.5 決策樹算法 )

        上面介紹了信息增益來進行屬性劃分,但有些時候,某些屬性對預判結果的準確性沒有很大影響,但卻會因爲某些原因有很大的信息增益,如樣本編號,每個樣本編號僅包含一個樣本,導致計算出來的信息增益很大,但樣本編號和判定結果卻沒有什麼聯繫。
實際上,信息增益準則對可取值數目較多的屬性有所偏好,爲減少這種偏好可能帶來的不利影響,著名的 C4.5 決策樹算法使用"增益率" (gain ratio) 來選擇最優劃分屬性,增益率定義爲:
        在這裏插入圖片描述
其中:
        在這裏插入圖片描述
        IV(a) 稱爲屬性 α 的"固有值",屬性 α 的可能取值數目越多(即 V 越大),則 IV(α) 的值通常會越大。
        因此爲了更好地劃分屬性,先從候選劃分屬性中找出信息增益高於平均水平的屬性,再從中選擇增益率最高的。

2.3 基尼指數(CART 決策樹算法)

        屬性 α 的基尼指數定義爲:
        在這裏插入圖片描述
        將基尼指數最小的屬性作爲最優劃分屬性。
        其中Gini(D) 爲基尼值,數據集 D 的純度可用基尼值來度量:
        在這裏插入圖片描述
        Gini(D) 反映了從數據集 D 中隨機抽取兩個樣本,其類別標記        不一致的概率.因此, Gini(D) 越小,則數據集 D 的純度越高。

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