1. 程式人生 > >大白話講解決策樹【案例】:如何區分西方人和東方人

大白話講解決策樹【案例】:如何區分西方人和東方人

【前言】:

決策樹是一種十分常用的分類方法。它是一種監督學習,所謂監督學習就是給定一堆樣本,每個樣本都有一組屬性和一個類別,這些類別是事先確定的,那麼通過學習得到一個分類器,這個分類器能夠對新出現的物件給出正確的分類。

決策樹有很多種演算法:CHAID,CART,C4.5,C5.0。不過決策樹的核心理論都其實差不多,本文將從介紹ID3的思想,方便各位讀者理解決策樹的核心理念。

【本文可以告訴你】:

1、        決策樹最基礎的原理

2、        決策樹如何選擇特徵值的

【正文】決策樹判斷是否為東方人:

假設我們用有11個人,各自的情況如下:

序號

眼睛顏色

頭髮顏色

身高

是否為東方人

1

Black

Black

Short

Yes

2

Black

White

Tall

Yes

3

Black

White

Short

Yes

4

Black

Black

Tall

Yes

5

Brown

Black

Tall

Yes

6

Brown

White

Short

Yes

7

Blue

Gold

Tall

No

8

Blue

Gold

Short

No

9

Blue

White

Tall

No

10

Blue

Black

Short

No

11

Brown

Gold

Short

No

分類方法一:第一層用眼睛的顏色,第二層用頭髮的顏色進行分類。如圖:(+號為東方人)


我們可以看到如果用眼睛的顏色分類,我們可以把絕大部分的人分類清楚。黑色眼睛為東方人,藍色眼睛為西方人。如果碰到棕色的眼睛,我們需要再用頭髮的顏色進一步劃分。頭髮為黑色和白色的為東方人,金色為西方人。就這樣“區分東方人的決策樹就完成了。“

有人會問如果我先用身高去進行劃分呢?這也是可以的,如下圖:

我們先用了身高,再用了頭髮顏色,再用眼睛顏色做了一個決策樹。

問題:

那我們應該用哪顆樹比較好呢?計算機又是如何去選擇的呢?(這個答案就是決策樹的奧祕)

對比兩棵樹的第一層各自的特徵值,第一顆樹用眼睛的顏色。

猜測準確度性從原來的6/11 上升到了 10/11。(說明:未分類前,我們全部猜測11人是東方人的正確度為6/11。通過眼睛顏色分類後,我們只有中間的3個需要猜測,另外8個都可以確定是否為東方人。所以假設棕色眼睛為東方人,我們會猜錯1個人。確率升為10/11)

再對比第二顆決策樹,它使用的是身高。


我們可以看到用身高分類,我們的準確度仍舊是6/11。其實沒有太大改變。

也就是說:身高對於我們判斷是否為東方人幾乎沒有任何作用,而眼睛的顏色對判斷是否為東方人起了很大的作用。

那計算機是如何判斷有沒有作用的呢?

【關鍵理解部分】

數學家用了資訊量的“熵”原理來衡量這個特徵值是否對我們的分類有多大作用。

有一個公式介紹樣本群是否為均勻分佈,如下:

這個公式值的範圍為(0~1),0說明樣本沒有雜質都是同一類的,1說明樣本里2類的數目相同。

來一個【例子】理解起來就很方便了:

1)假設,我們11個樣本里面全部都是東方人。即東方人x=11,西方人y=0;我們代入公式:i=-1*0+0*無窮大=0

2)假設,我們12個樣本里面一半是東方人,一半西方人。即東方人x=6,西方人=6;我們代入公式:i=-0.5*(-1)+(-0.5)*(-1)=1

這個公式就可以告訴我們一個樣本里面的類別分佈情況。瞭解了這個我們可以看一下我們剛剛真實的資料的i是多少?(可以自己算一下。)

 

i= -5/11*LOG2(5/11)-6/11*LOG2(6/11)=0.99403

我們來計算一下分類後的i為多少?

I1=0;i2=0.917;i3=0  則分類後的加上權重:i=4/11*i1+3/11*i2+4/11*i3=0.25

我們可以看到11個樣本的i從原來的0.994到了0.25,那麼用眼睛顏色分類就是解決了0.744的不確定性。這0.744我們就成為information gain。計算機通過計算information gain 來確定哪個欄位效果更好。

所以回到我們原來的案例,如果用身高去做第一層分類,我們會發現它得到的information gain 比眼睛顏色小,所以計算機就會選擇眼睛顏色做第一層。

這就是ID3的核心思想,這也是很多決策樹的重要思想。後續c4.5 C5.0 也是基於該模型的改進,改進內容如下:

1、        ID3只能用類別型變數的欄位

2、        不允許空置

3、        沒有考慮砍樹(過擬合)

4、        喜歡多型別變數(這個要說明一下,如果我們把序列號作為ID3的特徵欄位的話,它就會直接輸出每個序號對應的東方人和西方人。這樣對於以後進入的資料就沒有任何的預測功能。如果您全部能理解ID就知道為什麼會出現這個狀況,更多內容會在下一篇決策樹優化案例介紹)

總結:

ID3是理解決策樹的開始,理解了它的原理後續的一些決策樹就會迎刃而解。同樣理解了決策樹的原理後,你在使用決策樹你就理解各種各樣的現象。不只是簡單的使用軟體出結果。

非常歡迎各位給我提意見。

參考文獻:

《資料探勘:概念與技術》