經典的決策樹演算法

2021-09-23 08:09:01 字數 2814 閱讀 2165

我們在機器學習中一直會遇到兩種問題,一種是回歸問題,一種是分類問題。我們從字面上理解,很容易知道分類問題其實是將我們現有的資料分成若干類,然後對於新的資料,我們根據所分得類而進行劃分;而回歸問題是將現有資料擬合成一條函式,根據所擬合的函式來**新的資料。 這兩者的區別就在於輸出變數的型別。回歸是定量輸出,或者說是**連續變數;分類問題書定量輸出,**離散變數。

如何區分分類與回歸,看的不是輸入,而是輸出。舉個例子,**明天晴或是雨,是分類問題,而**明天多少度,則是回歸問題。

回歸樹與分類樹

在決策樹中,也有回歸樹與分類樹的概念。 在二者的區別中,回歸樹是採用最大均方誤差來劃分節點,並且每個節點樣本的均值作為測試樣本的回歸**值;而分類樹是採用資訊增益或者是資訊增益比來劃分節點,每個節點樣本的類別情況投票決定測試樣本的類別。我們可以看到,這兩者的區別主要在於劃分方式工作模式。回歸樹採用最大均方誤差這種對資料精確處理的方式,輸出連續變數,可以更好地給我們的資料進行**;而分類樹使用乙個非常寬泛的資訊增益這個變數,更好的從整體把握這個資料集的分類

資訊增益

這是資訊增益的定義。可能理解起來非常之簡單,新加的乙個節點與原來系統的互資訊。也就是多考慮乙個特徵值給我們整個決策環節多提供的資訊量。但是我們一定要注意資訊增益的計算過程,這裡我貼上《統計學習方法》中的例子,來給大家參考:

我們對於這個判決樹,當然傾向於選擇自身不確定性更大的特徵,因為自身不確定性越大,一旦被確定下來,引入的資訊量就越多。這樣的話,對於整個系統判決更加有效。

資訊增益比

資訊增益比,有的書也叫資訊增益率。 

id3演算法的核心實在決策樹上的各個節點上用 資訊增益 選擇特徵。在id3演算法生成樹的時候,是先計算所有備選特徵的資訊增益,然後再選擇下乙個節點是哪乙個特徵。

在這個資訊增益的定義及公式中,我們一定要注意這個h(d)的演算法。我們求解一整個集合的熵,一般是求解 資訊增益直接影響了我們選擇什麼節點來作為下乙個特徵的操作,並且設定乙個閾值e,當資訊增益小於這個閾值的時候停止迴圈。 為了不影響大家理解,我將這個演算法完整的寫在這:

輸入:訓練資料集d,特徵集a,閾值e; 輸出 : 決策樹t

若d中國所有例項屬於同一類ck,則t為單結點樹,並將ck作為該結點的類標記,返回t;

若a=空集,則t為單結點樹,並將d中的例項數最大的類ck作為該結點的類標記,返回t;

否則,計算a中各特徵對d的資訊增益,選擇資訊增益最大的特徵ag;

如果ag的資訊增益小於閾值e,則置t為單結點樹,並將d中例項數最大的類ck作為該結點的類標記,返回t;

否則,對ag的每乙個可能值ai;依ag=ai將d分割為若干非空子集di;將di中例項數最大的類作為標記,構建子結點,由結點及其子結點構成樹t,返回t;

對第i個子結點,以di為訓練集,以a-為特徵集,遞迴呼叫(1)~(5),得到子樹ti,返回ti。

為了加深大家的理解,我貼上李航著的《統計學習方法》裡面的例子:

缺點:id3演算法只有樹的生成,並沒有對於擬合程度的控制或者是削減分支,所以該演算法產生的樹容易產生過擬合。

c4.5演算法與id3演算法非常相似,是對其的一種改進。唯一與id3不同的是 c4.5採用資訊增益比 而不是資訊增益來選擇特徵。

貼出c4.5演算法:

輸入:訓練資料集d,特徵集a,閾值e; 輸出:決策樹t

若d中所有例項屬於同一類ck,則t為單結點樹,並將ck作為該結點的類標記,返回t;

若a=空集,則t為單結點樹,並將d中的例項數最大的類ck作為該結點的類標記,返回t;

否則,計算a中各特徵對d的資訊增益,(具體怎麼計算請看我前一條關於決策樹基礎的部落格)選擇資訊增益最大的特徵ag;

如果ag的資訊增益小於閾值e,則置t為單結點樹,並將d中例項數最大的類ck作為該結點的類標記,返回t;

否則,對ag的每乙個可能值ai;依ag=ai將d分割為若干非空子集di;將di中例項數最大的類作為標記,構建子結點,由結點及其子結點構成樹t,返回t;

對第i個子結點,以di為訓練集,以a-為特徵集,遞迴呼叫(1)~(5),得到子樹ti,返回ti。

我們為什麼說c4.5是對id3的一種改進呢?這個問題我們得從二者區別也就是資訊增益與資訊增益比說起。 我們再次貼上資訊增益與資訊增益比的定義:

通過對比我們可以看出,資訊增益就是特徵與訓練集的互資訊,或者說原來資料集的不確定性與確定其中乙個特徵之後的不確定性之差,稱做資訊增益。也就是確定這個特徵所引入的資訊量。而資訊增益比則是這乙個互資訊與d的不確定性的比值。

當我們遇到乙個取值很多的屬性的時候,比如西瓜的品種這個屬性,會有好幾十種品種,也就是好幾十種取值。通過計算我們會發現,這類屬性的不確定性要比那些只有一兩個取值的屬性要大(因為取值很多使得整個資料集的混亂程度很大), 所以計算機如果處理的時候優先選擇取值多的屬性。

所以c4.5在id3的基礎上,採用了資訊增益比這個判決方法,來懲罰取值很多的屬性。

cart既可以用以分類,也可以用以回歸,cart決策樹對回歸樹用平方誤差最小化準則,對分類樹用基尼係數(gini)最小化準則,進行特徵選擇,生成二叉樹。

分類樹用基尼指數選擇最優特徵

基尼指數gini(d)表示集合d的不確定性,基尼指數越大樣本集合不確定性也就越大。

經典決策樹模型

常用的決策樹演算法有id3 c4.5 cart,它們構建樹所使用的啟發式函式各是什麼?除了構建準則之外,它們之間的區別與聯絡是什麼?首先,我們回顧一下這幾種決策樹構造時使用的準則。人年齡 長相工資 寫 類別小a老 帥高不會不見 小b年輕 一般中等會見 小c年輕醜高 不會不見 小d年輕一般高 會見小l...

決策樹演算法

決策樹是一種樹型結構,其中每個內部結點表示在乙個屬性上的測試,每個分支代表乙個測試輸出,每個葉結點代表一種類別。決策樹學習是以例項為基礎的歸納學習,採用的是自頂向下的遞迴方法,其基本思想是以資訊熵為度量構造一棵熵值下降最快的樹,到葉子結點處的熵值為零,此時每個葉節點中的例項都屬於同一類。決策樹學習演...

決策樹演算法

本文主要介紹id3 c4.5和cart演算法 決策樹起源於概念學習系統 cls 概念學習模型 是乙個事先定義的範疇集合和一些有關例子是否落入給定範疇的判定 概念學習的主要任務 是判斷所給定事物的屬性或特性,並且正確地區分這些事物,將其劃分到某乙個範疇 對於如下決策樹模型 我們首先考慮他的屬性outl...