1. 程式人生 > >監督式學習 -- 分類決策樹(一)

監督式學習 -- 分類決策樹(一)

cte 求解 分支 基本概念 tracking 它的 解決 mat 這就是

決策樹(decision tree)是一種基本的分類與回歸方法。

其表示的樹型結構,能夠覺得是if-else規則的集合。基本的長處是分類可讀性好,速度快。

一般會有三個步驟:特征選擇、決策樹的生成和決策樹的修剪

技術分享

決策樹由結點(node)和有向邊(directed edge)組成。結點有兩類:內部結點(表示一個特征或者屬性)和葉節點(表示一個類或者決策結果)。決策樹學習樣本集,學習的目標是依據給定的訓練數據集構建決策樹模型。可以對測試集以及實例進行正確的分類。通常默認。訓練集和測試集擁有同樣或近似的分布概率模型。

技術分享

從全部可能的決策樹中選取最優決策樹是NP全然問題,所以通常採用啟示式方法。近似求解這一最優問題。得到的決策樹是次最優(sub-optimal)。

因為決策樹表示一個條件概率分布,所以深淺不同的決策樹相應復雜度不同的概率模型。決策樹的生成僅僅考慮局部最優(貪心算法),決策樹的剪枝則考慮全局最優。


信息增益和信息增益率

特征選取在於選擇對訓練數據集具有分類能力的特征,這樣能夠提高決策樹的學習效率。

假設一個特征進行分類的結果與隨機分類的結果沒有非常大的差別,那這個特征的分類能力非常差或者差點兒沒有。

1)信息熵

信息熵是信息論中的基本概念。信息論由Shannon於1948年提出並發展起來,用於解決信息傳遞過程中的問題,也稱統計通信理論。它覺得:

1、信息傳遞由信源、信道和信宿組成。

2、傳遞系統存在於一個隨機幹擾環境中,因此傳遞系統對信息的傳遞是隨機誤差的。假設把發送信息記為U而接收到信息記 V,由信道可記為通信模型。為P(U|V)。

信道模型是一個條件概率矩陣P(U|V)。

在實際通信前。信宿信源會發出什麽信息不可能知道。稱為信宿對信源狀態具有不確定性,因為這樣的不確定性是發生在通信之前的。故稱為先驗不確定性

在收到信息後的不確定性。稱為後驗不確定性

技術分享

技術分享

信息是指對不確定性的消除。

Shannon 借鑒了熱力學的概念,把信息中排除了冗余後的平均信息量稱為“信息熵”。並給出了計算信息熵的數學表達式。變量的不確定性越大,熵也就越大,把它搞清楚所須要的信息量也就越大。

技術分享

信息熵是信息論中度量信息量的一個概念。

一個系統越有序,它的信息熵越小;反之。一個混亂的系統信息熵越大。能夠覺得,信息熵是系統有序化程度的一個度量。

技術分享

2)信息增益

信息熵又稱為先驗熵,是在信息發送前信息量的數學期望。後驗熵指在信息發送後,從信宿角度對信息量的數學期望。一般先驗熵大於後驗熵,先驗熵與後驗熵估差,即所謂的信息增益,反映的是信息消除隨機不確定性的程度。

決策樹學習中的信息增益等價於訓練集中類與特征的互信息。

表示因為特征A而導致訓練集不確定性的降低量。信息增益也。特征A對訓練集D的信息增益g(D, A)。定義為集合D的經驗熵H(D)與特征A給定條件下的經驗條件熵H(D|A)之差:技術分享

技術分享

3)信息增益率

信息增益值得大小是相對訓練集而言。並沒有絕對的意義。

舉一個樣例。火車的速度能在9s內從10m/s加速到100m/s,可是如今有一輛摩托車能在1s內從1m/s加速到11m/s,盡管加速後摩托車的速度不如火車,可是它擁有和火車等同的加速能力!

在訓練集的經驗熵大的時候,信息增益值也會偏大,反之信息增益值會偏小。不能反映真實的不確定改善能力。使用信息增益率(information gain ratio)能夠對這一問題進行校正。

特征A對訓練集D的信息增益率gainRatio(D, A)。定義為其信息增益g(D, A)與訓練數據集D的經驗熵H(D)之比:

技術分享

技術分享


決策樹學習之ID3算法

ID3算法是決策樹算法的一種。想了解什麽是ID3算法之前。我們得先明確一個概念:奧卡姆剃刀(Occam‘sRazor, Ockham‘s Razor),是由14世紀邏輯學家、聖方濟各會修士奧卡姆的威廉(William of Occam,約1285年至1349年)提出。他在《箴言書註》2卷15題說“切勿浪費較多東西。去做‘用較少的東西,相同能夠做好的事情’。簡單點說。便是:be simple。因此。越是小型的決策樹越優於大的決策樹(be simple簡單理論)。

ID3算法的實現思想:

1)自頂向下貪婪遍歷決策樹空間以構造決策樹。

2)計算單獨特征屬性分類訓練樣本集的能力,選取分類能力最好的一個屬性(最佳屬性)作為決策樹的根節點,以此表示該屬性相比其他屬性擁有更強的區分能力。

3)對於根節點屬性可能產生的每一種可能構建一個分支,再次遍歷樣本集將其劃分到不同分支。

4)遞歸的對每一個分支反復2)、3)。直到出現葉子節點。也即分支下僅僅有預測的結果。

ID3相當於用極大似然法進行概率模型的選擇。


C4.5算法:ID3算法的改進

既然說C4.5算法是ID3的改進算法,那麽C4.5相比於ID3改進的地方有哪些呢?

1)用信息增益率來選擇屬性。ID3選擇屬性用的是子樹的信息增益。這裏能夠用非常多方法來定義信息,ID3使用的是熵(entropy。熵是一種不純度度量準則)。也就是熵的變化值,而C4.5用的是信息增益率。

對,差別就在於一個是信息增益,一個是信息增益率。

2)在樹構造過程中進行剪枝。在構造決策樹的時候,那些掛著幾個元素的節點,easy導致overfitting。

3)對非離散數據也能處理。可以對不完整數據進行處理。

決策樹使用於特征取值離散的情況,連續的特征一般也要處理成離散的(而非常多文章沒有表達出決策樹的關鍵特征or概念)。實際應用中。決策樹overfitting比較的嚴重,一般要做boosting。分類器的性能上不去。非常基本的原因在於特征的鑒別性不足,而不是分類器的好壞,好的特征才有好的分類效果。分類器僅僅是弱相關。
決策樹的剪枝 決策樹生成算法遞歸的產生決策樹,知道不能繼續下去為止,這樣產生的決策樹往往對訓練集非常準確,但對於未知的測試集數據分類卻不一定有那麽準確,這就是過擬合(overfitting現象。過擬合的原因在於:學習時過多的優化其高訓練集的正確分類,構建的決策樹過於復雜。而要解決問題必須簡化決策樹 在書中學習的一種簡單的剪枝算法:通過極小化決策樹的損失函數(loss function)來實現, 技術分享
技術分享
技術分享
技術分享
樹的剪枝算法:輸入(生成算法產生的整個樹T,參數a),輸出(修剪後的子樹Ta) 1)計算每一個結點的經驗熵。 2)遞歸的從樹的葉子結點向上回縮。 如果一組葉子結點回縮到其父節點之前和之後的損失函數值各自是技術分享。且技術分享 則應該進行剪枝,使得該父節點成為新的葉節點。

3)反復2)直至不能繼續為止,得到損失函數最小的子樹Ta。 整個算法能夠用動態規劃算法實現(DP)?(有待興許進一步考慮)

總結:主要是一些決策樹學習的基礎知識,興許深入學習必需要代碼,動手實現才是王道。 camefrom:魚萌_幸福路

監督式學習 -- 分類決策樹(一)