決策樹是一種判別式模型。在一顆分類決策樹中,非葉子節點時決策規則,葉子節點是類別。當輸入乙個特徵向量時,按照決策樹上的規則從根節點向葉節點移動,最後根據葉節點的類別判定輸入向量的類別。決策樹也可以用來解決回歸問題。
建立乙個決策樹模型主要有三個步驟:特徵選擇、決策樹的生成、決策樹的剪枝。而特徵選擇時要用到資訊增益這個概念。
特徵選擇:
對於乙個隨機變數x,它的熵可以表示為:
對於兩個隨機變數x、y,在已知x的情況下,y的條件熵為:
其中,而資訊增益(ig)或互資訊(mi)的定義是:
也就是說在已知a的情況下隨機變數d的不確定性的減少程度,也就是在我們知道a的情況下獲得了多少資訊。
如果d是資料類別的隨機變數,而a是資料某個特徵的隨機變數,可以想見使得資訊增益最大的特徵是最好的特徵。因為這個特徵可以最大程度上減少我們對類別的不確定性。
所以在決策樹模型中,使用資訊增益來進行每一層的特徵選擇。
決策樹的生成:
在特徵選擇的方案確定之後,建立決策樹的過程就很簡單了:首先根節點是所有類別;選擇使得資訊增益最大的特徵對根節點進行劃分,生成若干個子節點;遞迴的進行上述過程。
在建立決策樹的過程中要設定終止條件,乙個顯而易見的終止條件是某個節點內的資料屬於同一類,其他的如資訊增益小於某個閾值等。當葉節點內的資料類別不一致時,使用該節點內類別的眾數作為該葉節點的類別,這也是經驗風險最小的結果。
決策樹的剪枝:
如果決策樹的層次很深、葉子節點很多的話,那麼會對訓練資料有很好的分類結果。試想一種極端的情況是每個葉節點只有乙個訓練資料,那麼該模型對訓練資料的分類誤差是0。決策樹的層次越高,或者決策樹的葉節點越多,模型也就越複雜,越容易產生過擬合。跟其他的機器學習方法一樣,這時需要進行正則化,也就是對決策樹的模型複雜度進行懲罰。
設決策樹t的葉節點個數是|t|,t是t的葉節點,該節點有nt個樣本,其中屬於第k類的有ntk個。ht(t)為節點t上的經驗熵(提到經驗就是只跟訓練資料有關),其計算方法跟上面熵的定義相同。
則決策樹的學習損失函式定義為:
在公式的右半部,第一項表示模型對訓練資料的誤差,第二項是模型的複雜度,a是兩者之間的平衡因子。根據該損失函式就可以訓練出結構風險最小的決策樹了。
上面是最簡單的決策樹的建模過程,下面簡單提一下隨機森林的概念:節選自
隨機森林:
隨機森林顧名思義,是用隨機的方式建立乙個森林,森林裡面有很多的決策樹組成,隨機森林的每一棵決策樹之間是沒有關聯的。在得到森林之後,當有乙個新的輸 入樣本進入的時候,就讓森林中的每一棵決策樹分別進行一下判斷,看看這個樣本應該屬於哪一類(對於分類演算法),然後看看哪一類被選擇最多,就**這個樣本 為那一類。
在建立每一棵決策樹的過程中,有兩點需要注意 -取樣與完全**。首先是兩個隨機取樣的過程,random forest對輸入的資料要進行行、列的取樣。對於行取樣,採用有放回的方式,也就是在取樣得到的樣本集合中,可能有重複的樣本。假設輸入樣本為n個,那 麼取樣的樣本也為n個。這樣使得在訓練的時候,每一棵樹的輸入樣本都不是全部的樣本,使得相對不容易出現over-fitting。然後進行列取樣,從m 個feature中,選擇m個(m << m)。之後就是對取樣之後的資料使用完全**的方式建立出決策樹,這樣決策樹的某乙個葉子節點要麼是無法繼續**的,要麼裡面的所有樣本的都是指向的同一 個分類。一般很多的決策樹演算法都乙個重要的步驟 - 剪枝,但是這裡不這樣幹,由於之前的兩個隨機取樣的過程保證了隨機性,所以就算不剪枝,也不會出現over-fitting。
按這種演算法得到的隨機森林中的每一棵都是很弱的,但是大家組合起來就很厲害了。我覺得可以這樣比喻隨機森林演算法:每一棵決策樹就是乙個精通於某乙個窄領域 的專家(因為我們從m個feature中選擇m讓每一棵決策樹進行學習),這樣在隨機森林中就有了很多個精通不同領域的專家,對乙個新的問題(新的輸入數 據),可以用不同的角度去看待它,最終由各個專家,投票得到結果。
隨機森林是乙個最近比較火的演算法,它有很多的優點:
1. 在資料集上表現良好;
2. 在當前的很多資料集上,相對其他演算法有著很大的優勢;
3. 它能夠處理很高維度(feature很多)的資料,並且不用做特徵選擇;
4. 在訓練完後,它能夠給出哪些feature比較重要;
5. 在建立隨機森林的時候,對generlization error使用的是無偏估計;
6. 訓練速度快;
7. 在訓練過程中,能夠檢測到feature間的互相影響;
8. 容易做成並行化方法;
9. 實現比較簡單。
決策樹資訊增益
決策樹和整合演算法都是樹模型 決策樹 從根節點一步步走到葉子節點,所有的資料都會落到葉子節點,既可以做分類也可以做回歸。一顆樹有三種節點組成,根節點,中間幾點,葉子節點。根節點是第乙個選擇節點,也是最重要的乙個選擇特徵。葉子節點是存放最終的結果。決策樹的訓練和測試 訓練是建立一棵樹。測試是讓資料從根...
最大資訊熵增益 決策樹與資訊增益
今天我們開始介紹決策樹。它既可以用於分類,也可以用於回歸。這裡我們主要介紹更加常見的分類用法。概念決策樹,顧名思義,它的形狀類似於一棵樹,我們可以簡單把它畫出來 如上圖,最上面的乙個點我們叫它根節點 root node 最下面不再進行分類的點我們叫它葉節點 leaf node 決策樹的分類過程是這樣...
決策樹 資訊熵增益
from math import log import operator defcreatedateset dataset 青年 否 否 一般 否 青年 否 否 好 否 青年 是 否 好 是 青年 是 是 一般 是 青年 否 否 一般 否 中年 否 否 一般 否 中年 否 否 好 否 中年 是 是 ...