首先簡單介紹下決策樹:
說到決策樹肯定離不開資訊熵
什麼是資訊熵(不要被這名字唬住,其實很簡單)?
乙個不太可能的時間居然發生了,要比乙個非常可能的時間發生提供更多的資訊。訊息說:「今天早上太陽公升起」。資訊量是很少的,以至於沒有必要傳送。但另一條訊息說:「今天早上日食」。資訊量就很豐富。
概率越大資訊量就越少,與概率成反比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...