機器學習 決策樹

2022-08-10 09:00:17 字數 2222 閱讀 9805

決策樹是簡單的,易懂的,易實現的,同樣也是強大的。

決策樹本身是一連串的if-else的組合,其最關鍵的問題就是對於乙個輸入資料集我們應該怎麼去尋找這個if-else規則。按照先賢們的分法主要有如下幾種:id3,c4.5,cart。本文也將介紹這三種決策樹。

一、id3

要想弄明白id3決策樹,我們必須先了解資訊理論的開創者——夏農對資訊是如何量化的。

(1)熵

熵(entropy),乙個無法理解的字,夏農給了他的定義:表示隨機變數不確定的度量。假設x是乙個有限的隨機變數,其概率分布為:p(x=xi)=pi,則熵的定義為:

h(x) = -∑pilog(pi)

h(y|x) = ∑pih(y|x=xi)

當我們對資訊量化之後,我們就可以根據這些量化後的數值來選取決策樹的分類規則。我們用資訊增益,表示得知特徵x的資訊如何對類y的資訊不確定性的減少程度。我們如下定義:特徵a對訓練資料集d的資訊增益g(d,a)等於集合d的經驗熵與特徵a給定條件下d的經驗條件熵之差,即:

g(d,a)=h(d)-h(d|a)

那麼根據資訊增益我們特徵選取的方法如下,針對每個訓練資料集d,計算每個特徵的資訊增益,並比較他們的大小,選擇資訊增益最大的特徵。設訓練資料集d,|d|表示其樣本容量,設k個類ck,k=1,2,……k,|ck|為該類的樣本個數,∑|ck|=|d|。設特徵a有n個不同的取值,根據特徵a我們將整個d劃分為n個子集d1,d2,……dn。記子集di中屬於類ck的樣本集合記為dik。演算法描述如下:

輸入:訓練資料集d和特徵a;

(1)計算資料集d的經驗熵h(d),h(d)=∑|ck|/|d|log|ck|/|d|;

(2)計算特徵a對資料集d的經驗條件熵h(d|a),h(d|a)=∑|di|/|d|h(di)

(3)得到資訊增益:g(d,a)=h(d)-h(d|a)

得到資訊增益演算法後我們來描述id3演算法來生成決策樹:

輸入:訓練資料集d,特徵集a,閾值ε

(1)若d為同一類資料,則t為單節點樹,返回該類;

(2)若a為空,則t為單節點樹,並將d中例項數最大的類作為節點值返回;

(3)否則計算所有a中所有特徵的資訊增益,選擇資訊增益最大的ag;

(4)如果ag資訊增益小於閾值ε,則以d中例項最大的類標記,返回t;

(5)否則,對的每乙個可能值將d分割為若干非空子集,將di中例項最大的類作為標記,構建子節點,返回t;

(6)對第i個子節點,以di為訓練集,以剩餘的特徵集遞迴呼叫。

就這樣我們構造了一顆決策樹,id3演算法本質是從經驗概率的極大似然估計。

二、c4.5

c4.5相比於id3只是把資訊增益換成了資訊增益比而已,其餘一致。

三、決策樹剪枝

按照我們的演算法,一步一步的訓練下去,會對輸入的訓練集有個近乎100%的準確分類,但顯然這會導致overfitting,為了避免這種情況出現我們要對生成的樹進行剪枝。剪枝可以分為預剪枝和後剪枝,預剪枝是提前設定好的乙個葉子數目,當葉子數目達到閾值時就不再生成,但這顯然可能會導致分類準確率的下降,所以我們一般採用後剪枝。

決策樹的剪枝往往通過極小化決策樹的整體的損失函式來實現,設樹t的葉結點個數為|t|,t是樹t的葉結點,該節點上有nt個樣本點,其中k類的有ntk,我們如此定義決策樹的損失函式:

c(t)=∑ntht(t)+α|t|

α|t|就相當於正則化項,與其他機器學習演算法一致。我們就依此來減去能使cost function變小的葉子節點。

四、c&rt

c&rt全稱是classfication and regression tree,顯然這種決策可以用於分類或者回歸,我們只描述分類準則就不再贅述整個樹的分類演算法。

對於回歸樹,我們用平方誤差準則。對於分類樹,我們用gini index最小化準則。c&rt的剪枝演算法不同於上述的剪枝演算法,但因為我寫乏了,下次有機會補上!

機器學習 決策樹

一 基本概念 決策樹 decision tree 是一種基本的分類與回歸方法。決策樹模型呈樹形結構,在分類問題中,表示屬於特徵對例項進行分類的過程,它可以認為是if then規則的集合,也可以認為是電議在特徵空間與類空空上的條件概率分布,其主要優點是模型具有可讀性,分類速度快。決策樹的學習通常包括3...

機器學習 決策樹

我覺得決策樹是機器學習所有演算法中最可愛的了 沒有那麼多複雜的數學公式哈哈 下圖是一棵決策樹,用來判斷西瓜是好瓜還是壞瓜 決策過程中提出的每個判定問題都是都對某個屬性的測試,每個測試結果要麼推導出最終結論,要麼匯出進一步判斷的問題,在上次決策結果限定的範圍內做進一步判斷。從上圖可以看出,葉節點對應決...

機器學習 決策樹

一 演算法簡介 決策樹一般都是自上而下來生成的,每個決策後事件 即自然狀態 都可能引出兩個或多個事件,導致結果的不同,把這種結構分支畫成形狀很像一棵樹的枝幹,故稱為決策樹。決策樹能夠讀取資料集合,並且決策樹很多任務都是為了資料中所蘊含的知識資訊,因此決策樹可以使用不熟悉的資料集合,並從中提取一系列規...