機器學習(5) 決策樹(上)原理

2021-07-06 07:38:03 字數 4598 閱讀 9071

決策樹是機器學習中一種基本的分類和回歸演算法,是依託於策略抉擇而建立起來的樹。其主要優點是模型具有可讀性,分類速度快,易於理解。決策樹的思想主要**於quinlan在2023年提出的id3演算法和2023年提出的c4.5演算法,以及有breiman等人在2023年提出的cart演算法。由於本章內容較多,將分兩篇介紹決策樹的原理和演算法實現。

1.什麼是決策樹

決策樹簡單來說就是帶有判決規則(if-then)的一種樹,可以依據樹中的判決規則來**未知樣本的類別和值。用乙個網上通俗易懂的例子(相親)來說明:

2.決策樹模型和學習

在了解決策樹的乙個直觀定義後,我們來看在數學上如何表達這種分類方法。

定義:決策樹是乙個屬性結構的**模型,代表物件屬性和物件值之間的一種對映關係。它又節點(node)和有向邊(directed edge)組成,其節點有兩種型別:內節點(internal node)和葉節點(leaf node),內部節點表示乙個特徵或屬性,葉節點表示乙個類。

如上圖所示的相親例子,藍色的橢圓內節點表示的是物件的屬性,橘黃色的矩形葉節點表示分類結果(是否相親),有向邊上的值則表示物件每個屬性或特徵中可能取的值。

決策樹的學習本質上是從訓練集中歸納出一組分類規則,得到與資料集矛盾較小的決策樹,同時具有很好的泛化能力。決策樹學習的損失函式通常是正則化的極大似然函式,通常採用啟發式方法,近似求解這一最優化問題。

決策樹學習演算法包含特徵選擇、決策樹生成與決策樹的剪枝。決策樹表示的是乙個條件概率分布,所以深淺不同的決策樹對應著不同複雜程度的概率模型。決策樹的生成對應著模型的區域性選擇(區域性最優),決策樹的剪枝對應著全域性選擇(全域性最優)。決策樹常用的演算法有id3,c4.5,cart,下面通過乙個簡單的例子來分別介紹這幾種演算法。

上圖是乙個比較典型的決策樹分類用的貸款申請樣本資料集:樣本特徵x(

i)的型別有年齡是否有工作、是否有房子和信貸情況,樣本類別y(

i)取值是兩類是、否,最終的分類結果就是根據樣本的特徵來**是否給予申請人貸款。在介紹演算法之前,我們先介紹幾個相關的概念:

3.演算法介紹

id3演算法

在前面我已經介紹了資訊增益計算的方法,在id3演算法中,我們通過資訊增益來選取相應的特徵,首先計算每個特徵對樣本類別的資訊增益:

(1)年齡: g(

y,x1

)=h(

y)−h

(y|x

1)=0.971

−0.888

=0.083

(2)工作: g(

y,x2

)=h(

y)−h

(y|x

2)=0.971−(

515∗0

+1015∗

(−410

∗log410

−610∗

log610)

)=0.324

(3)房子: g(

y,x3

)=h(

y)−h

(y|x

3)=0.971−(

615∗0

+915∗

(−39

∗log39

−69∗

log69)

)=0.420

(2)貸款情況: g(

y,x4

)=h(

y)−h

(y|x

4)=0.971−(

415∗0

+615∗

(−46

∗log46

−26∗

log26)

+515∗

(−45

∗log45

−15∗

log15)

)=0.363

比較各特徵的資訊增益值,可以看到房子作為先知條件時,資訊增益值最大,所以選取房子作為最優特徵,選取出來的分類樹為:

從圖中可以看到,有房子的是肯定能夠借到貸款的,沒房子的,要依據別的條件繼續判斷。在沒有房子的樣本中,我們繼續計算每個特徵在此表上的增益,這樣一直到所有樣本完全分開就能得到乙個適應樣本集的決策樹。本示例的最終決策樹為:

演算法具體實現將在下一章進行詳細的說明。id3演算法只有樹的生成,沒有樹的剪枝,所以容易產生過擬合現象。

c4.5演算法

c4.5演算法與id3演算法在整體流程上很相似,不同之處在於特徵選擇用的是資訊增益,然後最後有剪枝的過程。依據資訊增益率,我們來計算上述例子:

(1)年齡: h(

x1)=

−515log515

−515log515

−515log515

=1.585 g

r(y,

x1)=

h(y)

−h(y

|x1)

h(x1

)=0.052

(2)工作: h(

x2)=

−515log515

−1015log

1015

=0.9183 g

r(y,

x2)=

h(y)

−h(y

|x2)

h(x2

)=0.3529

(3)房子: h(

x3)=

−615log615

−915log915

=0.9709 g

r(y,

x3)=

h(y)

−h(y

|x3)

h(x3

)=0.4325

(2)貸款情況: h(

x4)=

−515log515

−615log615

−415log415

=1.5656 g

r(y,

x4)=

h(y)

−h(y

|x4)

h(x4

)=0.2254

通過上述計算可以看出,增益比最大的還是第三個特徵:房子,因此還是選擇第三個特徵作為最優特徵進行初始決策。

c4.5演算法流程圖與id3相似,在此就不贅述。

cart演算法

cart演算法主要有兩部分組成:

(1) 決策樹的生成:基於訓練資料集生成決策樹,生成的決策樹要盡量打。這與id3演算法類似,不同之處也是特徵選取的方式;

(2) 決策樹的剪枝:用驗證資料集對已生成的樹進行剪枝並選擇最優子樹,此時用損失函式最小作為剪枝的標準。

cart演算法可以用於回歸,即建立回歸樹。在終於分類時,其演算法流程與id3較為類似,不同的是特徵選取,選擇的是最小基尼指數。

4.決策樹剪枝

決策樹生成演算法是遞迴地生成決策樹,知道不能終止。這樣產生的決策樹往往分類精細,對訓練資料集分類準確,但是對未知資料集卻沒有那麼準確,有比較嚴重的過擬合問題。因此,為了簡化模型的複雜度,使模型的泛化能力更強,需要對已生成的決策樹進行剪枝。

剪枝的過程是通過極小化決策樹整體損失函式來實現的。假設樹的葉節點數為|t

| ,

t 是樹

t的葉節點,該葉節點上有nt

個樣本點,其中屬於

k 類的樣本點有nt

k個,ht

(t) 為葉節點的經驗熵,α≥

0 為引數。則決策樹學習的整體損失函式可以定義為: ca

(t)=

∑i=1

|t|n

tht(

t)+α

|t|

其中經驗熵ht

(t)=

−∑kn

tknt

logntk

nt,則第一項可以表示為: c(

t)=∑

i=1|

t|nt

ht(t

)=−∑

i=1|

t|∑k

ntklognt

knt

ca(t

)=c(

t)+α

|t|

其中c(t

) 表示模型對訓練資料的**誤差,|t

| 表示模型的複雜度,引數α≥

0 控制兩者之間的影響,當

α 較大時,促使模型變得簡單,α=

0 時表示模型損失函式只與訓練資料集擬合程度相關,與模型複雜度無關。

決策樹的剪枝,就是在

α 確定時,選擇損失函式最小的決策樹。當

α 確定時,子樹越大,模型複雜度越高,往往與訓練資料擬合越好,但是在未知資料集上表現可能會較差;相反,子樹越小,模型複雜度越低,訓練資料擬合不好,但是泛化能力好。

ps:

機器學習 十二 決策樹(上)

決策樹 decision tree 是在已知各種情況發生概率的基礎上,通過構成決策樹來求取淨現值的期望值大於等於零的概率,評價專案風險,判斷其可行性的決策分析方法,是直觀運用概率分析的一種 法。由於這種決策分支畫成圖形很像一棵樹的枝幹,故稱決策樹。在機器學習中,決策樹是乙個 模型,他代表的是物件屬性...

機器學習筆記 決策樹生成原理

決策樹是一種屬性結構的輔助決策工具。樹枝節點表示決策規則,也有叫屬性 樹葉節點表示結果,也有叫類別。自上而下由根節點依次延伸,根據屬性閾值不同延伸到不同的方向,到達下乙個屬性節點,並繼續延伸,直至最終的葉子節點,也就是分類完成。決策樹學習是一種逼近離散值目標函式的方法,該方法學習到的函式被表示為乙個...

機器學習 決策樹原理與應用

決策樹是一種基於規則的方法,它用一組巢狀的規則進行。在樹的每個決策節點處,根據判斷結果進入乙個分支,反覆執行這種操作直到到達葉子節點,得到 結果。這些規則是通過訓練得到的而不是人工制定的。一般將決策樹設計成二叉樹。與樹的葉子節點,非葉子節點相對應,決策樹的的節點,分為兩種型別。1 決策節點 在這些節...