特徵選擇是決策樹學習的重要內容,本文討論的特徵指標是夏農熵、基尼指數和誤分類誤差。
決策樹學習的關鍵在如何選擇最優劃分屬性。一般而言,隨著劃分過程不斷進行,我們希望決策樹的分支結點所包含的樣本盡可能屬於同一類別, 即結點的 「純度」(purity)越來越高。在分類樹中,劃分的優劣用不純度度量(impurity-measure)定量分析。
對於結點m,令nm為到達結點m的訓練例項數,對於根結點,nm為n。nm個例項中有nm
i個屬於ci類,而∑
\sum
∑nmi=nm. 當乙個例項到達了結點m則它屬於ci類的概率估計為:
在二分類問題中,如果對於所有的i,pm
i為0或1:當到達結點m時,所有例項都不屬於ci類,則pm
i為0。反之,如果所有例項都屬於ci類,則pm
i為1。如果此時劃分是純的,則我們不需要再進一步劃分,並可以新增乙個葉結點,用pm
i為1的類標記。
我們可以將任意結點的類分布記作(p0,p1),其中p1=1-p0。選擇最佳劃分的度量通常是根據劃分後葉結點不純性的程度。不純度越低,類分布就越傾斜。例如,類分布為(0,1)的結點具有零不純性,而均衡分布的(0.5,0.5)的結點具有最高的不純性。一種度量不純性的函式是熵函式(entropy):
若p=0,則
在資訊理論與概率統計中,熵是表示隨機變量不確定性的度量。這裡我們使用的熵,也叫作夏農熵,這個名字**於資訊理論之父 克勞德·夏農。
為了計算熵,我們需要計算所有類別所有可能值包含的資訊期望值(數學期望),即上述公式。對於二分類問題,如果p1=1而p2=0,則所有的例項都屬於ci類,熵為0。如果p1=p2=0.5,熵為1。
但是,熵並非是唯一可能的度量。對於二分類問題,其中 p1=p,p2=1-p,函式ϕ
\phi
ϕ(p,1-p)是非負函式,度量劃分的不純度,如果滿足如下性質:
對於任意 p∈
\in∈[0,1],ϕ
\phi
ϕ(1/2,1/2)≥
\ge≥(p,1-p) 。
ϕ
\phi
ϕ(0,1)=ϕ
\phi
ϕ(1,0)=0。
當p在[0,1/2]上時ϕ
\phi
ϕ(p,1-p)是遞增的,而當p在[1/2,1]上時ϕ
\phi
ϕ(p,1-p)是遞減的。
ϕ
\phi
ϕ(p,1-p) = -plog2p-(1-p)log2p
函式entropy(m)是k>2個類的推廣。
ϕ (p
,1−p
)=1−
∑i=1
mpi2
\phi(p,1-p) = 1-\sum_^mp_i^2
ϕ(p,1−
p)=1
−∑i=
1mp
i2ϕ
\phi
ϕ(p,1-p) = 1-max(p,1-p)
這些都可以推廣到k>2類,並且給定損失函式,誤分類誤差可以推廣到最小風險。
下圖顯示了二元分類問題不純性度量值的比較,p表示屬於其中乙個類的記錄所佔的比例。從圖中可以看出,三種方法都在類分布均衡時(即當p=0.5時 )達到最大值,而當所有記錄都屬於同乙個類時(p等於1或0)達到最小值。
三種不純性度量方法的計算例項:
從上面的例子及圖中可以看出,不同的不純性度量是一致的。根據計算,結點n1具有最低的不純性度量值,然後依次是n2 , n3。雖然結果是一致的,但是作為測試條件的屬性選擇仍然因不純性度量的選擇而異。
熵越高,資訊的不純度就越高,則混合的資料就越多。
#夏農熵的**實現
defcalent
(dataset)
:#dataset:原始資料集
n = dataset.shape[0]
#資料集總行數
iset = dataset.iloc[:,
-1].value_counts(
)#對標籤列(最後一列)的值類別進行統計
p = iset/n #每類標籤佔比
ent =
(-p*np.log2(p)).
sum(
)#ent:夏農熵的值 entropy=sum(-p*log2(p))
return ent
# 建立資料集
defcreatedataset()
: row_data =
dataset = pd.dataframe(row_data)
return dataset
#生成資料集
dataset = createdataset(
)
#計算夏農熵
calent(dataset)
執行結果
0.9709505944546686
決策樹 資訊熵 資訊增益 基尼係數
決策樹系列目錄 文末有彩蛋 決策樹 決策樹演算法原理 id3,c4.5,cart 決策樹 決策樹引數介紹 分類和回歸 決策樹 決策樹sklearn調參 gridsearchcv 決策樹 python 實現決策樹 決策樹應用例項 鐵達尼號分類 決策樹應用例項 使用者流失 模型 決策樹應用例項 銀行借貸...
決策樹之特徵選擇
一般而言,隨著劃分過程不斷進行,我們希望決策樹的分支結點所包含的樣本盡可能屬於同一類別,即結點的 純度 purity 越來越高。假設當前樣本集合 d 中第 k 類樣本所佔的比例為 p k k 1,2,mathcal y 離散屬性 a 有 v 個可能的取值 若使用 a 來對樣本集 d 進行劃分,則會產...
決策樹的基尼係數計算過程
在介紹具體的計算之前,先從乙個例子入手吧。先看看下面這個資料,我們需要通過前三列的特徵來推斷出最後一列是yes,no chest pain good blood circulation blocked arteries heart disease nono nono yesyes yesyes ye...