1. 程式人生 > >決策樹(一)

決策樹(一)

1、舉例:

關於什麼是決策樹(decision tree),我們先來看這麼一個例子。假如我錯過了看世界盃,賽後我問一個知道比賽結果的人“哪支球隊是冠軍”?他不願意直接告訴我,而讓我猜,並且每猜一次,他要收一元錢才肯告訴我是否猜對了,那麼我要掏多少錢才能知道誰是冠軍呢?我可以把球隊編上號,從1到16,然後提問:“冠軍球隊在1-8號中嗎?”,假如他告訴我猜對了,我會接著問:“冠軍在1-4號中嗎?”,假如他告訴我才錯了,那麼我自然知道冠軍在5-8號中。這樣只需要五次,我就能知道哪支球隊是冠軍。

而這背後所隱藏著的其實就是決策樹,我們用更為直觀的圖來展示上面的過程:
 

由此我們得出,

決策樹就是降低判斷這件事不確定性的過程,你甚至可以將其看成是一個if-then規則的集合。如上圖,一開始有16中可能性,接著變成8種,這意味著每次決策我們都能得到更多的資訊,減少更多的不確定性,判斷的更準確,也就是向著判斷更準確的方向發展

不過對於熟悉足球的人來說,這樣的決策樹似乎顯得多餘了。因為只有少部分的球隊有奪冠的希望,而大多數都是沒可能奪冠的。因此在一開始的時候就將幾個熱門的可能奪冠的球隊分在一起,將剩餘的放在一起,整個決策的效率可能就提高了一個量級。

比如最有可能奪冠的是1,2,3,4這四個球隊,其餘的奪冠的可能性遠遠小於這四個。那麼一開始就可以分成1-4和5-16,如果是在1-4中,那麼後面很快就能知道誰是冠軍;退一萬步,假如真是在5-16,你同樣可以將其按照這樣的思路在下一步做決策的時候將其劃分成最有可能和最不可能的兩個部分。

於是我們發現:若一種劃分,一次能使資料的“不確定性”減少得越多(誰不可能奪冠),就意味著該劃分能獲取更多的資訊,而我們就更傾向於採取這樣的劃分,因此採用不同的劃分就會得到不同的決策樹。現在的問題就是如何來構建一棵“”的決策樹呢?要想回答這個問題,我們先來解決如何描述的“資訊”這個問題。
2. 資訊的度量

2.1 資訊熵

資訊的資訊量與判斷某件事的不確定性有著直接的關係,也就是說資訊的資訊量越多,判斷某件事就越準確。比如說,我們要搞清楚一件非常非常不確定的事,就需要了解大量的資訊。相反,如果已經對某件事瞭解較多,則不需要太多的資訊就能把它搞清楚。所以從這個角度可以引出:資訊量的多少就等於判斷某件事不確定性的多少,可以這樣理解:(所需)資訊量越大,該件事的不確定性越大

。我們經常說,一句話包含有多少資訊,其實就是指它不確定性的多與少,而這句話可以這樣理解,太陽從東北出來了,這句話資訊量很少,因為這句話是句廢話,人都直接太陽從東邊出來,這句話不確定性為0;如果有人說太陽從西邊出來了,這句話資訊量就大了,因為不確定性很強。
於是,引例中第一種劃分的不確定性(所需資訊量)就等於“4塊錢”,也就是判斷這件事所需資訊量為“4塊錢”,因為我花4塊錢就可以解決這個不確定性。當然,夏農不是用錢,而是用“位元”(bit)這個概念來度量資訊量。一個位元組就是8位元。在上面的引例第一種情況中,“誰是冠軍”這條訊息的資訊量是4位元。那4位元是怎麼計算來的呢?第二種情況的資訊量又是多少呢?

夏農指出,它的準確資訊量應該是: 

其中log表示以2為底的對數,p1,p2,...,p16分別是這16支球隊奪冠的概率。夏農把它稱為“資訊熵(Entropy),一般用符號H表示,單位是位元。當16支球隊奪冠概率相同時,對應的資訊熵就是4位元。並且等概率時的資訊熵最大,即引例中的(所需)資訊量不可能大於4。

對於任意一個隨機變數X(比如得冠軍的球隊),它的熵定義如下: 

我們可以看到,當概率均等(p=1−p=0.5)時,資訊熵最大,也就是說此時的不確定性最大,要把它搞清楚,所需要的資訊量也就越大。

總的來說,資訊熵就是判斷某件事所需資訊量的度量。

2.2條件熵

在談條件熵(condition entropy)之前,我們先來看看資訊的作用。

一個事物,內部會有不確定性,假定為U;從外部消除這個不確定性唯一的辦法就

也就是在給定資訊I條件下後該件事物的新的熵。

2.3 資訊增益

我們在引例中說過:若一種劃分能使資料的“不確定性”減少得越多,就意味著該劃分能獲取更多的資訊,而我們就更傾向於採取這樣的劃分。也是就說,存在某個事物I,它使得H(U|I)要儘可能的小,即當引入資訊I之後該事件的熵變小了。

來源:

https://blog.csdn.net/The_lastest/article/details/78906751