決策樹是監督機器學習算法家族的一員,被認為是解決所有數據科學問題的萬能藥。數據科學家經常說一些俏皮話:"每當問題的陳述讓你陷入困境,你想不出任何算法來解決它(不管情況如何),就使用決策樹!"。
通常情況下,無論是在行業中還是在kaggle比賽中,都可以看到決策樹或者說至少是從它演變而來的算法(Bagging,Boosting ensemble)。
決策樹是一種多用途的機器學習方法,能夠執行迴歸和分類任務。幾乎所有的現實世界問題本質上都是非線性的,決策樹可以幫助您擺脫非線性的困境。這種算法簡潔明瞭、易於理解,並且可以直觀地進行解釋——這是每個企業首先需要的東西。
人們可以從模型中獲得什麼?
決策樹是上下顛倒的,意思是它的根在頂部,葉在底部。決策樹主要相信分而治之的規則。
基本術語
讓我們來看看決策樹使用的基本術語:
1.根結點:它代表整個種群或樣本,並進一步分成兩個或多個的同類集合。
2.分裂:將一個節點分成兩個或多個子節點的過程。
3.決策節點:當一個子節點分裂成更多的子節點時,它被稱為決策節點。
4.葉/終端節點:不進一步分割的節點稱為葉節點或終端節點。
5.修剪:當我們刪除決策節點的子節點時,這個過程被稱為修剪。
6.分支/子樹:整個樹的一個分支稱為分支或子樹。
7.父節點和子節點:被劃分為子節點的節點被稱為子節點的父節點,其中子節點是父節點的子節點。
分類
有兩種類型的決策樹:
A.分類決策樹
B.迴歸決策樹
- 分類決策樹幫助您對數據進行分類,因此它可以處理分類數據,例如貸款狀態(已批准/未批准)、垃圾郵件/而非垃圾郵件等。
- 迴歸決策樹旨在幫助您預測結果,例如某人的收入、房屋的銷售價格等。
假設有兩個特徵X和Y,在右面板中您可以看到有幾個數據點分散。綠色和灰色葉子是因變量中的兩類。決策樹所要做的是將整個數據集在若干次迭代分割成幾個部分。如圖所示,在X = 0.5處有分裂1,在Y = 0.5處有分裂2,在X = 0.25處有分裂3。
分割是為了使每個分割中的某個類別的數量最大化,這意味著決策樹試圖在每個節點上實現均勻分佈。從右側面板您可以看到,綠色葉子類和灰色葉子類在每個隔間的末端都形成了均勻結構。
背後的數學算法
決策樹用於分割節點的方法有很多。最常見的是基尼指數、熵、卡方係數等。
1.基尼指數
- 根據它,如果我們隨機選擇一個總體中的兩個項目,那麼它們一定是相同的類別,如果種體是純種的,則概率為1。
- 它是一種雜質的衡量標準。因此,基尼指數的值越低,同質性越高。
- 數學表示為
其中P是該節點中正樣本的比例。
- 基尼指數為'0'表示該節點是純粹的,這意味著不需要進行進一步分割。
- 涉及的步驟 :
使用公式計算子節點的Gini。
使用該分割的每個節點的加權基尼分數計算分割的基尼
2.卡方係數
- 有助於發現子節點和父節點之間差異的統計顯著性。
- 我們用目標變量的觀測頻率和預期頻率之間標準化差異的平方和來衡量它。
- 數學表示為
- 它可以衡量純度,因此,卡方值越高,子節點與父節點差異的統計顯著性越高。
- 涉及的步驟:
通過計算成功和失敗的偏差來計算單個節點的卡方
使用所有分割的每個節點的成功和失敗的卡方的和來計算分割的卡方
3.熵
•它是正在處理的信息中的隨機性的度量。
•熵越高,從這些信息中得出任何結論就越難。
•數學表示為
- 這裡p和q分別是該節點成功和失敗的概率。
- Log以2為底。
- 涉及的步驟:
計算父節點的熵
計算split的每個單獨節點的熵並計算split中可用的所有子節點的加權平均值。
4.減小方差
- 上面提到的所有方法都與分類決策樹有關。在目標變量連續的迴歸決策樹的情況下,遵循方差減少法。
- 它使用標準的方差公式來選擇最佳分割。選擇較低方差的分組作為劃分種群的標準。
- 數學表示為
其中,X - >實際值、X - >平均值、N - >觀測值的數量
涉及的步驟:
- 計算每個節點的方差。
- 計算每個分割的方差作為每個節點方差的加權平均值。
讓我們舉一個例子:
問題陳述
- 我們有一個50人的樣本,其中有三個變量,性別(M / F)、就業狀況(學生/工作)和年齡(歲)
- 其中有50人正計劃觀看電影。
- 現在,我們想創建一個模型來預測誰會看電影?在這個問題中,我們需要根據三者輸入變量將樣本來預測誰將觀看電影。
- 為了簡單起見,年齡特徵被轉化為> 28和<28。
1. 基尼指數
觀看電影的觀眾:26
不看電影的觀眾:24
基於性別的分割
觀看敦刻爾克的男性的概率:0.429
觀看敦刻爾克的女性的概率:0.636
基尼(女):0.463
基尼(男):0.490
性別的加權基尼:0.4779
基於就業的分割
觀看的學生概率:0.444
觀看的工作人員概率:0.537
基尼(學生):0.494
基尼(工作):0.497
加權基尼(就業):0.4967
基於年齡的分割
年齡小於28歲的人的概率:0.607
年齡超過28歲的人的概率:0.409
基尼(小於28歲的人):0.477
基尼(28歲以上的人):0.483
加權基尼(年齡):0.4799
- 由於加權基尼(性別)
2. 卡方係數
性別節點
就業節點
年齡節點
- 由於卡方性別
3.熵
性別節點
就業節點
年齡節點
- 由於熵性別
可視化
如前所述,決策樹是可解釋的並且可以被可視化。Graphviz庫在開發python時來幫助數據科學家。
作者試圖用IRIS數據集來顯示下面顯示的決策樹和圖表,這是通過代碼實現的,您甚至不必在您的機器上下載Graphviz。
有什麼收穫?
建模決策樹時最大的危險是它們傾向於過度擬合。如果在決策樹上沒有限制,那麼它將為您提供100%的訓練集準確性,因為在哪怕是在最糟糕的情況下,它也會為每個觀察結果創建1個終端節點。
因此,在建模決策樹時防止過擬合是關鍵,它可以通過兩種方式完成:
A. 設置對決策樹大小的限制(超參數調整)
B. 修剪樹
閱讀更多 AI中國 的文章