ML:基礎技法學習
Package:scikit-learn
課程:機器學習技法
簡介:第九講 Decision Tree
sklearn.tree.DecisionTreeClassifier
sklearn.tree.DecisionTreeRegressor
Package:scikit-learn
課程:機器學習技法
簡介:第九講 Decision Tree
提要
- 優點
- 可輕易被解釋
- 簡單實現
- 有效率
- 缺點
- 理論支持薄弱
- 參數無理論保證,難以設計
- 無特定代表性的演算法,只有流不流行
基本算式
基本演算法
- function
- if (符合中止條件)
- 回傳
- else
- 學習
- 將
分割成 C 個部分 - 遞迴
- 回傳
Classification and Regression Tree (C&RT)
來自於 CARTTM of California Statistical Software
- function
- if (無法再切割) => 故為 fully-grown tree
- 回傳
- else
- 學習
- classification 使用 Gini index
- regression
為 的平均 - 將
分割成 2 個部分 - 遞迴
- 回傳
關於 Decision Tree
- Regularization by Pruning
- 當
都不一樣時,fully-grown tree 雖然可以
但這也表示很容易 overfit,因為越接近 leaf 的資料 越少,訓練出來的越有問題 - regularized decision tree,通常也叫做 pruned decision tree
利用此式子, 為 leaf 的個數 - 實際上無法考慮所有的
,故實務上只針對訓練出來的 做處理 = fully-grown tree = 移除一個 leaf 的所有選擇中,最好 的- 移除 leaf 的意義即是跟隔壁資料做合併,重新計算
- 將全部的
代入 regularizer decision tree,使用 Validation 得到合適的
或者直接用此得到合適的 - Branching on Categorical Features
- numerical feature,像是血壓
, - 若換到 Categorical Features 也可輕易應用,像是症狀
, - decision subset,某幾類走左邊,其餘走右邊,由
決定 - Missing Features by Surrogate Branch
- 可適用缺少資料的時候
- 訓練時,同時記錄替代的 feature,令其分類跟原本的最佳解差不多
替代的
C&RT 特點
- 與 AdaBoost 比較
- 只針對特定區域做切割,並非是整區切割
- 較有效率,t=90 已完成,但 AdaBoost 仍在微調
- 特點
- 容易解釋
- multiclass 實現簡單
- categorical features 應用簡單
- missing features 處理簡單
- non-linear training (and testing) 有效率
- 與之對應
- C4.5 演算法,在關鍵點的處理不同而已
比較
- blending
- 適用已知
, 來自不同的 ,只是單純合併 - learning
- 適用未知
, 來自同樣的 ,邊學邊決定
程式碼
參考
1.10. Decision Treessklearn.tree.DecisionTreeClassifier
sklearn.tree.DecisionTreeRegressor
留言
張貼留言