故事從一條小學數學題說起
"爸爸,熊貓為什么是3個不是11個"
"寶貝,你還沒學二進制好嗎....."
以上故事純屬虛構,真實的對話其實是這樣的
"爸爸, 為什么3比4小"
"寶貝,數一下就知道啦。你看豬豬有1,2,3. 3個, 小鳥有1,2,3,4. 4個. 你看小鳥是不是比豬豬多? 所以3比4小"
為什么我們要用十進制? 我們當然明白十進制是為了把世界描述為在數學上大家統一使用的語言然后進行溝通, 如果你用十進制我用二進制,那沒法溝通了是不?
決策樹用多了, 習慣了用信息增益作為特征選擇的指標, 而信息增益是由前熵后熵差值而來.
為什么用熵? 對不起,這個問題請問科學家,你用就是了
為什么說熵比較高就是比較混亂? 接下來我們算一算驗證一下.
首先來個簡單粗暴的:
給三個球分類, 顯然一眼就可以看出把紅球獨自一組,黑球一組. 那么具體分類的信息增益怎樣呢?
在Excel里算前熵
E(三個球) = - 1/3 * log(1/3, 2) - 2/3 * log(2/3,2) = 0.918
第一種分法是紅黑球一組,黑球自己一組. 在紅黑一組中有紅球和黑球, 紅黑球各自出現的概率是1/2. 在另一組只有 100%出現黑球, 紅球的概率是0
所以 E(紅黑|黑) = E(紅黑) + E(黑) = - 1/2 * log( 1/2, 2) - 1/2 * log (1/2, 2) - 1 * log( 1, 2) = 1
第二種分法就是紅球自己一組了, 在紅球組中出現黑球的概率是0, 在黑球組中出現紅球的概率是0, 這樣的分類已經"純"了. 還是可以計算熵:
E(紅|黑黑) = E(紅) + E(黑黑) = - 1 * log( 1, 2) - 1 * log( 1, 2) = 0
那么,
紅黑混合的信息增益 G(紅黑|黑) = E(三個球) - E(紅黑|黑) = 0.918 - 1 = -0.02
紅黑分開的信息增益 G(紅|黑黑) = E(三個球) - E(紅|黑黑) = 0.918 - 0 = 0.918
故增益較大的紅|黑黑分組較好.
注: 規定了 log ( 0, 2) = 0, 雖然這在數學上不成立
熱身結束, 來個稍微復雜點的:
開始之前, 請始終把焦點集中在紅藍兩個顏色上,它是我們的分類目標
E(BeforeSplit) = - 4/6 * log( 4/6, 2) - 2/6 * log( 2/6, 2) = 0.918
如果選擇形狀(Shape)分類, 結果是這樣的(請始終把焦點集中在紅藍兩個顏色上):
E(N1) = 0
E(N2) = - 2/3 * log( 2/3,2) - 1/3 * log( 1/3, 2) = 0.918
信息增益 G(Shape) = 0.918 - 0.918 - 0 = 0
根據表情分類, 結果是這樣的(請始終把焦點集中在紅藍兩個顏色上):
E(N1) = 0
E(N2) = -1/2 * log( 1/2, 2) - 1/2 * log( 1/2, 2) = 1
信息增益 G(Shape) = 0.918 - 1 - 0 = -0.02
如果選擇線條(粗細)分類, 結果是這樣的(請始終把焦點集中在紅藍兩個顏色上):
E(N1) = -1/2 * log( 1/2, 2) - 1/2 * log( 1/2, 2) = 1
E(N2) = -1/4 * log( 1/4, 2) - 3/4 * log( 3/4, 2) = 0.811
信息增益 G(Bold) = 0.918 - 1 - 0.811 = - 0.893
故, 首選按形狀分類。
由此也可以看出,極端情況下,使用信息增益選取特征有向節點熵為0傾斜的趨勢,然而這未必就是最佳選擇,但是大多情況下,它工作得不錯.
10進制也不是所有領域都適用呀對吧?