本文實例講述了Python決策樹之基于信息增益的特征選擇。分享給大家供大家參考,具體如下:
基于信息增益的特征選取是一種廣泛使用在決策樹(decision tree)分類算法中用到的特征選取。該特征選擇的方法是通過計算每個特征值劃分數據集獲得信息增益,通過比較信息增益的大小選取合適的特征值。
信息的期望值,可理解為數據集的無序度,熵的值越大,表示數據越無序,公式如下:
其中H表示該數據集的熵值, pi表示類別i的概率, 若所有數據集只有一個類別,那么pi=1
,H=0
。因此H=0
為熵的最小值,表示該數據集完全有序。
熵的減少或者是數據無序度的減少。
1、計算原始數據的信息熵H1
2、選取一個特征,根據特征值對數據進行分類,再對每個類別分別計算信息熵,按比例求和,得出這種劃分方式的信息熵H2
3、計算信息增益:
infoGain = H1 - H2
4、根據2,3計算所有特征屬性對應的信息增益,保留信息增益較大的特征屬性。
海洋生物數據
被分類項/特征 | 不浮出水面是否可以生存 | 是否有腳蹼 | 屬于魚類 |
---|---|---|---|
1 | 是 | 是 | 是 |
2 | 是 | 是 | 是 |
3 | 是 | 否 | 否 |
4 | 否 | 是 | 否 |
5 | 否 | 是 | 否 |
p(是魚類) = p1 =0.4
p(非魚類) = p2 =0.6
通過信息熵公式可得原始數據信息熵 H1 = 0.97095
選擇'不服出水面是否可以生存'作為分析的特征屬性
可將數據集分為[1,2,3]與[4,5],分別占0.6和0.4。
[1,2,3]可計算該類數據信息熵為 h1=0.918295834054
[4,5] 可計算該類數據信息熵為 h2=0
計算劃分后的信息熵 H2 = 0.6 * h1 + 0.4 * h2 = 0.550977500433
infoGain_0 = H1-H2 = 0.419973094022
同理可得對特征'是否有腳蹼'該特征計算信息增益 infoGain_1 = 0.170950594455
比較可得,'不服出水面是否可以生存'所得的信息增益更大,因此在該實例中,該特征是最好用于劃分數據集的特征
新聞熱點
疑難解答