1. 程式人生 > >決策樹模型與學習《一》

決策樹模型與學習《一》

ini 相親 tor ext 測試的 select port RR rand

決策樹模型與學習

1. 定義

一般的,一棵決策樹包含一個根結點,若幹個內部結點和若幹個葉結點;葉結點對應於決策結果,其他每個結點則對應於一個屬性測試;每個結點包含的樣本集合根據屬性測試的結果被劃分到子結點中;跟結點包含樣本全集,從跟結點到每個葉結點的路徑對應一個判定測試序列。

上面的定義可能有些抽象,我隨意畫了一個圖來加深理解;

技術分享圖片

可以看出,該決策樹按照性別、身高、廚藝來構建,對其屬性的測試,在最終的葉結點決定相親對象是否符合男生相親的標準。

2. 基本算法

決策樹的算法通常是一個遞歸的選擇最優特征,並根據該特征對訓練數據進行分割,使得各個子數據有一個最好的分類過程,這一過程對應著特征空間的劃分,也對應著決策樹的構建。目前常見的算法包括 CART (Classification And Regression Tree)、ID3、C4.5、隨機森林 (Random Forest) 等。

技術分享圖片

  1. 開始先構建根節點,將所有訓練數據都放在根節點;
  2. 選擇一個最優特征,按照這一特征將訓練數據分割成子集,使得各個子集有一個在當前條件下最好的分類;
  3. 如果這些子集已經能夠被基本正確分類,那麽構建葉結點,並將這些子集分到所對應的葉結點中去;
  4. 如果還有子集不能被基本正確分類,那麽就對這些子集選擇新的最優特征,繼續對其進行分割,構建相應的結點;
  5. 如此的遞歸下去,直至所有的訓練數據子集被基本正確分類,或者沒有合適的特征為止。最後每個子集都被分到葉結點上,即都有了明確的分類, 這就生成了一顆決策樹。

3. 劃分選擇

決策樹算法的重點在上圖的第八行:“選擇最優劃分屬性”,也就是如何選擇最優劃分屬性,一般而言,隨著劃分的層級不斷增高,我們希望決策樹的分支結點所包含的樣本盡可能的在同一個類別(否則專門為很少數的樣本創建一個分支結點沒啥意義),也就是其的“純度”越來越高。

信息熵則是專門用來表示樣本純度的指標,假定p(xi)表示在當前集合x中第 i 類樣本所占的比例為p(xi),公式如下:

技術分享圖片

其中,熵的值越小,集合x的純度就越高;熵的值越大,隨機變量的不確定性就越大。

技術分享圖片

其中,t是T劃分之後的集合,考慮到不同的分支結點所包含的樣本數目不同,給分支結點賦予權重p(t),即樣本數目越多的分支結點的影響就越大。一般而言,信息增益越大,則意味著使用該屬性劃分所獲得的純度提升就越大(因為H是不變的,所以信息熵就得越小,則純度就越高),因此,我們可用信息增益來進行決策樹的劃分屬性選擇。

決策樹模型與學習《一》