決策樹算法推導分析

Author: DivinerShi

決策樹模型就是利用樹形結構來按特徵對數據進行分類,本質上是從訓練數據集中歸納出一組分類規則,以每個樹的節點爲分裂節點,分裂時按不同的分裂規則來劃分數據。葉子節點代表對應樣本所屬類別。

由決策樹的根節點到葉子節點的每一條路徑構成一條規則:路徑上內部節點的特徵對應着規則的條件,而葉節點的類對應着規則的結論。

**優點:**輸入數據可以不做歸一化,數據清洗階段可以相對少做許多工作;對缺失值不敏感,可以處理不相關特徵數據;效率高,速度快。
**缺點:**連續性特徵往往需要離散化;處理特徵關聯性比較強的數據表現得不是很好。

**可參考:**http://blog.csdn.net/keepreder/article/details/47168383

決策樹路徑的一個重要性質:互斥並且完備。就是說每個實例都被一條路徑或者一條規則所覆蓋,而且只被一條路徑或者一條規則所覆蓋。這裏所謂覆蓋指實例的特徵與路徑上的特徵一致或者實例滿足規則的條件。

瞭解決策樹前一定要先了解熵,熵在信息論中表示隨機變量不確定性的度量,用於描述隨機變量的混亂度,熵的值越大表示該隨機變量很混亂,熵值低表示該隨機變量不混亂,可以很清晰的對其進行區分。所以我們在劃分決策樹的時候,就是盡力去找到能使得熵值很低的特徵來對數據進行劃分,以此作爲決策樹的劃分準則。

到底什麼是熵?

假設現在有32只隊伍進入世界盃,但是你錯過了直播,你去問其他人,那隻隊伍是冠軍?但是他不要讓你猜,猜一次一塊錢,猜對爲止。那麼最省錢的方式是:先問:冠軍球隊在1-16號之間嗎?如果猜對了,則繼續問:是在1-8號之間嗎?這就是一個二分的問題,這樣去猜是最快的,而我們這樣只需要猜五次就肯定能猜到了那隻隊伍是冠軍了。所以這個問題值五塊錢。
計算機中數據都是用“比特”(bit)來表示的,所以香農用bit來表示一個信息的信息量。一個比特是一位二進制數,一個字節是8個比特。比如上面的球隊冠軍問題信息量就是5比特,如果64個球隊找冠軍,那麼信息量就是6比特,可以看出來,具體的計算如下
(log32=5;log64=6)。
這裏又有一個問題,其實各個球隊奪冠的概率是不一樣的,像西班牙、巴西、德國、意大利奪冠的概率就比日本、南非、韓國大很多。所以其實在真正計算的時候,是可以加入一些先驗信息的。那麼當我們在猜球隊的時候,可以把一些概率大的少數球隊猜一組,概率小的猜一組,它的準確信息量應該是
這裏寫圖片描述
其中,這裏寫圖片描述分別是這32支球隊奪冠的概率。香農把它稱爲“信息熵”,一般用符號H表示,單位是比特。當概率相同的時候就是5比特。對於任意一個隨機變量X,它的熵定義:
這裏寫圖片描述這裏對數以2爲底或者以e爲底時熵的單位分別稱爲比特(bit)或納特(nat)。

條件熵

H(Y|X)表示在已知隨機變量X的條件下隨機變量Y的不確定性。隨機變量X給定的條件下隨機變量Y的條件熵(conditional entropy)H(Y|X),定義爲X給定條件下Y的條件概率分佈的熵對X的數學期望
這裏寫圖片描述

信息增益

信息增益表示得知特徵X的信息而使得類Y的信息的不確定性減少的程度。
特徵A對訓練數據集D的信息增益g(D,A),定義爲集合D的經驗熵H(D)與特徵A給定條件下D的經驗條件熵H(D|A)之差,即這裏寫圖片描述
一般地,熵H(Y)與條件熵H(Y|X)之差稱爲互信息

設:
這裏寫圖片描述
信息增益的計算

1.計算數據集D的熵H(D)
這裏寫圖片描述
2.計算特徵A對數據集D的條件熵H(D|A)
這裏寫圖片描述
3.計算信息增益
這裏寫圖片描述

信息增益比

特徵A對訓練數據集D的信息增益比這裏寫圖片描述定義爲其信息增益g(D,A)與訓練數據集D關於特徵A的值的熵這裏寫圖片描述之比,即
這裏寫圖片描述
,n是特徵A取值的個數。

Gini指數

分類問題中,假設有K個類,樣本點屬於第k個類的概率爲這裏寫圖片描述,則概率分佈的基尼指數定義爲
這裏寫圖片描述
對於給定的樣本集合D,其基尼指數爲
這裏寫圖片描述
這裏寫圖片描述是D中屬於第k類的樣本子集,K是類的個數。
特徵A的條件下,根據A是否取某個值可以將集合D分劃爲兩子集,其基尼指數定義爲
這裏寫圖片描述

信息增益、信息增益比、gini指數的聯繫

因爲信息增益的計算中,可以看上面的公式,條件熵的每個累乘因子中都有一個概率值這裏寫圖片描述,表達的是特徵每個項所佔總數據量的比。這樣的話,如果某個特徵的選擇很多的話,極端情況下,該特徵將每個樣本劃分成一個子集,那麼條件熵約等於0,那麼信息增益就會很高,但是其實這種情況混亂度是很高的。也就是說信息增益存在偏向於選擇取值較多的特徵的問題。所以信息增益比通過對信息增益除以數據集關於特徵A的值的熵來消除該問題。
而cart樹因爲本身就是二叉樹,不存在偏向於有多個選擇的特徵的問題,但gini指數進一步對熵做了泰勒展開,基尼係數就是f(x)=-lnx在x=1的地方一階泰勒展開得到f(x)=1-x。所以gini=sum[x(1-x)]=1-sum(x^2)

決策樹算法(ID3、C4.5)

這裏寫圖片描述

CART樹

CART總體思想和上面寫的一樣,只是CART是二叉樹,每次劃分都是一個二分,所以在分割數據集的時候需要去尋找最優切分變量和最優切分點。

迴歸樹

迴歸樹的話,選擇最優切分變量和切分點用最小二乘去計算,使得找到的最優切分變量和最優切分點所計算得到的值最小。以此變量和切點分割數據集。並以分割好的區域的均值作爲預測值輸出。

分類樹
分類樹的話,用基尼指數去做分類,計算特徵不同值的基尼指數,選擇最小的作爲切分點。

參考:

1.統計學習方法-李航
2.數學之美-吳軍

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章