決策樹和CART決策樹

2021-08-11 20:35:08 字數 1503 閱讀 4030

首先簡單介紹下決策樹:

說到決策樹肯定離不開資訊熵

什麼是資訊熵(不要被這名字唬住,其實很簡單)?

乙個不太可能的時間居然發生了,要比乙個非常可能的時間發生提供更多的資訊。訊息說:「今天早上太陽公升起」。資訊量是很少的,以至於沒有必要傳送。但另一條訊息說:「今天早上日食」。資訊量就很豐富。

概率越大資訊量就越少,與概率成反比1p

i(x)=lo

gp(x

)−1=

−log

p(x)

至於為什麼取log可以看數學之美中的介紹(還有tfidf)我建議不要過多糾結,記住就好。

上面是乙個我們定義乙個事件x=x的自資訊。

我們求的資訊熵,就是所以xi

自資訊的乙個均值。 h(

x)=e

[i(x

)]=−

∑i=n

i=1p

i[lo

g(pi

)],x

[x1,

x2..

..]

h(x)是乙個樣本集,pi 是每一類的自資訊。

id3和c4.5

乙個叫資訊增益,乙個叫資訊增益比。

特徵a資訊增益:就是我樣本集d的資訊熵減去,我用樣本的乙個特徵a去劃分樣本形成的新樣本集d1,d2….每個新小樣本集同樣計算資訊熵。相減得到a的資訊增益。

同樣我們還可以得到特徵b,c。。選取最小的作為節點,形成id3決策樹。

資訊增益比無非除以乙個特徵a值的熵(用特徵a去劃分類(青年,中年,老年就是三類,pi

:p青年

=n青/

n ),和前面一樣算資訊熵 ) 資訊

增益比:

gr=g

(d,a

)ha(

d),h

a(d)

=−∑n

i=1d

idlo

g2di

d,di

=d青,

d中,d

老,d青

=青年的

數量。

選取最小的作為節點,形成c4.5決策樹。

cart決策樹:

這個才是重點,隨機森林一般就是這個樹構建,這是一種二叉樹。它分為分類樹和回歸樹。

分類樹:用基尼指數,這個更加簡單了直接看公式: gi

ni(p

)=1−

∑ip2

i,pi

=did

,一共有

i類同樣我們要算出每個特徵對應的gini係數,跟a的特徵熵類似,用a和a對應的值去劃分資料集,(d1,d2…..)計算每個di的gini係數,di的gini係數計算和d的一抹一樣,只是規模變成了d1,也可能有i個類,找到最優特徵和最優切分點(對應a和a的值)。

決策樹之CART

本系列分享由三篇部落格組成,建議從前往後閱讀學習。決策樹之id3 決策樹之c4.5 決策樹之cart 前面我們講到了決策樹演算法id3,和c4.5。c4.5是在id3的基礎上發展而來的,c4.5還存在的缺陷有 1 c4.5不能解決回歸的問題。2 c4.5需要進行多個對數計算,效率比較低。3 對於離散...

決策樹(CART演算法)

分類問題中,假設有k個類,樣本點屬於第k類的概率為p kp k pk 則概率分布的基尼指數定義為 其中p kp k pk 表示選中的樣本屬於k kk類別的概率,則這個樣本被分錯的概率為 1 pk 1 p k 1 pk 對於給定的樣本集合d,其基尼指數為 這裡的c kc k ck 是d中屬於第k類的樣...

CART決策樹實戰

匯入相關包 import numpy as np import pandas as pd 匯入資料集 from sklearn.datasets import load boston 匯入模型 from sklearn.tree import decisiontreeregressor from s...