关于决策树,你一定要知道的知识点!(文末送书)
在現實生活中,我們每天都會面對各種抉擇,例如根據商品的特征和價格決定是否購買。
不同于邏輯回歸把所有因素加權求和然后通過Sigmoid函數轉換成概率進行決策,我們會依次判斷各個特征是否滿足預設條件,得到最終的決策結果。例如,在購物時,我們會依次判斷價格、品牌、口碑等是否滿足要求,從而決定是否購買。
決策的流程,如圖1所示。
圖1
可以看到,決策過程組成了一棵樹,這棵樹就稱為決策樹。
在決策樹中,非葉子節點選擇一個特征進行決策,這個特征稱為決策點,葉子節點則表示最終的決策結果。
在上例中,我們只是根據經驗主觀建立了一棵決策樹,這棵決策樹在數據量和特征維度較小且邏輯簡單時是可以使用的。
然而,在數據量和特征維度較大時,僅憑主觀觀察建立決策樹顯然是不可行的。在實際應用中,訓練集中的樣本往往有上萬個,樣本的特征通常有上百維,該怎么處理呢?
在實際建立決策樹的過程中,每次選擇特征都有一套科學的方法。下面就詳細講解如何科學地建立決策樹。
不難發現,建立決策樹的關鍵在于選取決策點時使用的判斷條件是否合理。每個決策點都要有區分類別的能力。例如,在電商場景中,將發貨的快遞公司作為決策點的選取條件就是一個很差的選擇,其原因在于快遞公司和購買行為沒有必然聯系,而將商品價格作為決策點的選取條件就是合理的,畢竟大部分消費者對商品價格比較敏感。
一個好的決策點可以把所有數據(例如商品)分為兩部分(左子樹和右子樹),各部分數據所對應的類別應盡可能相同(例如購買或不購買),即兩棵子樹中的數據類別應盡可能“純”(這種決策點有較高的區分度)。
和邏輯回歸類似,用已知數據(例如用戶的購買記錄、商品信息)求解決策樹的形狀和每個決策點使用的劃分條件,就是決策樹的訓練過程。
首先看一下如何量化數據的純度。假設在一組數據中有P和N兩類樣本,它們的數量分別為??個和??個。P類樣本出現的概率為
?類?
N類樣本出現的概率為
?類?
我們可以直觀地發現:當數據只有一個類別(?類?或?類?)時,數據最純;當兩類數據“平分秋色”(?類類?)時,數據最混亂。
可以使用基尼(Gini)系數來量化數據的混亂程度。基尼系數的計算公式如下。
?類類?
可見,基尼系數越小,數據就越純(類,??)。當數據最混亂時,?類類?,也就是說,基尼系數的最大值為0.5。
基尼系數和概率?類?的關系,如圖2所示。
圖2
決策樹有一些常用的構建方法,在這里我們詳細講解一下最為流行的CART樹。
CART樹是一棵二叉樹,它不僅能完成分類任務,還能完成數值預測類的回歸任務。
下面先介紹分類樹,再介紹回歸樹。在構建CART樹時,可以使用基尼系數來度量決策條件的合理性。
假設有??個訓練樣本,特征一共有??維,即??。和邏輯回歸中特征??是連續值不同,在這里,??既可以是連續值(例如價格、好評數、銷量等,??),也可以從集合中“多選一”(例如學歷,?專科本科碩士博士其他?)。
決策樹的構建(訓練)過程是一個不斷生成決策點的過程,每次生成的決策點都要盡可能把訓練樣本中的兩類數據分開。
例如,??為價格,劃分條件為??,將訓練數據分成兩類(如果某個樣本在劃分條件上有特征缺失,就隨機分配該樣本),如圖3所示。
圖3
??中有??個樣本,它們對應于不同的類別,基尼系數為??。Data1中的數據越純(類別越單一),Gini1就越小。同理,??中有??個樣本,基尼系數為??。
此次劃分的基尼系數為
??
??為??和??加權求和(權重為兩堆數據的數量占比)的結果,用于度量劃分條件??的合理性。??越小,說明度量劃分越合理。
若?專科本科碩士博士其他?,則可將“?本科?”作為劃分條件,將數據劃分為“?本科?”“?本科?”兩部分,并計算基尼系數?本科? 。
遍歷所有維度(??)中可能的劃分條件,對每種劃分方法均可計算相應的基尼系數,例如??、??、??、?本科?、?博士?、??。以最小基尼系數所對應的特征和劃分條件為決策點,數據將被劃分為兩堆。
但是,決策樹是不停生長的,僅劃分一次是不夠的,需要再使用同樣的方法對每個子堆(Data 1、Data 2)進行劃分,最終生成CART樹,步驟如下。
算法的輸入為訓練集?? 、基尼系數的閾值、樣本數量的閾值,輸出為決策樹?? 。算法從根節點開始,用訓練集遞歸建立CART樹。
1. 當前節點的數據集為??。如果樣本數量小于閾值、基尼系數小于閾值或沒有特征,則返回決策子樹,當前節點停止遞歸。
2. 在當前節點的數據上計算各個特征的各個劃分條件對劃分后的數據的基尼系數。當維度過高且每維所對應的可取值比較多時(例如,價格的值為 1~10000的整數,將有10000種劃分方式;如果為浮點數,劃分方式更多),可以隨機選取一些特征和劃分條件,不再強制要求全部遍歷。
3. 在計算出來的各個特征的各個特征值對數據集??的基尼系數中,選擇基尼系數最小的特征??和對應的劃分條件,例如“??”或“?本科?”。通過劃分條件把數據集劃分成??和??兩部分,同時分別建立當前節點的左節點和右節點,左節點的數據集為??,右節點的數據集為??。
4. 對??和??遞歸調用以上步驟,生成決策樹。
這就是決策樹的訓練過程。
在第1步中,判斷樣本數量和基尼系數是為了控制生成的決策樹的深度,避免不停地遞歸。不停地遞歸會導致劃分條件過細,從而造成過擬合。
決策樹建立后,每個葉子節點里都有一堆數據。可以將這堆數據的類別比例作為葉子節點的輸出。
決策樹在復雜度上和其他模型有所不同。例如,在邏輯回歸中,當特征維度不變時,模型的復雜度就確定了。但是,在決策樹中,模型會根據訓練數據不斷分裂,決策樹越深,模型就越復雜。
可以看出,數據決定了決策樹的復雜度,且當數據本身線性不可分時,決策樹會非常深,模型會非常復雜。
所以,在決策樹中,需要設置終止條件,以防模型被數據帶到極端復雜的情況中。在決策樹中,終止條件的嚴格程度相當于邏輯回歸中正則項的強度。
訓練完成后,我們可以得到一棵決策樹,如圖4所示。
圖4
在使用決策樹時,用數據??在決策樹上找到對應的葉子節點作為分類結果。例如,當 ??時,對應的分類結果為?類,類?。決策樹對輸入??的預測結果常寫為??,???表示決策樹的決策過程。
決策樹理解起來比較簡單,其本質就是以基尼系數來量化劃分條件的分類效果,自動探尋最佳劃分條件。
下面我們把決策樹和邏輯回歸進行對比。為了方便對比,假設決策樹的特征為2維且均為連續特征。決策樹的分類效果圖可以理解為如圖5所示的形式。
圖5
可見,決策樹分類的幾何意義和邏輯回歸一樣,都是在平面上畫直線。相比邏輯回歸的分類線是一條直線,決策樹的分類線是平面上與坐標軸平行的多條直線(一個判斷條件對應于一條直線,這些直線共同組成了分類線)。多條直線可以組合成非線性的形式,以處理線性不可分的情況,如圖6所示。
圖6
雖然決策樹在訓練時需要遍歷所有可能的類別劃分方法,速度比較慢,但是在預測階段,決策樹只需進行一些邏輯判斷和比較,速度非常快,故適合在對時間要求較高的場景中使用。
決策樹不僅可以用在分類中,還可以用在回歸中(預測連續的值而非類別概率)。用在分類中的決策樹稱為分類樹,用在回歸的中決策樹稱為回歸樹。在回歸任務中,學習目標不再是分類,而是一個連續值??。此時,基尼系數不再適用于衡量數據的混亂程度,一般使用方差來衡量數據的混亂程度。
例如,當??時,將它作為劃分條件,把數據劃分為??和??兩部分,??中有??個樣本,??中有??個樣本。
??中數據的混亂程度為
??
??為??中目標值的平均值,即
??
如果??中所有數據的目標值??都一樣,那么 ??,此時??中的數據最純。
同理,可以求出??中數據的混亂程度??。
對于劃分條件??,其對應的混亂程度為
??
回歸樹除了使用方差代替基尼系數來度量數據的純度,其他均與分類樹一致,葉子節點輸出的值為該節點所有樣本目標值的平均值。
▼
本文摘自《速通機器學習》一書!
▊《速通機器學習》
盧菁?著
輕松有趣的機器學習知識點讀本
通過14個輕松有趣的專題,幫助初學者掌握機器學習的相關概念,幫助求職者快速梳理和回顧機器學習知識
本書從傳統的機器學習,如線性回歸、邏輯回歸、樸素貝葉斯、支持向量機、集成學習,到前沿的深度學習和神經網絡,如DNN、CNN、BERT、ResNet等,對人工智能技術進行零基礎講解,內容涵蓋數學原理、公式推導、圖表展示、企業應用案例。
本書面向初中級讀者,能幫助讀者迅速掌握機器學習技術的相關概念及原理。本書內容結合作者多年的科研工作經驗,理論和實踐并重,對科研、學習、面試等均有幫助。
??福利來了??
評論區留言送書!
你在學習機器學習的過程中遇到過哪些問題?希望讀者后續分享哪個系列的干貨?對于用心留言(建議20字以上)點贊前7名的同學將送《速通機器學習》一本,到7月4日22:00截止。
(為防止刷量,7月4日18時對留言前20名做個截圖作為證據,與最終點贊數量作對比。)
總結
以上是生活随笔為你收集整理的关于决策树,你一定要知道的知识点!(文末送书)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win7系统虚拟键盘打开的方法
- 下一篇: 【推荐系统】五个工业风满满的 Look-