決策樹是數據挖掘、決策分析和人工智能中最流行的算法之一。
下面將對其流行的原因進行簡單介紹。
什么是決策樹?
決策樹是一個樹狀圖;
節點代表選擇一個屬性,比如一個問題;
邊代表問的問題的答案,
葉子節點代表實際輸出或類標簽。

決策樹在生活中的應用
想象你正在計划下周的活動。你要做的事情很大程度上取決於你的朋友是否有時間和外面的天氣如何。
你可以得出以下圖表

這個圖表列出了一些簡單的決策規則,可以幫助你根據一些其他數據來決定下周要做什么。在這種情況下,是你朋友是否有空和天氣是否下雨。
決策樹也是如此。只不過它們以樹形結構的形式構建一組決策規則,可以通過歸來來預測輸入數據的結果。
決策樹的應用
決策樹模擬人類的決策,因此可以用於各種業務設置。公司經常用它們來預測未來的結果。例如:
1. 哪個客戶會保持忠誠,哪個客戶會流失?(分類決策樹)
2. 根據客戶的產品選擇,我們能向他們多賣多少?(回歸決策樹)
3. 接下來我應該向我的博客讀者推薦哪篇文章呢?(分類決策樹)
決策樹的機器學習方法
決策樹屬於一類有監督的機器學習算法,用於分類(預測離散結果)和回歸(預測連續數值結果)預測建模。
該算法的目標是從一系列的輸入變量及其屬性特征對目標變量進行預測。構建一個樹結構的方法通過從根節點開始,經過一系列的二分操作(yes / no),向下傳遞,直到葉節點,最終得到決策。
每次分割都將輸入變量划分為特征區域,用於后續的分割。我們可以這樣想象整個樹的結構:

決策樹算法
決策樹構建的方法有很多:
1. ID3:迭代二分法
2. C4.5: ID3的繼承者
3. CART:分類回歸樹
4. CHAID:卡方自動交互檢測
5. MARS:多元自適應回歸樣條
每個新算法是基於已有算法的提升,為了在具有噪音和復雜的數據上實現更高精度。
決策樹的實現
通常,決策樹算法可以分解成一系列的步驟:
- 屬性選擇
1. 從整個數據集的所有特征或者屬性開始
2. 查看所有可能屬性值,選擇一個可以將數據集最佳分割的值
3. 什么是“最佳分割”很大程度上取決於最后建立的是分類決策樹還是回歸決策樹;
最佳分割方法:
1. 在樹的根節點拆分數據集,並移動到每個分支中的子節點。
2. 對於每個決策節點,重復屬性特征選擇以及屬性值的選擇,以確定最佳分割。
3. 這是一種貪心算法:它只查看給定區域屬性的最佳局部分割(而不是全局最優),以提高構建樹的效率。
4. 不斷迭代,直到:
a) 已經到達了每個葉子節點
b) 我們達到了一些停止的標准。
例如,我們可能設置了最大深度,它只允許從根節點到終端節點進行一定數量的分割。或者,我們可能已經在每個終端節點中設置了最小的樣本數,以防止終端節點分裂超過某個點。
評價指標
分類決策樹的指標
- 基尼指數
- 信息熵
回歸決策樹的指標
- 方差
決策樹模型的優劣
決策樹的優勢:
1) 可解釋性;
2) 對數據預處理要求較少
3) 尺度縮放性能好
4) 對違反假設的魯棒性
5) 可以同時處理數值型和類別型的數據
決策樹的劣勢:
1) 容易過擬合
2) 對輸入數據的變化不魯棒
3) 傾向於對占有主導類別的偏差
模型的改進
有幾種方法可以改進決策樹,每一種方法都通過調整超參數來解決該算法的特定缺點:
——————
針對過擬合問題
指定葉片分裂的最小樣本
最大深度
修剪
——————
針對模型精度
集成方法:隨機森林
特征選擇或降維
提升樹
