決策樹通過「分而治之」的策略,採用遞迴的方式學習得到樹結構,目標為學習乙個泛化能力強的決策樹。有三種情形會導致遞迴返回:
1. 當前節點包含的樣本均屬於同一類別
2. 當前節點屬性集為空或所有樣本在所有屬性上取值相同
3. 當前節點樣本集為空
出現以上三種情況中的任意一種,該節點標記為葉節點,對1來說,該葉節點的類別即為樣本類別;對2來說,該葉節點的類別為包含樣本最多的類別;對3,葉節點的類別為其父節點中包含樣本最多的類別。
決策樹學習的關鍵是如何選擇最優劃分屬性,有三種常用的方法:
1. 資訊增益(代表:id3)
資訊熵是度量樣本集合純度的一種常用指標,設集合d中第
k k
類樣本所佔比例為pk
' role="presentation" style="position: relative;">pkp
k,則d的資訊熵定義為 en
t(d)
=−∑k
=1kp
klog
2pk ent
(d)=
−∑k=
1kpk
log2
pk
d的資訊熵越小,d的純度越高。
若離散屬性a有v個可能的取值,則用屬性a對樣本集d進行劃分所獲得的資訊增益ga
in(d
,a)=
ent(
d)−∑
v=1v
|dv|
|d|e
nt(d
v)g ai
n(d,
a)=e
nt(d
)−∑v
=1v|
dv||
d|en
t(dv
)資訊增益越大,純度提公升越大,因此可用資訊增益為準則選擇劃分屬性。
代表演算法:id3決策樹演算法
特點:對取值數目較多的屬性有偏好,故引入增益率作為屬性劃分準則。
2. 增益率(代表:c4.5)
增益率定義為ga
in_r
atio
(d,a
)=ga
in(d
,a)i
v(a)
g ai
n_ra
tio(
d,a)
=gai
n(d,
a)iv
(a
)iv(
a)=−
∑v=1
v|dv
||d|
log2
|dv|
|d| iv(
a)=−
∑v=1
v|dv
||d|
log2
|dv|
|d
|代表演算法:c4.5決策樹演算法
特點:由於增益率對取值數目較少的屬性有偏好,故c4.5演算法並不是直接選擇增益率最大的候選劃分屬性,而是先選出資訊增益高於均值的屬性,再從中選擇增益率最高的。
3. 基尼指數(代表:cart)
資料集d的純度可用基尼值來度量:gi
ni(d
)=1−
∑k=1
kpk2
g in
i(d)
=1−∑
k=1k
pk
2gini(d)反映了從資料集d中隨機抽取兩個樣本,其類別不一致的概率。因此,gini(d)越小,資料集的純度越高。屬性a的基尼指數定義為gi
ni_i
ndex
(d,a
)=∑v
=1v|
dv||
d|gi
ni(d
v)g in
i_in
dex(
d,a)
=∑v=
1v|d
v||d
|gin
i(dv
),選擇使劃分後基尼指數最小的屬性作為最優劃分屬性。
剪枝是決策樹演算法處理過擬合的有效方式。在決策樹學習過程中,為了盡可能正確分類訓練樣本,需不斷重複節點劃分過程,可能會因為分支過多而造成過擬合。因而可通過剪枝降低過擬合風險。決策樹剪枝的基本策略有兩種:預剪枝、後剪枝。
1.預剪枝
在決策樹生成過程中,對每個節點在劃分前判斷當前節點的劃分能否帶來決策樹泛化效能的提公升。若不能,則停止劃分並將當前節點標記為葉節點。
優點:減少了訓練時間開銷和測試時間開銷
缺點:有些分支的當前劃分雖不能提公升泛化效能,其後續劃分可能導致效能顯著提高,可能造成欠擬合
2.後剪枝
先從訓練集生成完整的決策樹,自底向上的遍歷每一非葉子節點,判斷將其替換為葉子節點後能否提公升決策樹的泛化效能。若能,則將該子樹替換為葉節點。
優點:欠擬合風險很小,泛化效能往往優於預剪枝決策樹
缺點:訓練時間開銷比未剪枝決策樹和預剪枝決策樹都要大的多
判斷泛化效能提公升的方法:採用機器學習之模型評估與選擇中述及的評估方法。
1.連續值處理
上述討論的決策樹生成方式均為基於離散值,當處理連續值時,可將連續屬性離散化處理,如:二分法(c4.5決策樹演算法中採用此方法)。
注:與離散屬性不同,若當前節點劃分屬性為連續屬性,該屬性還可作為其後代節點的劃分屬性。
2.缺失值處理
1)若樣本x在劃分屬性a上的取值已知,則將x劃入與其取值對應的子結點
2)若樣本x在劃分屬性a上的取值未知,則將x以不同的概率劃入所有子結點中
非葉節點不再僅是針對某個屬性,而是對屬性的線性組合進行測試,試圖建立乙個合適的線性分類器。
機器學習實戰筆記之三(決策樹)
決策樹,資料形式易於理解。k 近鄰演算法,完成很多分類任務。缺點 可能會產生過度匹配問題。適用資料型別 數值型和標稱型。收集資料 可以使用任何方法。準備資料 樹構造演算法只適用於標稱型資料,因此數值型資料必須離散化。分析資料 可以使用任何方法,構造樹完成之後,我們應該檢查圖形是否符合預期。訓練演算法...
決策樹 ML之三
在決策樹模型中,最重要的乙個概念就是熵,熵從通俗語言來講就是資訊的不確定性,比如我有一袋5個水果,不知道是什麼水果,目前的不確定性是最大的,熵最大,如果拿出來乙個是蘋果,那麼這袋水果的不確定性就減小了,熵也減小了,再拿出乙個知道是梨子,熵進一步減小,直到取出所有水果,這時候不確定性最低,都確定了,熵...
機器學習(三)決策樹學習
決策樹學習是一種逼近離散值目標函式的方法,在這種方法中學習到的函式被表示為一棵決策樹。決策樹通過把例項從艮節點排列到某個葉子結點來分類例項,葉子結點即為例項所屬的分類。樹上的每乙個結點指定了對例項的某個屬性的測試,並且該結點的每乙個後繼分支對應於該屬性的乙個可能值。分類例項的方法是從這棵樹的根節點開...