決策樹算法原理


一、本文總述

決策樹是機器學習領域最基礎且應用最廣泛的算法模型,本文將詳細介紹決策樹模型的原理,並通過一個案例,着重從特征選擇、剪枝等方面講述決策樹模型的構建,討論並研究決策樹模型評估准則。

二、決策樹的概念

決策樹是附加概率結果的一個樹狀的決策圖,是直觀運用統計概率分析的圖法。機器學習中決策樹是一個預測模型,它表示對象屬性和對象值之間的一種映射,樹中每一個節點表示對象屬性的判斷條件,其分支表示符合節點條件的對象。樹的葉子節點表示對象所屬的預測結果。

三、決策樹案例

 

 

 圖1 .決策樹案例圖

圖1是一棵簡單的決策樹,用於預測貸款用戶是否具有償貸能力。貸款客戶主要具有三個屬性:是否擁有房產、是否結婚、平均月收入。整棵樹分為內部節點和葉子節點,每一個內部節點都用作用戶屬性條件判斷,每一個葉子節點都代表用戶是否具有償還能力。例如:用戶甲沒有房產,沒有結婚,月收入 5K。通過決策樹的根節點判斷,用戶符合右邊分支(擁有房產為“否”);再判斷是否結婚,符合左邊分支(是否結婚為“否”);最后判斷月收入,符合左邊分支(月收入大於4K),該用戶落在“可以償還”的葉子節點上。所以預測用戶具有償還能力。

四、決策樹的構建方法

決策樹的構建主要分為兩步:先通過特征選擇確定樹節點並生成決策樹,再通過剪枝防止過擬合,確定最終的樹結構。

決策樹的目標是將數據集按照對應的類標簽進行分類,理想的情況是通過層層的特征判斷可以給數據集貼上不同的標簽,完成分類。選擇一個合適的特征作為判斷節點,可以加速分類,減少決策樹的深度。也就是說特征選擇的目標是使特征選擇后的數據集具有較高的純度,如何衡量一個數據集的純度,這里就需要引入數據純度函數。下面介紹兩種數據純度函數。

4.1 信息熵

信息熵表示的是不確定度。數據均勻分布時,不確定度最大,信息熵最大。當選擇某個特征對數據集進行分類時,分類后的數據集信息熵會比分類前的小,其差值表示為信息增益。信息增益可以衡量某個特征對分類結果的影響大小。

假設在樣本數據集 D 中,混有 c 種類別的數據。構建決策樹時,根據給定的樣本數據集選擇某個特征值作為樹的節點。在數據集中,可以計算出該數據中的信息熵:

 

 

 圖2  特征作用前數據集的信息熵計算公式

其中 D 表示訓練數據集,c 表示數據類別數,Pi 表示類別 i 樣本數量占所有樣本的比例。

對應數據集 D,選擇特征 A 作為決策樹判斷節點時,在特征 A 作用后的信息熵的為 Info(D),計算如下:

 

 

 圖3  特征作用后數據集的信息熵計算公式

其中 k 表示樣本 D 被分為 k 個部分。

信息增益表示數據集 D 在特征 A 的作用后,其信息熵減少的值。公式如下:

 

 

 圖4  信息增益計算公式

對於決策樹節點最合適的特征選擇,就是 Gain(A) 值最大的特征,即使得信息增益最大的特征

4.2 基尼指數

基尼指數是另一種數據純度度量方法,原是國際上用來計算社會貧富差距的一個指數,基尼指數越高,表示數據越不純,其公式為:

 

 

 圖5 數據集的基尼指數計算公式

其中 c 表示數據集中類別的數量,Pi 表示類別 i 樣本數量占所有樣本的比例。 從該公式可以看出,當數據集中數據混合的程度越高,基尼指數也就越高。當數據集 D 只有一種數據類型,那么基尼指數的值為最低 0。

如果選取的屬性為 A,那么分裂后的數據集 D 的基尼指數的計算公式為:

 

 

 圖6  選取特征A后數據集的基尼指數計算公式

其中 k 表示樣本 D 被分為 k 個部分,數據集 D 分裂成為 k 個 Dj 數據集。

對於特征選取,需要選擇最小的分裂后的基尼指數。也可以用基尼指數增益值作為決策樹選擇特征的依據。公式如下:

 

 圖7  基尼指數增益值計算公式

在決策樹選擇特征時,應選擇基尼指數增益值最大的特征,作為該節點分裂條件。

接下來介紹剪枝。在分類模型的建立過程中,很容易出現過擬合現象。過擬合是指在模型學習訓練過程中,訓練樣本達到非常高的逼近精度,但檢驗樣本的誤差隨着訓練次數增多出現先上升后下降的現象。過擬合時訓練誤差很小,但檢驗誤差很大,不利於實際應用。

決策樹的過擬合現象可以通過剪枝進行一定的修復,剪枝分為預先剪枝和后剪枝兩種。

預剪枝指的是在決策樹生長過程中,通過一定的條件加以限制,使得產生完全擬合的決策樹之前就停止生長。預先剪枝的判斷方法也有很多,比如信息增益小於一定閾值的時候通過剪枝使決策樹停止生長。但如何確定一個合適的閾值也需要一定的依據,閾值太高導致模型擬合不足,閾值太低又會導致模型過擬合。

后剪枝是指在決策樹生長完成之后,按照自底向上的方式修剪決策樹。后剪枝的方式有兩種,一種是用新的葉子節點替換子樹,該節點的預測類由子樹數據集中的多數類決定。另一種用子樹中最長使用的分支替代子樹。預剪枝可能過早的終止決策樹的生長,后剪枝一般能產生更好的效果。但后剪枝在子樹被剪掉后,決策樹生長的一部分計算就被浪費了。

五、決策樹模型的評估

建立了決策樹模型后需要給出該模型的評估值,這樣才可以來判斷模型的優劣。學習算法模型使用訓練集建立模型,使用校驗集來評估模型。本文通過評估指標和評估方法來評估決策樹模型。評估指標有分類准確度、召回率、虛警率和精確度等。而這些指標都是基於混淆矩陣進行計算的。

混淆矩陣是用來評價監督式學習模型的精確性,矩陣的每一列代表一個類的實例預測,而每一行表示一個實際的類的實例。以二類分類問題為例,如下表所示:

表1 混淆矩陣

 

 P(Positive Sample):正例的樣本數量。N(Negative Sample):負例的樣本數量。其中:

TP(True Positive):正確預測到的正例數量,FP(False Positive):錯誤預測到的正例數量

FN(False Negative):錯誤預測到的負例數量,TN(True Negative):正確預測到的負例數量

根據混淆矩陣可以得到評價分類模型的指標有以下幾種:

分類准確度,就是正負樣本被正確分類的概率,計算公式為:

 

 圖8 分類准確度計算公式

召回率,就是正樣本被識別出的概率,計算公式為:

 

 圖9  召回率計算公式

虛警率,就是負樣本被錯誤分為正樣本的概率,計算公式為:

 

 圖10  虛警率計算公式

精確度,就是分類結果為正樣本的情況真實性程度,計算公式為:

 

 圖11  精確度計算公式

評估方法有保留法、隨機二次抽樣法、交叉驗證法和自助法等

保留法(holdout):是評估分類模型性能最常用的一種方法。將被標記的原始數據集分成訓練集和檢驗集兩份,訓練集用於訓練分類模型,檢驗集用於評估分類模型性能。但此方法不適用樣本較小的情況,模型可能高度依賴訓練集和檢驗集的構成。

隨機二次抽樣(random subsampling):是多次重復使用保留法改進分類器評估方法。同樣此方法也不適用訓練數量不足的情況,而且也可能造成有些數據未被用於訓練集。

交叉驗證(cross-validation):指將數據分成數量相同的K份,每次使用數據進行分類時,選擇其中一份作為檢驗集,剩下K-1份作為訓練集,重復K次,正好使每一份數據都被用於一次檢驗集和K-1次訓練集。該方法的優點是盡可能多的數據作為訓練數據,且每一次的訓練集和測試集數據都是相互獨立的且覆蓋整個數據集的,也存在一個缺點,就是分類模型計算了K次,計算開銷比較大。

自助法(bootstrap)是指在其方法中,訓練集數據采用的是有放回的抽樣,即已經選取為訓練集的數據又被放回原來的數據集中,使得該數據能有機會被重新抽取一次,該方法適用於樣本不多的情況,效果非常好。

 

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM