決策樹演算法,如何快速判斷美女會不會嫁給你

2021-09-25 23:23:38 字數 2962 閱讀 8124

學習決策樹必先了解資訊熵

公式:不太清楚的,可以回頭再去看一遍,學習決策樹之前至少需要了解資訊熵是什麼。

通過例子學習決策樹

假設下表就是通過隨機採訪多位美女得到的資料,那麼如何根據下表的資料,以及自身的條件,以盡量少的次數判斷美女是否願意嫁給你呢?

長相性格身高上進心嫁不嫁帥好

高不上進嫁不帥

好矮上進不嫁不帥好

高上進嫁帥

不好矮不上進不嫁帥不好

高上進嫁不帥

不好高上進不嫁不帥好

矮不上進不嫁帥

不好矮上進嫁

帥不好高上進

嫁不帥好矮

不上進不嫁

首先分析,嫁與不嫁這是乙個充滿不確定性的隨機事件,記為事件x

根據統計,嫁的樣本數量為5,不嫁的樣本數量也是5,所以事件x的概率分布(嫁:1/2,不嫁:1/2)

那麼事件x的不確定性,也就是資訊熵 h(x) = -(0.5log0.5 + 0.5log0.5) = 1

顯然我們可以知道,通過詢問男方不同的條件,可以降低女方嫁不嫁這件事情的不確定性(降低這件事的資訊熵)。

我們令詢問條件事件為y(比如詢問長相),那麼已知該條件後的事件x的資訊熵是:

上述第乙個

這就是條件熵,表示隨機事件x在已知條件y的情況下的資訊熵是多少(不確定性是多少)。

現在通過逐步詢問男方的不同條件,並計算該條件下的條件熵是多少。

第一種情況:第一步詢問長相

h(嫁不嫁|長相)

= -p(嫁,帥)logp(嫁|帥) - p(嫁,不帥)logp(嫁|不帥) - p(不嫁,帥)logp(不嫁|帥) - p(不嫁,不帥)logp(不嫁|不帥)

= -0.4log0.8 - 0.1log0.2 - 0.1log0.2 - 0.4log0.8

= 0.72

決策樹中有乙個常用的概念叫資訊增益,表示該資訊會帶來多少的資訊量,也就是該資訊會降低隨機事件的資訊熵是多少。

在這裡,長相的資訊增益=資訊熵-條件熵=h(嫁不嫁)-h(嫁不嫁|長相) = 1- 0.72 = 0.28 。

第二種情況:第一步詢問性格

h(嫁不嫁|性格)

= -p(嫁,好)logp(嫁|好) - p(嫁,不好)logp(嫁|不好) - p(不嫁,好)logp(不嫁|好) - p(不嫁,不好)logp(不嫁|不好)

= -0.2log0.4 - 0.3log0.6 - 0.3log0.6 - 0.2log0.4

= 0.97

性格的資訊增益=資訊熵-條件熵=h(嫁不嫁)-h(嫁不嫁|性格) = 1- 0.97 = 0.03 。

第三種情況:第一步詢問身高

h(嫁不嫁|身高)

= -p(嫁,高)logp(嫁|高) - p(嫁,矮)logp(嫁|矮) - p(不嫁,高)logp(不嫁|高) - p(不嫁,矮)logp(不嫁|矮)

= -0.4log0.8 - 0.1log0.2 - 0.1log0.2 - 0.4log0.8

= 0.72

身高的資訊增益=資訊熵-條件熵=h(嫁不嫁)-h(嫁不嫁|身高) = 1- 0.72 = 0.28 。

第四種情況:第一步詢問上進心

h(嫁不嫁|上進行)

= -p(嫁,上進)logp(嫁|上進) - p(嫁,不上進)logp(嫁|不上進) - p(不嫁,上進)logp(不嫁|上進) - p(不嫁,不上進)logp(不嫁|不上進)

= -0.4log0.67 - 0.1log0.25 - 0.2log0.33 - 0.3log0.75 

= 0.88

上進心的資訊增益=資訊熵-條件熵=h(嫁不嫁)-h(嫁不嫁|身高) = 1- 0.88 = 0.12 。

通過以上的計算結果,我們可以知道,第一步詢問長相或者身高,資訊增益最高,也就是說第一步詢問長相或者身高後,妹紙嫁不嫁的不確定性更低了。

我們這裡首先詢問資訊增益高的條件,是為了讓整個事件的不確定性快速降低,從而增加對事件的確定性判斷。這和我們生活中的直覺是相似的,資訊增益高代表問題更加受妹紙的重視,那麼首先詢問妹紙最重視的條件,妹紙嫁與不嫁這件事情的就更確定更靠譜了。

同樣的步驟可以計算後面幾步詢問不同條件的的條件熵和資訊增益,直到男方這幾個條件全部已知或者條件熵降為0為止。

所以每一步都從資訊增益高的特徵問起,有可能使我們不需要問完所有的特徵(這裡指長相、身高、性格、上進心),就已經能夠確定結果了。當然,如果問完了所有特徵,資訊熵還沒有降為0,那麼,就計算符合你這個條件下,妹紙嫁和不嫁的概率,取概率高的結果為最終結果。

決策樹演算法

從這個例子的整個計算過程可以看出,決策樹演算法,就是計算不同特徵對分類的影響重要程度,也就是資訊增益,然後按照這個重要程度從高到低,依次判斷在各特徵下分類的概率,結束條件就是:直到在某個特徵下,分類結果已經確定,或者在所有特徵已經判斷完,那麼就統計在該特徵下各分類的概率,以概率最高的為最終分類結果。

根據決策樹的判斷過程,大致如下圖(允許偷懶一下,此圖並不是和文章中的資料一致,僅做理解,圖來自網際網路,侵刪),不過在每個分支的最後可能還是會有多個結果,這時候就要計算各個結果的概率了,並以概率最高者為最終分類結果。

其中的難點就在特徵順序的選擇,特徵順序的選擇就需要計算資訊增益。

標題中的問題,如何快速判斷美女會不會嫁給你,就是從資訊增益高的特徵開始判斷,如上圖,也許某個特徵的資訊增益特別高,能將嫁與不嫁這個事件的資訊熵降(不確定性)為0,比如是否富有(我們的例子中沒有提及這個特徵),如果富有,在少量樣本下,可能所有的妹紙都會選擇嫁,也就是上圖的最左側的分支。對應到生活中,就是首先判斷妹紙最看中的特徵,能比從不重要的特徵開始判斷,要更快得出妹紙嫁與不嫁的結論。

決策樹演算法

決策樹是一種樹型結構,其中每個內部結點表示在乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉結點代表一種類別。決策樹學習是以例項為基礎的歸納學習,採用的是自頂向下的遞迴方法,其基本思想是以資訊熵為度量構造一棵熵值下降最快的樹,到葉子結點處的熵值為零,此時每個葉節點中的例項都屬於同一類。決策樹學習演...

決策樹演算法

本文主要介紹id3 c4.5和cart演算法 決策樹起源於概念學習系統 cls 概念學習模型 是乙個事先定義的範疇集合和一些有關例子是否落入給定範疇的判定 概念學習的主要任務 是判斷所給定事物的屬性或特性,並且正確地區分這些事物,將其劃分到某乙個範疇 對於如下決策樹模型 我們首先考慮他的屬性outl...

決策樹演算法

引 最近老師布置了課堂展示的作業,主題是決策樹,老師還舉了買西瓜的決策例子,感覺貼近生活也很有意思。在這之前沒有了解過這個概念,通過幾個禮拜的學習收穫不少。一 首先,什麼是決策樹?個人而言,決策樹就是將人在做決策時的思維脈絡以樹的形式展示出來的產物,即決策的過程模型。這是一棵去不去打高爾夫球的決策樹...