李航《統計機器學習》第5章 決策樹

2021-07-14 00:13:10 字數 2834 閱讀 1889

用來解決分類和回歸問題,可以看成是乙個if-then規則的集合,或者看做乙個條件概率分布

優點:具有可讀性,分類速度快

決策樹由結點和有向邊組而成,內部結點表示乙個feature,葉節點表示乙個class

損失函式通常選擇 正則化的極大似然函式i.e.結構風險最小化

包括 特徵選擇,決策樹生成和剪枝三部分

常用的演算法有id3,c4.5,cart

選擇的準則是資訊增益or資訊增益比

複習一下熵的定義

熵 (entropy)是表示隨機變數不確定性的度量

假設x是乙個取值個數有限的離散隨機變數,概率分布為 p(

x=xi

)=pi

,i=1

,2,.

..,n

則隨機變數x的熵為(由於熵大小只和x分布有關,有時直接記作h(p) h(

x)=−

∑ni=

1pil

ogpi

熵越大,隨機變數的不確定性越大

0<=h(

p)<=lo

gn假設x,y 服從聯合概率分布 p(

x=xi

,y=y

j)=p

ij條件熵定義為 h(

y|x)

=∑ni

=1pi

h(y|

x=xi

) 其中p

i=p(

x=xi

) 熵與條件熵之差成為互資訊

資訊增益表示得知x的情況下y的不確定性減小的程度

決策樹學習中的資訊增益等價於訓練資料集中類與特徵的互資訊

特徵a對於訓練集d的資訊增益g(d,a)定義為

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

根據資訊增益準則的特徵選擇方法為:

對訓練集d,計算每個特徵的資訊增益,選擇資訊增益最大的特徵

存在問題:

會傾向於選擇取值較多的特徵

改進方法:

使用資訊增益比 gr

(d,a

)=g(

d,a)

ha(d

),其中

ha(d

)=−∑

ni=1

|di|

|d|l

og2|

di||

d|,n

是特徵a

的取值個

數 id3演算法

演算法核心是在決策樹各個節點上用資訊增益準則選擇特徵,相當於極大似然發進行概率模型選擇,容易過擬合

偽**

algorithm:generate_decision_tree(samples, attribute)

input:訓練樣本samples;候選屬性的集合attribute_list。

output:一棵判定樹

方法:

generate_decision_tree(samples, attribute_list)

create node n;

if samples 都在同乙個類ck

return n as leaf node,marked as ck

; if attribut_list == null

//子集中數量最多的類作為標記

return n as leaf node,marked as cm

axfor each attribute a in attribute_list

計算資訊增益gr

(d,a

) best_attribute ag

= 選擇資訊增益最高的attribute

if best_attribute的資訊增益 < 閾值 ϵ

//子集中數量最多的類作為標記

return n as leaf node,marked as cm

axelse

for each best_attribute ag

中的每乙個可能值ai

return t

2.c4.5演算法

和id3類似,只不過採用資訊增益比

剪枝是為了解決過擬合現象

決策樹的剪枝通常通過 minimize overall lost function/cost function 來實現,等價於正則化的極大似然估計

lost function 定義為 cα

(t)=

∑t=1

|t|n

tht(

t)+α

|t|

|t| 決策樹葉節點個數,t 決策樹葉節點,nt

葉節點上樣本個數,nt

k 葉節點t上屬於類ck

的樣本個數,k型別總個數,ht

(t) 葉節點t上的經驗熵

其中 ht(

t)=−

∑k=1

kntk

ntlogntk

nt損失函式第一項表示的是**誤差,也記作c(t);第二項是模型複雜度

決策樹的剪枝演算法可以有一種動態規劃演算法實現

見github tbc

隨機森林顧名思義,是用隨機的方式建立乙個森林,森林裡面有很多的決策樹組成,隨機森林的每一棵決策樹之間是沒有關聯的。在得到森林之後,當有乙個新的輸入樣本進入的時候,就讓森林中的每一棵決策樹分別進行一下判斷,看看這個樣本應該屬於哪一類(對於分類演算法),然後看看哪一類被選擇最多,就**這個樣本為那一類。

好處:

不用做特徵選擇,可以處理feature多的情況

容易並行化

tbc

參考這個博主講的東西很深入啊

《統計學習方法(李航)》講義 第05章 決策樹

決策樹 decision tree 是一種基本的分類與回歸方法。本章主要討論用於分類的決策樹。決策樹模型呈樹形結構,在分類問題中,表示基於特徵對例項進行分類的過程。它可以認為是if then規則的集合,也可以認為是定義在特徵空間與類空間上的條件概率分布。其主要優點是模型具有可讀性,分類速度快。學習時...

《統計機器學習》 決策樹學習筆記

利用資訊增益構建決策樹例項 資訊增益比 id3演算法 c4.5生成演算法 決策樹的剪枝 cart演算法 決策樹是基本的分類和回歸方法。但是主要用於分類。在分類問題中,表示基於特徵對樣本進行分類的過程,也可以認為是在特徵空間與類空間上的條件概率分布 類空間就是分類的結果,比如有二分類 是否問題 之所以...

李航 統計學習 採用C4 5演算法構建決策樹

from numpy import from math import log import operator def calcshannonent dataset numdataset len dataset labelcount for data in dataset curlabel data ...