決策樹問答

2021-08-26 05:20:43 字數 3096 閱讀 7475

1、結構:1個根節點+多幹內部節點和葉節點,根節點和若干內部節點是判斷模組,用來判斷對特徵怎樣分類,葉節點是終止模組,到這裡決策樹就完成了分類過程.

2、feature selection+decision tree生成(遞迴過程)+pruing(剪枝,防止過擬合)

3、決策樹分支節點劃分原則:純度原則(purity),分支節點的樣本盡可能屬於同一類,也就是純度越高越好,判斷純度引入數學引數:資訊熵用來描述資訊的不確定度,資訊熵越大,資訊越不確定,包含的可能性就越大.

gini索引:gi

ni(s

)=1−

∑ci=

1p2i

g in

i(s)

=1−∑

i=1c

pi

2互熵:inf

o(s)

=−∑m

i=1p

ilog2(

pi) inf

o(s)

=−∑i

=1mp

ilog2⁡

(pi)

其中s樣本資料,pi表示第i個類別在整個訓練元組中出現的概率,一般來說會用這個類別的樣本數量佔總量的佔比來作為概率的估計 |s

j||s

| |sj

||s|

;熵的實際意義表示是s中資料的類標號所需要的平均資訊量。

常用的c4.5、c5.0用的是互熵資訊增益比率,選擇具有最大[增益比率]的屬性作為**屬性。

c5.0是c4.5應用於大資料集上的分類演算法,主要在執行效率和記憶體使用方面進行了改進。c5.0演算法則是c4.5演算法的修訂版,適用於處理大資料集,採用boosting方式提高模型準確率,又稱為boostingtrees,在軟體上計算速度比較快,占用的記憶體資源較少。

來看每個屬性的增益比率怎麼算:

在x屬性下**的資訊熵:sp

liti

nfo(

s|x)

=−∑k

j=1|

sj||

s|lo

g2(|

sj||

s|) spl

itin

fo(s

|x)=

−∑j=

1k|s

j||s

|log

2(|s

j||s

|)

定義增益為:ga

in(x

)=in

fo(s

)−in

fo(s

|x) gai

n(x)

=inf

o(s)

−inf

o(s|

x)

所以定義增益率為:ga

inra

tio=

gain

(x)s

plit

info

(s|x

) gai

nrat

io=g

ain(

x)sp

liti

nfo(

s|x)

c4.5演算法停止**的條件:

1、乙個結點的所有目標變數樣本值均為同一類別;

2、若無屬性可用於劃分當前樣本集,則將當前結點強制劃為葉結點,並把樣本數目最多的類別標記為**類別;

3、如果**後剩餘的樣本數小於某個給定的閾值,則返回乙個葉結點,並把眾數類別標記為**類別。例如取值為10,如果剩餘樣本數小於10,則自動歸為葉結點,停止**。這實際上是一種前剪枝的方式。

cart用的是gini增益,計算每個屬性的[gini增益],然後選擇gini增益最大的屬性進行**。

按照屬性x進行劃分的gini索引值:gi

ni(s

|x)=

∑kj=

1|sj

||s|

⋅gin

i(sj

) gin

i(s|

x)=∑

j=1k

|sj|

|s|⋅

gini

(sj)

sj s

j為當屬性x取值xj

x

j時的樣本資料;

屬性x的gini增益被定義為:δg

ini(

x)=g

ini(

s)−g

ini(

s|x)

δ gi

ni(x

)=gi

ni(s

)−gi

ni(s

|x

)cart停止**的條件:

1、決策樹最大深度(maxdepth):如果決策樹的層數已經達到了制定的深度,則停止生長;

2、最小樣本**數(minsplit):如果結點包含的樣本數已低於最小樣本數minsplit,則不再**;

3、樹中葉結點所包含的最小樣本數(minbucket):如果自變數x**後生成的葉結點所包含的樣本數低於最小樣本數minbucket,則此次**無效,自變數x不再進行**;

決策樹的剪枝方法

決策樹的剪枝有兩種思路:前剪枝(pre-pruning)和後剪枝(post-pruning)

前剪枝(pre-pruning)

在構造決策樹的同時進行剪枝。所有決策樹的構建方法,都是在無法進一步降低熵的情況下才會停止建立分支的過程,為了避免過擬合,可以設定乙個閾值,熵減小的數量小於這個閾值,即使還可以繼續降低熵,也停止繼續建立分支。但是這種方法實際中的效果並不好。

後剪枝(post-pruning)

決策樹構造完成後進行剪枝。剪枝的過程是對擁有同樣父節點的一組節點進行檢查,判斷如果將其合併,熵的減少量是否小於某一閾值。如果確實小,則這一組節點可以合併乙個節點,其中包含了所有可能的結果。後剪枝是目前最普遍的做法。

後剪枝的剪枝過程是刪除一些子樹,然後用其葉子節點代替,這個葉子節點所標識的類別通過大多數原則(majority class criterion)確定。所謂大多數原則,是指剪枝過程中, 將一些子樹刪除而用葉節點代替,這個葉節點所標識的類別用這棵子樹中大多數訓練樣本所屬的類別來標識,所標識的類 稱為majority class 。

決策樹和CART決策樹

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

決策樹(二)決策樹回歸

回歸 決策樹也可以用於執行回歸任務。我們首先用sk learn的decisiontreeregressor類構造一顆回歸決策樹,並在乙個帶雜訊的二次方資料集上進行訓練,指定max depth 2 import numpy as np quadratic training set noise np.r...

決策樹01 決策樹的原理

此筆記根據 machine learning in action 和周志華教授的 機器學習 所作。缺點 可能會產生過度匹配問題。適用資料型別 數值型和標稱型 machine learning in action if so return 類標籤 else 尋找劃分資料集的最好特徵 劃分資料集 建立分...