決策樹是一種用於分類和迴歸的非引數模型,能夠透過一系列的條件判斷(分裂規則)將輸入資料劃分為子區域,從而完成預測任務。
1. 決策樹的基本結構
決策樹由以下三部分組成:
- 根節點(Root Node):
- 表示整個資料集,最初沒有任何劃分。
- 內部節點(Internal Node):
- 表示一個特定的特徵測試條件(例如:x1>5x_1 > 5x1>5)。
- 根據測試結果將資料劃分為多個子節點。
- 葉節點(Leaf Node):
- 表示最終的分類或迴歸輸出。
- 分類任務中,葉節點儲存類別標籤;
- 迴歸任務中,葉節點儲存預測的值(如平均值)。
決策路徑:
- 從根節點到葉節點的一條路徑,代表了一系列的決策規則。
3. 決策樹的優缺點
3.1 優點
- 簡單直觀:
- 決策樹易於理解和解釋,適合視覺化。
- 無需特徵縮放:
- 對資料的縮放或標準化不敏感。
- 處理非線性關係:
- 決策樹能夠自動劃分非線性邊界。
- 多用途:
- 同時適用於分類和迴歸任務。
3.2 缺點
- 過擬合:
- 決策樹容易生成過於複雜的樹,從而在訓練集上表現很好,但在測試集上泛化能力較差。
- 不穩定性:
- 資料的微小變化可能導致樹結構的顯著變化。
- 傾向於劃分較多的特徵:
- 決策樹可能偏好取值範圍多的特徵。
4. 決策樹的正則化方法
為了防止過擬合,可以對決策樹進行正則化:
- 最大深度(max_depth):
- 限制樹的深度,防止樹過於複雜。
- 最小樣本分割(min_samples_split):
- 控制每次分裂所需的最小樣本數。
- 最小樣本葉節點(min_samples_leaf):
- 控制葉節點中的最小樣本數。
- 剪枝(Pruning):
- 後剪枝:先生成完全的樹,再對其進行剪枝;
- 預剪枝:在構建過程中提前停止分裂。
5. 決策樹的擴充套件
5.1 隨機森林(Random Forest)
- 隨機森林由多個決策樹組成,是一種基於整合學習的模型。
- 每棵樹在訓練時隨機選擇一部分特徵,最終透過投票(分類)或平均(迴歸)得到結果。
5.2 梯度提升樹(Gradient Boosted Tree, GBT)
- 使用多個決策樹,按梯度提升的方式逐步減小模型誤差。
5.3 極端隨機樹(Extra Tree)
- 在決策樹的基礎上引入更多隨機性,例如隨機選擇分裂點。
6. 決策樹分類任務示例
問題描述
我們有一個小型資料集,目標是預測一個人是否適合參加戶外運動("是" 或 "否"),特徵包括天氣、溫度和風速。資料如下:
天氣 | 溫度 | 風速 | 是否適合運動 |
---|---|---|---|
晴天 | 熱 | 強 | 否 |
晴天 | 熱 | 弱 | 否 |
多雲 | 熱 | 強 | 是 |
雨天 | 溫暖 | 強 | 是 |
雨天 | 冷 | 強 | 否 |
雨天 | 冷 | 弱 | 是 |
多雲 | 冷 | 弱 | 是 |
晴天 | 溫暖 | 強 | 否 |
晴天 | 冷 | 弱 | 是 |
雨天 | 溫暖 | 弱 | 是 |
目標是構建一棵決策樹來預測“是否適合運動”。