決策樹演算法

2022-09-06 21:54:39 字數 2705 閱讀 2927

在之前的博文裡,推到了kl散度、熵和極大似然的關係,理解了這個其實資訊熵也很好理解。

對於隨機變數\(x\) 有:

\[p(x=x_i) = p_i

\]因此\(x\) 這個隨機分布的熵就是:

\[h(x) = -\sum_^n p_i \log p_i

\]但我們談變數的熵的時候,實際上談的是分布。熵代表的物理意義就是我們需要用多少bit來表達這個分布

很顯然,當分布越複雜,隨機變數\(x\)分布的熵也就越大。可以說熵代表了隨機變數的不確定性

條件熵條件熵\(h(y|x)\) 表示隨機變數\(y\)在隨機變數\(x\)確定的情況下的熵。

\[h(y|x) = \sum_^n p_i h(y|x=x_i)

\]這裡的\(x_i\)就是分類的決定特徵條件。比如西瓜顏色有綠和淺綠,那麼這個條件熵就是按這種特徵劃分後得到的新的樣本集,再計算熵。

注意,這裡的熵中的概率分布,是由極大似然得到的經驗概率,也就是說這裡的熵實際上是經驗熵,條件熵也是經驗條件熵。

\(g(d, a) = h(d) - h(d|a)\)

一般來說,熵 \(h(y)\) 與條件熵\(h(y|x)\) 之差稱為互資訊。

決策樹做的就是最大化資訊增益。

資訊增益演算法
input: 訓練資料集d 和特徵 a

output: 特徵對訓練資料集的資訊增益。

計算資料集d的經驗熵\(h(d)\)

\[h(d)=-\sum_^ \frac\right|} \log _ \frac\right|}

\]計算按照特徵a進行切分的條件經驗熵\(h(d|a)\)

\[h(d \mid a)=\sum_^ \frac\right|} h\left(d_\right)=-\sum_^ \frac\right|} \sum_^ \frac\right|}\right|} \log _ \frac\right|}\right|}

\]計算資訊增益

\[g(d, a)=h(d)-h(d \mid a)

\]通過計算得到每個特徵對訓練集的劃分的資訊增益,挑選出能使資訊增益最大的特徵進行切分。

資訊增益比

這個沒啥好說的,就是變成了比值。

\[g_(d, a)=\frac(d)}

\]id3演算法

就是是特徵增益最大化這一思想反覆進行劃分。注意,葉子結點可以是pure節點,也可以是資訊熵低於閾值的節點。

c4.5演算法

這玩意就是用資訊增益比來劃分的,換湯不換藥。

\]說白了,就是加了乙個\(|t|\) ,也就是葉節點的個數,這個有點像嶺回歸裡的正則項,作用應該就是一樣的,就是降低模型的複雜度。

剪枝演算法

因為剪枝後,葉節點的個數下降,所以剪枝後,可能\(c_(t_) \leq c_(t_)\)

回歸樹生成

就是乙個優化問題,不斷去試劃分點和劃分變數。

\[\min _\left[\min _} \sum_ \in r_(j, s)}\left(y_-c_\right)^+\min _} \sum_ \in r_(j, s)}\left(y_-c_\right)^\right]

\]這裡用的還是最小二乘法實現,所以這個樹就是二叉樹。

分類樹實現

因為cart樹是二叉樹,所以對於離散變數的劃分就是是和否的關係。

這裡用的是基尼係數作為劃分的依據,而不是資訊增益。

可以看到基尼指數定義就很簡單:\(1-\sum_^k p_k^2\)

這裡這張圖可以看到,分布越隨機,即p=0.5,基尼係數也就達到了越大。

對於分類樹,很簡單就是去計算每個特徵的基尼指數,挑選出基尼指數最小的那個特徵用做劃分特徵。

就是把資訊增益換成了基尼指數,換湯不換藥。

cart的剪枝會剪出多個子樹的,所以需要進一步去驗證,找到最佳子樹。

決策樹演算法

決策樹是一種樹型結構,其中每個內部結點表示在乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉結點代表一種類別。決策樹學習是以例項為基礎的歸納學習,採用的是自頂向下的遞迴方法,其基本思想是以資訊熵為度量構造一棵熵值下降最快的樹,到葉子結點處的熵值為零,此時每個葉節點中的例項都屬於同一類。決策樹學習演...

決策樹演算法

本文主要介紹id3 c4.5和cart演算法 決策樹起源於概念學習系統 cls 概念學習模型 是乙個事先定義的範疇集合和一些有關例子是否落入給定範疇的判定 概念學習的主要任務 是判斷所給定事物的屬性或特性,並且正確地區分這些事物,將其劃分到某乙個範疇 對於如下決策樹模型 我們首先考慮他的屬性outl...

決策樹演算法

引 最近老師布置了課堂展示的作業,主題是決策樹,老師還舉了買西瓜的決策例子,感覺貼近生活也很有意思。在這之前沒有了解過這個概念,通過幾個禮拜的學習收穫不少。一 首先,什麼是決策樹?個人而言,決策樹就是將人在做決策時的思維脈絡以樹的形式展示出來的產物,即決策的過程模型。這是一棵去不去打高爾夫球的決策樹...