1. 程式人生 > >【統計學習方法】決策樹

【統計學習方法】決策樹

何為決策樹?

決策樹定義

決策樹是一種用於分類的樹結構。如圖所示,它由結點(node)和有向邊(directed edge)組成,結點包括內部結點(internal node)和葉結點(leaf node),內部結點表示一個特徵或屬性,葉結點表示一個類。



決策樹示意圖

如何分類?

那麼決策樹如何進行分類呢?首先,從根結點開始,根據待分類資料的某一特徵值對其進行劃分,分配到相應子結點,因此,每一個子結點都對應了該特徵的一個取值。像這樣遞迴進行,直到到達葉結點。

決策樹的特徵選擇

上一部分提到決策樹根據特徵值對資料進行劃分,不同的特徵選擇方式可以得到不同的決策樹,而我們想得到的決策樹,它不僅能很好地擬合訓練資料,還有較好的泛化能力。

那麼該怎麼選特徵呢?一個基本準則是,每一步都遞迴地選擇最優特徵,可以對各個子資料集達到最後的分類結果。

如何評價特徵的優劣呢?這就不得不提到資訊增益資訊增益比這兩個概念了。

熵&條件熵

說到資訊增益,不得不先提一提熵(entropy)條件熵(conditional entropy)

熵是表示隨機變數不確定性的度量,定義如下:

條件熵表示在已知隨機變數X的條件下,隨機變數Y的不確定性,定義如下:

當熵和條件熵中的概率由資料估計得到時,就分別稱為經驗熵(empirical entropy)經驗條件熵(empirical conditional entropy)

資訊增益&資訊增益比

資訊增益(information gain)表示得知特徵X的資訊而使得類Y的資訊的不確定性減少程度。定義如下:
這裡寫圖片描述

回到原來的問題,該如何評價特徵的優劣呢?我們就用資訊增益!在這裡,資訊增益表示了由於特徵A而使得對資料集D的分類的不確定性減少的程度。資訊增益大的特徵就具有更強的分類能力啦~

具體如何根據資訊增益選擇特徵呢?用這個方法:對訓練資料集(或子集)D,計算其每個特徵的資訊增益,比較它們的大小,選擇資訊增益最大的特徵。

如何計算資訊增益呢?下面給出資訊增益的演算法:
這裡寫圖片描述

瞭解了資訊增益後,資訊增益比就很好理解了,資訊增益比是資訊增益關於特徵的值的熵之比,具體如下:
這裡寫圖片描述

決策樹生成演算法

ID3演算法

ID3演算法的基本思想是從根結點開始,在每一個結點上都計算所有可能的特徵的資訊增益,然後選出資訊增益最大的一個特徵作為該結點的特徵;然後不斷遞迴進行,構建決策樹。也就是說 ,ID3演算法每一步都選擇資訊增益最大的特徵作為結點的分類特徵,構建子結點。

具體演算法步驟如下:
這裡寫圖片描述

C4.5演算法

C4.5演算法與ID3演算法相似,區別在於,C4.5演算法用資訊增益比來選擇特徵。

具體演算法步驟如下:
這裡寫圖片描述

決策樹剪枝演算法

按以上生成方式遞迴地產生決策樹容易過擬合,即在訓練集上分類效果非常好,但是泛化能力不強,對於其他資料集分類效果並沒有那麼準確。其原因是,構建出的決策樹往往過於複雜,那麼解決這個問題的辦法就是通過剪枝演算法降低樹結構的複雜度。

剪枝是一個從已生成的樹上裁掉一些子樹或者葉結點,並將其根結點或父節點作為新的葉結點的過程。

損失函式

剪枝往往通過最小化整體損失函式(loss function)或代價函式(cost function)來實現。損失函式具體定義如下:
這裡寫圖片描述
C(T)表示模型預測誤差,衡量了擬合程度;|T|表示模型複雜度。損失函式制衡了擬合程度和模型複雜度之間的平衡。

剪枝演算法

剪枝的總體目標是令損失函式最小化,因此剪枝演算法的基本思想是如果剪枝回縮後損失的函式值比不剪枝更小,那麼就剪枝回縮,不然不剪枝。

具體演算法為:
這裡寫圖片描述

分類樹與迴歸樹CART

分類樹與迴歸樹(classification and regression tree, CART)模型是應用廣泛的決策樹學習方法,既可用於分類,也可用於迴歸。

CART演算法由兩步組成:

(1)決策樹生成:基於訓練資料生成決策樹,決策樹要儘可能大,擬合度儘可能高

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

接下來我們分別來看看CART生成演算法和剪枝演算法。

CART生成演算法

對於迴歸樹,用平方誤差最小化準則;對於分類樹,用基尼指數(Gini index)最小化準則,進行特徵選擇,遞迴地構建決策樹。

迴歸樹的生成

在輸出變數Y為連續變數時,我們選用迴歸樹。

給定訓練資料集為D=(x1,y1),(x2,y2),,(xN,yN)

假設輸入空間被劃分為m個單元R1,R2,,Rm,每個單元的輸出值為cmI為指示函式,迴歸樹模型可表示為

f(x)=m=1McmI(xRm)

訓練誤差為xiRm(yf(xi))2

cm最優值為 cm^=ave(yi|xiRm)

如何對輸入空間進行劃分呢?採用的辦法是,遍歷所有特徵和特徵的取值,找到最優切分變數x(j)和最優切分點s,滿足

minj,s[minc1Loss(yi,c1)2+minc2Loss(yi,c2)2]
其中
c1^=ave(yi|xiR1(j,s))
c2^=ave(yi|xiR2(j,s))

對於每一個區域都迭代地重複上述劃分過程,直到滿足停止條件,就生成了一棵迴歸樹。

具體演算法步驟為:

相關推薦

統計學習方法決策

何為決策樹? 決策樹定義 決策樹是一種用於分類的樹結構。如圖所示,它由結點(node)和有向邊(directed edge)組成,結點包括內部結點(internal node)和葉結點(leaf node),內部結點表示一個特徵或屬性,葉結點表示一個類。

統計學習方法k近鄰 kd的python實現

前言 程式碼可在Github上下載:程式碼下載 k近鄰可以算是機器學習中易於理解、實現的一個演算法了,《機器學習實戰》的第一章便是以它作為介紹來入門。而k近鄰的演算法可以簡述為通過遍歷資料集的每個樣本進行距離測量,並找出距離最小的k個點。但是這樣一來一旦樣本數目龐大的時候

統計學習方法決策分類

回歸 element row tps 樣本 pan 類別 表示 splay 決策樹分類 1,概念           2,決策樹算法 2.1,特征選擇:   熵:值越大,不確定性因素越大;條件熵:條件對結果的影響不確定性;信息增益;信息增益比                

統計學習方法-李航-筆記總結五、決策

本文是李航老師《統計學習方法》第五章的筆記,歡迎大佬巨佬們交流。 主要參考部落格: https://blog.csdn.net/u014248127/article/details/78971875 https://www.cnblogs.com/YongSun/p/4767085.ht

統計學習方法-李航-筆記總結十一、條件隨機場

本文是李航老師《統計學習方法》第十一章的筆記,歡迎大佬巨佬們交流。 主要參考部落格: https://www.cnblogs.com/YongSun/p/4767734.html   主要內容: 1. 概率無向圖模型 2. 條件隨機場的定義與形式 3. 條件隨機

統計學習方法-李航-筆記總結十、隱馬爾可夫模型

本文是李航老師《統計學習方法》第十章的筆記,歡迎大佬巨佬們交流。 主要參考部落格: https://www.cnblogs.com/YongSun/p/4767667.html https://www.cnblogs.com/naonaoling/p/5701634.html htt

統計學習方法-李航-筆記總結九、EM(Expectation Maximization期望極大演算法)演算法及其推廣

本文是李航老師《統計學習方法》第九章的筆記,歡迎大佬巨佬們交流。 主要參考部落格: https://www.cnblogs.com/YongSun/p/4767517.html https://blog.csdn.net/u010626937/article/details/751160

統計學習方法-李航-筆記總結八、提升方法

本文是李航老師《統計學習方法》第八章的筆記,歡迎大佬巨佬們交流。 主要參考部落格: https://www.cnblogs.com/YongSun/p/4767513.html 主要內容包括: 1. 提升方法AdaBoost演算法 2. AdaBoost演算法的訓練誤差分析

統計學習方法-李航-筆記總結七、支援向量機

本文是李航老師《統計學習方法》第七章的筆記,歡迎大佬巨佬們交流。 主要參考部落格: https://www.cnblogs.com/YongSun/p/4767130.html https://blog.csdn.net/wjlucc/article/details/69376003

統計學習方法-李航-筆記總結六、邏輯斯諦迴歸和最大熵模型

本文是李航老師《統計學習方法》第六章的筆記,歡迎大佬巨佬們交流。 主要參考部落格: http://www.cnblogs.com/YongSun/p/4767100.html https://blog.csdn.net/tina_ttl/article/details/53519391

統計學習方法-李航-筆記總結四、樸素貝葉斯法

本文是李航老師《統計學習方法》第四章的筆記,歡迎大佬巨佬們交流。 主要參考部落格: https://blog.csdn.net/zcg1942/article/details/81205770 https://blog.csdn.net/wds2006sdo/article/detail

統計學習方法-李航-筆記總結三、k近鄰法

本文是李航老師《統計學習方法》第三章的筆記,歡迎大佬巨佬們交流。 主要參考部落格:https://blog.csdn.net/u013358387/article/details/53327110 主要包括以下幾部分: 1. k近鄰演算法 2. k近鄰模型 3. kd樹 1.

統計學習方法讀書筆記感知機的個人理解(2)

這一部分說說自己看感知機學習演算法的對偶形式的理解。 引用知乎使用者的回答,這裡搞清楚兩件事情。自己看書的第一個疑惑是為什麼,這其中的ni是從何而來呢?後來發現忽略一個點就是“對於一個多次被誤分類的點”,也就是某個資料被使用了多次,因此出現ni這個引數。 第二個就是對於李航老師說的“例

統計學習方法讀書筆記感知機的個人理解(1)

寫在前面: 在友人的推薦下,開始入李航老師的坑,《統計學習方法》。 讀到第二章,感知機,李航老師由淺入深讓我有了很好的理解,現在自己總結一下思路。 正文:  感知機用於二分類問題,由淺開始:假定我們有一個平面上存在許許多多的藍色點和紅色點,並且假設存在一條直線可以將藍紅

統計分析方法1.統計學知識圖譜

tis div 內容 body pos logs alt 分享圖片 做了 前言 前段時間想著系統學習統計分析方法,又想著基於應用的目的來學習,所以有了前篇《統計分析方法知識圖譜》。寫完之後開始學了張文彤老師的《SPSS20.0統計分析基礎教程》的初中和高階教程,初中階沒問題

機器學習決策

剪枝是決策樹學習演算法對付“過擬合”的主要手段。過擬合的原因可能是:為了儘可能的正確分類訓練樣本,結點劃分過程不斷重複,有時會造成決策樹分支過多,這是可能因訓練樣本學的討“太好”了,以至於出現過擬合的情況,因此可以主動的去掉一些分支降低過擬合的風險。 通常會採取預剪枝和後剪枝的方法

影象分割綜述深度學習方法

CNN影象語義分割基本上是這個套路: 下采樣+上取樣:Convlution + Deconvlution/Resize 多尺度特徵融合:特徵逐點相加/特徵channel維度拼接 獲得畫素級別的segement map:對每一個畫素點進行判斷類別 即使是更復雜的DeepL

用python實現《統計學習方法決策C4.5/ID3

宣告:本文根據李航博士的《統計學校方法》中的決策樹章節的原理:最大熵資訊增益、資訊增益比進行決策樹的實現。在視覺化方面主要參考的這篇博文。 決策樹演算法是一類在資料探勘中應用的特別多的符號學派分類器,並在整合學習中被大大采用。經典的c4.5和id3以及後來的c

統計學習方法(李航)》講義 第05章 決策

lan 定義 if-then 利用 建立 then 統計 來源 根據 決策樹(decision tree) 是一種基本的分類與回歸方法。本章主要討論用於分類的決策樹。決策樹模型呈樹形結構,在分類問題中,表示基於特征對實例進行分類的過程。它可以認為是if-then

ML統計學習方法筆記

S1 統計學習的基本假設是同類資料具有一定的統計規律性 特徵空間(featrure space)的每一維對應於一個特徵。有時假設輸入空間與特徵空間為相同空間,對他們不予區分。有時假設輸入空間與特徵空間為不同的空間,將例項從輸入空間對映到特徵空間。模型實際上都是定義在特徵空間上的。