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

來源:互聯網
上載者:User

標籤:style   blog   http   color   使用   os   strong   資料   

決策樹(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)在樹構造過程中進行剪枝,在構造決策樹的時候,那些掛著幾個元素的節點,容易導致overfitting。

3)對非離散資料也能處理。能夠對不完整資料進行處理。

決策樹使用於特徵取值離散的情況,連續的特徵一般也要處理成離散的(而很多文章沒有表達出決策樹的關鍵特徵or概念)。實際應用中,決策樹overfitting比較的嚴重,一般要做boosting。分類器的效能上不去,很主要的原因在於特徵的鑒別性不足,而不是分類器的好壞,好的特徵才有好的分類效果,分類器只是弱相關。
決策樹的剪枝決策樹產生演算法遞迴的產生決策樹,知道不能繼續下去為止,這樣產生的決策樹往往對訓練集很準確,但對於未知的測試集資料分類卻不一定有那麼準確,這就是過擬合(overfitting)現象。過擬合的原因在於:學習時過多的最佳化其高訓練集的正確分類,構建的決策樹過於複雜,而要解決這個問題必須簡化決策樹。在書中學習的一種簡單的剪枝演算法:通過極小化決策樹的損失函數(loss function)來實現,



樹的剪枝演算法:輸入(產生演算法產生的整個樹T,參數a),輸出(修剪後的子樹Ta)1)計算每個結點的經驗熵。2)遞迴的從樹的葉子結點向上回縮。假設一組葉子結點回縮到其父節點之前和之後的損失函數值分別是,且則應該進行剪枝,使得該父節點成為新的分葉節點。3)重複2)直至不能繼續為止,得到損失函數最小的子樹Ta。整個演算法可以用動態規划算法實現(DP)?(有待後續進一步考慮)

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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.