機器學習演算法 決策樹引論和CART演算法

2021-09-24 18:52:56 字數 3336 閱讀 2680

決策樹綜述

決策樹的工作原理

決策樹(decision tree)分類法是一種簡單但廣泛使用的分類技術。以是否貸款違約的二分類問題為例,當我們希望根據給定的訓練集習得乙個模型對新出現的貸款人進行分類時,經常需要從大量的貸款申請單中識別出來哪些貸款人是劣質的貸款人(容易拖欠貸款)。想象一下客戶經理和助手針對乙個貸款者進行的如下對話:

經理:他有房嗎?

助手:沒有

經理:他結婚了嗎?

助手:沒有,乙個單身漢

經理:他年收入高於70k嗎?

助手:不足70k

經理:那駁回他的申請

經理根據貸款者的各方面「特徵」一步步分析後進行的多次決策就相當於乙個簡單的決策樹過程。下面我們用乙個決策樹模型模擬經理的決策過程。

決策樹的構成

決策樹是一種由節點和有向邊組成的層次結構,樹中包含三種節點:

如何建立決策樹模型

機器學習中,決策樹是乙個**模型,代表著的是物件屬性與物件值之間的一種對映關係。樹中每個節點表示某個物件,而每個分叉路徑則代表的某個可能的屬性值,而每個葉節點則對應從根節點到該葉節點所經歷的路徑所表示的物件的值。機器學習中的經典決策樹演算法包括id3,c4.5和cart等,但最基本的原理都是一樣的。

理論上講,對於給定的屬性集可以構造的決策樹數目達到指數級,儘管某些決策樹比其他決策樹更加準備,但是由於搜尋空間是指數規模的,找出最佳決策樹在計算上是不可行的儘管如此,人們還是開發了一些有效的演算法能夠在合理的時間內構造出具有一定準確率的次最優決策樹

這些演算法通常採用貪心策略,在選擇劃分資料的屬性時,採取一系列區域性最優決策來構造決策樹,hunt演算法就是這樣一種演算法,它是包括id3、c4.5和cart在內演算法的基礎

決策樹的發展:hunt-id3-c4.5-cart

雖然基於多棵弱決策樹的bagging、random forest和boosting等tree ensemble模型更加普遍且準確率更優,但是「完全生長」的決策樹由於其簡單直觀的特性具有廣泛的應用。除此之外,想要掌握tree ensemble模型也繞不開組成其的弱分類樹原理。

一般而言,一棵「完全生長」的決策樹包括特徵選擇、決策樹構建和剪枝三個過程。在hunt演算法的基礎上,決策樹演算法發展出較為流行的id3、c4.5和cart演算法,同樣這些演算法都是基於啟發式的貪心演算法簡歷的,並不能保證建立全域性最優的決策樹。

我們這裡簡單介紹三種決策樹演算法

關於決策樹的各種演算法的細節會在決策樹部分詳細介紹,本文只介紹cart決策樹。

cart決策樹介紹

cart樹全稱是classification and regression tree。遞迴地將當前資料集分割為兩個子資料集,形成一棵二叉樹。cart既能處理連續型變數又能處理離散型變數,利用訓練資料遞迴的劃分特徵空間進行決策樹構造,用驗證集進行剪枝

cart決策樹特點

cart分類樹(輸出為離散型變數)

1、演算法

輸入:訓練資料集,停止計算的條件

輸出:cart決策樹

演算法:根據訓練資料集,從根節點開始,遞迴地對每個節點進行如下操作,構建二叉決策樹

2、相關公式

資料集的不純度用gini 係數度量:

:表示分類的類別個數

:資料集d中第k類樣本所佔的比例()

純度意義:直觀來說,資料集d的不純度反映了從中隨機抽取兩個樣本,其類別標記不一致的概率,當越小時,純度越高

當資料集根據屬性在某一取值上進行二元分割後得到,兩個子集。增益表示資料集根據屬性分割後集合的不純度增益。

對於屬性,分別計算每個取值對應的增益,然後選取其中最小值作為屬性得到的最優二分方案。然後對於資料集,計算所有屬性的最優二分方案,選擇其中的最小值作為資料集的最優分割屬性。

cart回歸樹(輸出為連續型變數)

使用者數值**的決策樹可分為兩類。第一類稱為回歸樹,是在20世紀80年代作為cart演算法的一部分引入的。儘管它被稱為回歸樹,但是並沒有使用線性回歸方法,而是基於到達葉節點的輸出平均值做**的。第二類稱為模型樹,這是一種鮮為人知的演算法,但功能要比回歸樹強大,模型樹和回歸樹以大致相同的方式生長,但是在每個葉子節點處會根據到達該葉子節點的資料建立多元線性回歸模型

1、回歸樹演算法原理

假設x和y分別是輸入和輸出變數(連續型變數),在訓練集所在的輸入空間中,遞迴地將每個區域劃分為兩個子區域,根據每個子區域上輸出值的平均值作為**結果,構建二叉樹。

訓練資料集:

選擇最優劃分屬性j和劃分屬性值s:

:表示被二元劃分的兩個輸入空間

:表示ri空間對應的固定輸出值

原理:遍歷屬性j和對應的劃分屬性值,找到使該式最小的對

選定對後,劃分區域並決定相應的輸出值:

繼續對兩個子區域呼叫上述步驟,直到滿足停止條件,最終將輸入空間劃分為個區域,生成決策樹:

2、回歸樹的問題

下圖是我對乙個資料集應用回歸樹和模型樹演算法後真實值(橫軸)與**值(縱軸)的散點圖。可以看到回歸樹只能**有限個值(這取決於劃分的輸出空間個數m),本質上仍然是在做分類,然後對每個分類賦予到達該葉節點的類平均值。相比之下,模型樹在回歸方面的表現更加出色。

3、模型樹:回歸樹的高階版本

前面講回歸樹的缺點時我們提到回歸樹的**值是有限的,對於每乙個葉節點賦予乙個固定的值。模型樹和回歸樹的生長方式一致,但是在每個葉子節點都建立的對應的多元線性回歸模型,從而實現真正意義上的「回歸」。

寫在最後

我們簡單梳理了一下決策樹的原理和發展歷程,並詳細介紹了cart分類和回歸樹的演算法,但還有一些關於決策樹演算法的其他內容我們還沒有介紹。例如一棵完全生長的決策樹存在過擬合的問題,我們會專門介紹決策樹的剪枝;再比如基於簡單決策樹的tree ensemble模型。

參考

機器學習演算法 決策樹

決策樹類似一中策略或者條件選擇,其中各個節點代表選擇條件,各個葉子結點代表可能達到的結果,決策樹 decision tree 是乙個樹結構 可以是二叉樹或非二叉樹 其每個非葉節點表示乙個特徵屬性上的測試,每個分支代表這個特徵屬性在某個值域上的輸出,而每個葉節點存放乙個類別。使用決策樹進行決策的過程就...

機器學習演算法 決策樹

決策樹的使用主要是用於分類。年齡收入 信用是否學生 是否買電腦年輕高 高是是中年 低中否否 老年中低否 是對於一些適合分類的資料中,考慮各種因素對結果的影響大小進行決策,一般是先選取區分度較高的因素。比如說,年齡大小這個因素在很大程度上影響我們的結果 是否買電腦。那麼,年齡因素將作為第乙個決策因素出...

機器學習演算法 決策樹

1 決策樹直觀理解 假設,已知10人房產 婚姻 年收入以及能否償還債務的樣本,那麼第11個人來,知其房產 婚姻 以及年收入情況,問他是否能償還債務?2 前置知識 理解決策樹,我們必須知道一下概念 資訊熵 描述系統的不確定度,熵越高,代表系統越混亂,包含的資訊量也就越多,其公式 例 計算前10個樣本能...