1. 程式人生 > >關於決策樹的特徵選擇, 資訊量/資訊熵/相對熵/交叉熵的例子

關於決策樹的特徵選擇, 資訊量/資訊熵/相對熵/交叉熵的例子

說到決策樹,必須瞭解資訊熵。在沒有接觸機器學習之前,知道熵這個概念:描述事務的混亂程度。  (當然,有更準確的或不同維度的定義,比如 能量中不能用來做功的部分)
如果沒有外力,世界總是在熵增。 比如氣體擴散後不可能自己縮回去。
而換個角度想,我們總是想去做一些事,讓熵減。一個亂糟糟堆滿各式各樣東西的桌子,如果付出時間和力氣,把它整理得乾乾淨淨分門別類, 那它就從熵多到熵少了。 類似地,統計學/機器學習中的資訊熵,跟熱力學中的熵是反的(從公式看前面有個負號),我們也總是希望熵減的。即我們希望 事實在他應該歸屬的類別中,也就是說我們希望事情都在意料之中,而不是意料之外。  那我們如何來度量這個意料之外呢?  因為我們的目標是 去持續減少 意料之外的事 佔所有的猜測的比例,必須要知道如何去衡量。意料之中的事,裡面沒什麼資訊量,我們可以少操心:例如 一個會計在工作時 一絲不苟
意料之外的事
,裡面資訊量可能很,可得操點心(需要學習/更新): 例如 一個會計在工作時 亂塗亂寫一個公司,如果會計人員的工作 沒有他應該有的嚴謹;銷售人員的工作 沒有他應該有的熱情,研發人員 沒有他應該有的技能, 管理人員 沒有他應該有的決策力,這個公司夠混亂了吧。 把這些資訊量加在一起,也就是資訊熵,就能度量這個公司的整體情況。  我們要做的是 降低整體的資訊熵,也就是讓整體(多分類)裡面的各個分量(裡面的各個分類)的資訊量都降低優秀公司的標準/目標是:所有會計 銷售 研發 管理人員都在他們各自對應的歸屬內(各自優秀,即都在預料之中)
KL散度即相對熵就是: 差公司跟優秀公司的 公司總體情況的符合度 差別(重合情況)
,如果差公司一直用 資訊增量 去修正自己,那重合之日(相對熵降為0),差公司就是優秀公司了。當然,如果優秀公司也拿資訊增量 去修正自己,重合之日,優秀公司也變成差公司了 交叉熵就是:差公司跟優秀公司的 各類人才的符合度 差別(最後還是要求和的)
補充:公司總體情況包括優秀公司自己內部的仍有很少量沒做到最好的地方,比如壟斷市場了;而交叉熵這裡我們只關注各類人才的符合度情況
機器學習中,P往往用來表示樣本的真實分佈,Q用來表示模型所預測的分佈,我們看到資訊量/資訊熵/相對熵/交叉熵的公式分別為:

H(p,q)=p(xi)log(q(xi))

在我們的例子中,P用來表示優秀公司人才符合度的分佈(目標),Q用來表示差公司的分佈(需要優化的物件)
可以自己對比理解一下公式回到正題 決策樹
如果你 想招一名非常細心的會計人員。你手上有一份每個random候選人的資料表格。40行40個人,表格的每一列就是一個特徵了。其中有一列是:這個人是否最近十年從未遺失過物品(取值01),有一列是他音樂課程拿到的成績等級(取值ABCDE),有一列是他美術課程拿到的成績等級(取值AB)
目標是找非常細心的人, 你先判斷 從未遺失過物品 還是先判斷 音樂成績 還是先判斷 美術成績呢? 從表格最終的標籤來看,20個標籤為 非常細心的人,有18個近十年從未遺失過物品,而總共有19個這樣的人;有15個物理課成績是A,22個美術成績為B。答案是先選資訊增益大的! 那如何選 資訊增益最大的特徵呢?
條件概率,全概率,貝葉斯公式會吧? 不會的話先看看這個 https://blog.csdn.net/Hearthougan/article/details/75174210  這裡要展開又是一段了,略過聚焦。
看看這個圖: 黃色代表 邊緣概率,桔色代表條件概率,灰底代表全概率,中間的重疊部分是互資訊/資訊增益。
這裡要理解條件概率: 知道A以後,B為: AB同時發生的概率/A的概率。 例如知道 某個人從未遺失過物品後,他是很細心的人的概率為 : 所有很細心的且從未遺失過物品的人 / 從未遺失過物品的人佔所有人的比例
而條件熵和條件概率可以類比,互資訊也就是資訊增益,從圖中看就是 H(B)-H(B|A), 綠色的部分
上面這張圖的資訊代表的是是否非常細心與 美術成績的分佈,重疊得較少,資訊增益小,無法很好的去判斷細心程度,資訊熵仍然很大,不確定性仍然很多。
而下面這張圖的資訊代表的是 是否非常細心與 是否從未遺失過物品的分佈,重疊部分大,資訊增益大,很方便快速的就能判斷細心程度,資訊熵和不確定性已經很小了。好,決策樹的條件就先選這種了(資訊增益大)!美術成績和音樂成績一樣 都不怎麼能成為判斷細心程度的重要參考,但ID3決策樹會偏向於先選擇音樂成績做判斷,因為音樂成績有5個等級,按5類分時的不確定性 會比按2類分不確定性更小,資訊增益更大(H(B)-H(B|A) 中 H(B|A)減小)
C4.5其中一個改進就是使用資訊增益比 而不是資訊增益 (可以理解為歸一化了的資訊增益)
而CART中採用了基尼係數替代資訊增益比,根據https://blog.csdn.net/lanchunhui/article/details/65441891,基尼係數中的一部分1-x為熵的對應−lnx部分在x=1處的一階泰勒展開(忽略高階無窮小),所以可以近似替代 計算量大的熵。當然 IID3 C4.5 CART的區別不止這些,還有是否支援迴歸、樹結構、連續值、缺失值處理、剪枝等。這裡只說了一點點感性認識 。具體請參考劉建平pinard老師的blog.  http://www.cnblogs.com/pinard/p/6053344.html