5 4 決策樹 C4 5決策樹的生成演算法

2021-10-04 06:31:30 字數 1647 閱讀 9437

c4.5演算法對id3做了改進,使用資訊增益比來選擇特徵

資訊增益比計算公式:

g r(

d,a)

=g(d

,a)h

(d

)g_r(d, a) = \frac

gr​(d,

a)=h

(d)g

(d,a

)​訓練資料集d

特徵集a

閾值ϵ

\epsilon

ϵ決策樹t

過程與id3決策樹的生成演算法完全相同。

除了在第3步中使用資訊增益比來選擇特徵。

def

grda

(x, y, feature)

:# 計算x的每個特徵可取到的值

a =set(x[

:,feature]

)# 計算資料集的經驗熵

hd = h(y)

# 計算特徵a對資料集d的經驗條件熵h(d|a)

hda =

0for value in a:

ydi = y[x[

:,feature]

==value]

hda += ydi.shape[0]

/y.shape[0]

* h(ydi)

return

(hd - hda)

/hddef

c45(x, y, epsilon)

:# 若d中所有例項屬於同一類

iflen

(set

(y))==1

:# 將類$$c_k$$作為該結點的類標記

return y[0]

# 若$$a=\emptyset$$

if x.shape[1]

==0:# 例項數最大的類$$c_k$$作為該結點的類標記

return multi(y)

bestinfo =

0# 計算a中各個特徵對d的資訊增益

for feature in

range

(x.shape[1]

):info = grda(x, y, feature)

# 選擇資訊特徵最大的ag

if svm(x, y, feature)

> bestinfo:

bestinfo = info

bestfeature = feature

# 如果ag的資訊增益小於閾值$$\epsilon$$

if bestinfo < epsilon:

# 將d中例項數最大的類$$c_k$$作為該結點的類標記

return multi(y)

feature = bestfeature

ret =

# 對ag的每乙個可能的值ai

a =set(x[

:, feature]

)for ai in a:

yai = y[x[

:,feature]

== ai]

xai = x[x[

:,feature]

== ai]

ret[ai]

= c45(xai, yai, epsilon)

return ret

決策樹 C4 5演算法

c4.5演算法是用於生成決策樹的的一種經典演算法,是id3演算法的一種延伸和優化。改進了點 1 通過資訊增益率選擇 屬性,克服了id3演算法中通過資訊增益傾向於選擇擁有多個屬性值的屬性作為 屬性的不足 2 能夠處理離散型和連續型的屬性型別,即將連續型的屬性進行離散化處理 3 構造決策樹之後進行剪枝操...

決策樹之C4 5演算法

c4.5演算法是機器學習中的乙個重要的決策樹演算法,它是對id3演算法的改進,相對於id3演算法主要有以下幾個改進 1 用資訊增益率來選擇屬性 2 在決策樹的構造過程中對樹進行剪枝 3 對非離散資料也能處理 4 能夠對不完整資料進行處理 接下來分別詳細講述這幾點的改進方案 1 用資訊增益率來選擇屬性...

C4 5決策樹演算法思想

前幾天有小夥伴問到這個演算法,於是想總結一下好了,畢竟是乙個如此著名的演算法,這裡就重在思想啦 建議配合實際例子學習。參考 1 周志華 機器學習 2 決策樹 decision tree 是在已知各種情況發生概率的基礎上,通過構成決策樹來評價專案風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一...