1. 程式人生 > >決策樹的原理與構建--圍繞一個例項展開

決策樹的原理與構建--圍繞一個例項展開

1. 什麼是決策樹:

    決策樹是一種預測模型,用來進行分類,是一種有監督學習。樹中每個節點表示某個物件,而每個分叉路徑則代表的某個可能的屬性值,而每個葉結點則對應從根節點到該葉節點所經歷的路徑所表示的物件的值

2 決策樹例項(圍繞一個例子)

    問題1. 基於表1中給出的訓練集,給出分別使用極小熵和極大熵選擇擴充套件屬性所生成的兩棵決策樹。然後給出你對樹的“大小”的理解,並按你的理解比較兩種方法生成的決策樹大小。

  問題1. 基於表1中給出的訓練集,給出分別使用極小熵和極大熵選擇擴充套件屬性所生成的兩棵決策樹。然後給出你對樹的“大小”的理解,並按你的理解比較兩種方法生成的決策樹大小。

(1) 極小熵生成決策樹,設表1給的資料集為D,根據最大資訊增益選擇最優特徵生成極小熵決策樹,計算各特徵A1、A2、A3、A4、A5對資料D的資訊增益,統計結果為

class=1

class=2

D

8

7

H(D)= 0.9968

A1

D1

8

2

6

g(D,A1)=0.2880

D2

7

6

1

A2

D1

5

4

1

g(D,A2)=0.1398

D2

4

1

3

D3

6

3

3

A3

D1

3

1

2

g(D,A3)=0.0292

D2

12

7

5

A4

D1

7

6

1

g(D,A4)=0.2880

D2

8

2

6

A5

D1

6

5

1

g(D,A5)=0.4131

D2

4

0

4

D3

5

3

2

上表中的D1和D2,D3分別表示在各個特徵中取值為1、2和3的樣本子集,根據計算後統計在表格中的資料可得:

H(D)=-8/15*log2(8/15)—7/15*log2(7/15)=0.9968

g(D,A1)=H(D)-[8/15*H(D1)+7/15*H(D2)]=0.2880

g(D,A2)=H(D)-[5/15*H(D1)+4/15*H(D2)+6/15*H(D3)]=0.1398

g(D,A3)=H(D)-[3/15*H(D1)+12/15*H(D2)]=0.0292

g(D,A4)=H(D)-[7/15*H(D1)+8/15*H(D2)]=0.2880

g(D,A5)=H(D)-[6/15*H(D1)+4/15*H(D2)+5/15*H(D3)]=0.4131

根據上面的計算結果,特徵A5的資訊增益最大,所以選擇A5為根節點。根據A5的取值將樣本分成3個結合,S1={2,3,6,8,12,13},S2={1,5,7,14},S3={4,9,10,11,15}其中集合S2已全部屬於同一個類,不需要再分,已成為葉子節點。對於集合S1,計算統計結果為:

class=1

class=2

D

5

1

H(D)=0.6500

A1

D1

1

1

0

G(D,A1)=0.0484

D2

5

4

1

A2

D1

3

2

1

G(D,A2)=0.1909

D2

1

1

0

D3

2

2

0

A3

D1

1

1

0

G(D,A3)=0.0484

D2

5

4

1

A4

D1

5

5

0

G(D,A4)=0.6500

D2

1

0

1

H(D)=0.6500 g(D,A1)= 0.0484 g(D,A2)= 0.1909 g(D,A3)= 0.0484 g(D,A4)=0.6500

     根據計算結果,集合S1選擇A4為根結點。根據A4的取值,將S1集合劃分為S11={3,6,8,12,13}  S12={2},集合S11和集合S12已成為葉節點。對於集合S3,計算統計結果為:

class 1

class 2

D

3

2

H(D)=0.9710

A1

D1

3

1

2

G(D,A1)=0.4200

D2

2

2

0

A2

D1

2

2

0

G(D,A2)=0.5710

D2

1

1

0

D3

2

1

1

A3

D1

0

0

0

G(D,A3)=0

D2

5

3

2

A4

D1

2

1

1

G(D,A4)=0.0200

D2

3

2

1

H(D)=0.9710 g(D,A1)=0.4200 g(D,A2)=0.5710  g(D,A3)=0 g(D,A4)=0.0200

根據計算結果,所以集合S3選擇A2作為根結點,根據A2的取值將S3分成集合S31={4,11}集合S32={9}集合S33={10,15} 集合S32和集合S32已為葉子節點。對於集合S33,計算統計結果為

class 1

class 2

D

1

1

H(D)=1

A1

D1

1

0

1

G(D,A1)=1

D2

1

1

0

A3

D1

0

0

0

G(D,A3)=0

D2

2

1

1

A4

D1

2

1

1

G(D,A4)=0

D2

0

0

0

H(D)=1  g(D,A1)=1 g(D,A3)=0  g(D,A4)=0

     所以選擇A1作為集合S33的根節點。根據A1的取值劃分後的集合也都為葉子節點,至此極小熵決策樹就建立起來了,如下圖所示。

(2) 極大熵生成決策樹,同上面的極小熵建立決策樹類似,設表1中資料集為D。根據資訊增益最小選擇特徵建立決策樹。計算各特徵A1、A2、A3、A4、A5對資料D的資訊增益,統計結果為

class=1

class=2

D

8

7

H(D)= 0.9968

A1

D1

8

2

6

G(D,A1)= 0.2880

D2

7

6

1

A2

D1

5

4

1

G(D,A2)=0.1398

D2

4

1

3

D3

6

3

3

A3

D1

3

1

2

G(D,A3)= 0.0292

D2

12

7

5

A4

D1

7

6

1

G(D,A4)= 0.2880

D2

8

2

6

A5

D1

6

5

1

G(D,A5)=0.4131

D2

4

0

4

D3

5

3

2

  H(D)=0.9968g(D,A1)=0.2880 g(D,A2)=0.1398 g(D,A3)=0.0292 g(D,A4)=0.2880  g(D,A5)=0.4131

  根據上面計算結果,選擇最小增益A3作為根結果。根據A3的取值,將集合劃分S1={5,8,14},S2={1,2,3,4,6,7,9,10,11,12,13,15}.對於集合S1,計算統計結果為

class=1

class=2

D

1

2

H(D)=0.9183

A1

D1

2

0

2

G(D,A1)=0.9183

D2

1

1

0

A2

D1

1

1

0

G(D,A2)=0.9183

D2

1

0

1

D3

1

0

1

A4

D1

1

1

0

G(D,A4)= 0.9183

D2

2

0

2

A5

D1

1

1

0

G(D,A5)=0.9183

D2

2

0

2

D3

0

0

0

H(D)=0.9183 g(D,A1)=0.9183 g(D,A2)=0.9183 g(D,A4)=0.9183 g(D,A5)=0.9183

根據計算結果,選擇A1或A2或A4或A5都可以作為集合S1的根節點,這裡不妨選擇A1作為根節點,根據A1的取值將S1劃分成S11={5,14} ,S12={8},此時S11和S12已經為葉節點不需要在劃分。

對於集合S2,計算統計結果為

class=1

class=2

D

7

5

H(D)=0.9799

A1

D1

6

2

4

G(D,A1)= 0.1957

D2

6

5

1

A2

D1

4

3

1

G(D,A2)=0.0753

D2

3

1

2

D3

5

3

2

A4

D1

6

5

1

G(D,A4)=0.1957

D2

6

2

4

A5

D1

5

4

1

G(D,A5)= 0.2745

D2

2

0

2

D3

5

3

2

H(D)=0.9799 g(D,A1)=0.1957 g(D,A2)=0.0753 g(D,A4)=0.1957 g(D,A5)=0.2745

根據計算結果,選擇A2作為集合S2的根節點,根據A2的取值將集合S2劃分為S21={2,4,6,11},S22={7,9,12},S23={1,3,10,13,15},對於集合S21,計算統計結果為

class=1

class=2

D

3

1

H(D)=0.8113

A1

D1

1

1

0

G(D,A1)=0.1226

D2

3

2

1

A4

D1

1

1

0

G(D,A4)=0.1226

D2

3

2

1

A5

D1

2

1

1

G(D,A5)=0.3113

D2

0

0

0

D3

2

2

0

H(D)=0.8113  g(D,A1)=0.1226  g(D,A4)=0.1226  g(D,A5)=0.3113

根據計算結果,選擇A1和A4作為S21的根節點都可以,這裡不妨選A1為S21的根節點。根據A1的取值將S21劃分為S211={11},S212={2,4,6},其中S211已為葉節點。對於集合S212,計算統計結果為

class=1

class=2

D

2

1

H(D)=0.9183

A4

D1

1

1

0

G(D,A4)=0.2516

D2

2

1

1

A5

D1

2

1

1

G(D,A5)=0.2516

D2

0

0

0

D3

1

1

0

H(D)=0.9183  g(D,A4)=0.2516  g(D,A5)=0.2516

根據計算結果,選擇A4和A5作為S212的根節點都可以,這裡不妨選A4作為根節點。根據A4的取值將集合S212劃分為S2121={6}  S2122={2,4};對於集合S2122選擇A5作為根節點,根據A5的取值將集合S2122劃分為S21221={2}  S21223={4};此時集合S2121和集合S21221,S21223都為葉節點,對於集合S22,計算統計結果為

class=1

class=2

D

1

2

H(D)= 0.9183

A1

D1

2

0

2

G(D,A1)=0.9183

D2

1

1

0

A4

D1

1

1

0

G(D,A4)=0.9183

D2

2

0

2

A5

D1

1

1

0

G(D,A5)=0.9183

D2

1

0

1

D3

1

0

1

H(D)=0.9183  g(D,A1)=0.9183  g(D,A4)=0.9183  g(D,A5)=0.9183

根據計算結果,選擇A1或A4或A5作為根節點都可以,這裡選擇A1作為根節點。根據A1的取值將集合S22劃分為S221={12},S222={7,9} 此時,S221和S222已為葉節點。對於集合S23,計算統計結果為

class=1

class=2

D

3

2

H(D)=0.9710

A1

D1

3

1

2

G(D,A1)=0.4200

D2

2

2

0

A4

D1

4

3

1

G(D,A4)=0.3220

D2

1

0

1

A5

D1

2

2

0

G(D,A5)=0.5710

相關推薦

決策原理構建--圍繞一個例項展開

1. 什麼是決策樹:     決策樹是一種預測模型,用來進行分類,是一種有監督學習。樹中每個節點表示某個物件,而每個分叉路徑則代表的某個可能的屬性值,而每個葉結點則對應從根節點到該葉節點所經歷的路徑所

決策原理例項(python程式碼實現)

決策數(Decision Tree)在機器學習中也是比較常見的一種演算法,屬於監督學習中的一種。看字面意思應該也比較容易理解,相比其他演算法比如支援向量機(SVM)或神經網路,似乎決策樹感覺“親切”許多。 優點:計算複雜度不高,輸出結果易於理解,對中間值的缺

決策原理及實現

方式 -1 變化 log nbsp 導致 結點 以及 重要 1、決策樹原理 1.1、定義 分類決策樹模型是一種描述對實例進行分類的樹形結構。決策樹由結點和有向邊組成。結點有兩種類型:內部節點和葉節點,內部節點表示一個特征或屬性,葉節點表示一個類。

決策模型學習《一》

ini 相親 tor ext 測試的 select port RR rand html { } :root { } html { font-size: 14px; background-color: var(--bg-color); color: var(--tex

機器學習實戰(Machine Learning in Action)學習筆記————03.決策原理、原始碼解析及測試

機器學習實戰(Machine Learning in Action)學習筆記————03.決策樹原理、原始碼解析及測試關鍵字:決策樹、python、原始碼解析、測試作者:米倉山下時間:2018-10-24機器學習實戰(Machine Learning in Action,@author: Peter Harr

java二叉搜尋原理實現

計算機裡面的資料結構 樹 在計算機儲存領域應用作用非常大,我之前也多次強調多磁碟的存取速度是目前計算機飛速發展的一大障礙,計算機革命性的的下一次飛躍就是看硬碟有沒有質的飛躍,為什麼這麼說?因為磁碟是永久性儲存裝置(在相當長的時間內都可以用),就這一點雖然記憶體在效能方面優勢巨大但是儲存資訊和資料還是要靠磁

決策分析實踐

1.分析 1.1 背景和意義:        相信很多人都玩過一個網路上傳的遊戲,腦海裡面想一個名人的名字,然後出若干多道問題,比如男的女的,國外的國內的,你只能答是或不是,最後給出你想的那個名人是誰。只要不是很偏的應該都能想出來,一般人覺得很震驚,其實這只是一種簡單機器

機器學習筆記之九——決策原理以及舉例計算

  決策樹是機器學習最基本的演算法之一,它本身作為一顆樹而言,十分簡單。   就是將特徵屬性放在結點的未知,按照特徵屬性將樣本分類,放在左子樹和右子樹。   而在左子樹和右子樹,繼續使用其他的特徵屬性作為結點,向下分類。   學習決策樹複雜的部分在

決策理解python實現

程式碼實現請直接移步博文末尾 在機器學習領域,決策樹是用於資料分類、預測的模型。決策樹演算法通過分析訓練集的各個資料特徵的不同,由原始資料集構造出一個樹形結構,比如我們分析一封郵件是否為垃圾郵件時,可以根據傳送方域名、郵件主題等方式區分郵件是否為垃圾郵件,新資料通過使用構造出的決策樹

決策CARTID3,C4.5聯絡區別

CART與ID3和C4.5相同都由特徵選擇,樹的生成,剪枝組成。但ID3和C4.5用於分類,CART可用於分類與迴歸。 CART是在給定輸入隨機變數X條件下輸出隨機變數Y的條件概率分佈,與ID3和C4.5的決策樹所不同的是,ID3和C4.5生成的決策樹可以是多

《機器學習_09_01_決策_ID3C4.5》

### 簡介 先看一個例子,某銀行是否給使用者放貸的判斷規則集如下: ```python if 年齡==青年: if 有工作==是: if 信貸情況==非常好: 放 else: 不放 else:

java:N叉堆排序基本原理例項

堆排序(Heapsort)概念:是指利用堆這種資料結構所設計的一種排序演算法; 堆(英語:heap) 概念:電腦科學中一類特殊的資料結構的統稱。堆通常是一個可以被看做一棵樹的陣列(集合)物件。 原理圖(圖示為三叉樹):  擴充套件說明:     堆

決策構建、展示決策

1. 概述 上一篇日誌中,我們介紹了兩個決策樹構建演算法 – ID3、C4.5: 決策樹的構建演算法 – ID3 與 C4.5 演算法 本篇日誌我們來看看如何使用這兩個演算法以及其他工具構建和展示我們的決策樹

決策構建演算法 -- ID3 C4.5 演算法

1. 概述 上一篇日誌中,我們介紹了最簡單的分類迴歸演算法 – K 近鄰演算法。 k 近鄰演算法 本篇日誌我們來介紹構建專家系統和資料探勘最常用的演算法 – 決策樹。 2. 決策樹 在系統流程圖中,我們常

決策ID3、C4.5、CART、隨機森林的原理例子

(寫在前面:作者是一名剛入學的模式識別專業的碩士生,第一次寫部落格,有錯誤的地方還請大家多多指教評論,一起交流呀~) 決策樹的基本流程 ①劃分特徵的選擇(常見的選擇方法有:資訊增益、增益率、基尼指數,下文會詳細介紹) ②劃分停止準則:停止準則表示該節點不再劃分

機器學習方法(四):決策Decision Tree原理實現技巧

歡迎轉載,轉載請註明:本文出自Bin的專欄blog.csdn.net/xbinworld。 技術交流QQ群:433250724,歡迎對演算法、技術、應用感興趣的同學加入。 前面三篇寫了線性迴歸,lasso,和LARS的一些內容,這篇寫一下決策樹這個經典的分

決策演算法原理 Python實現

轉自: https://blog.csdn.net/huahuazhu/article/details/73167610?locationNum=2&fps=1    ###########################################

【資料結構演算法】 哈夫曼——哈夫曼編碼的一個例項

哈夫曼樹─即最優二叉樹,帶權路徑長度最小的二叉樹,經常應用於資料壓縮。 在計算機資訊處理中,“哈夫曼編碼”是一種一致性編碼法(又稱“熵編碼法”),用於資料的無損耗壓縮。這一術語是指使用一張特殊的編碼表將源字元(例如某檔案中的一個符號)進行編碼。這張編碼表的特殊之處在於,它是根據每一個源字元出現的估算概率而

離散型連續型資料決策構建及列印實現 R語言,ID3,C4.5演算法

本人的第一篇文章,趁著我們的資料探勘課設的時間,把實現的決策樹程式碼,拿出來分享下。有很多漏洞和缺陷,還有很多駭客思想的成分,但是總之,能實現,看網上的程式碼,能用的其實也沒幾個。廢話不多說,直接看程式碼 特別鳴謝博主skyonefly的程式碼 附上鍊接:R

決策構建深度節點數簡單例子

1、構建treePlotter.py #coding:utf-8 import matplotlib.pyplot as plt # 定義決策樹決策結果的屬性,用字典來定義 # 下面的字典定義也可寫作 decisionNode={boxstyle:'sawtooth'