iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 13
0

除了分類和迴歸模型外,
還有樹狀模型可以供選擇,
先來認識一下簡單的決策樹。

參考文章第3.5講 : 決策樹(Decision Tree)以及隨機森林(Random Forest)介紹

在訓練過程中決策樹會問出一系列的問題像是溫度是否>125,濕度是否<5%之類的是非問題。
首先會從最後上方的樹根開始將資料的特徵將資料分割到不同邊(比方說依據溫度將資料切成三份),
分割的原則是:這樣的分割要能得到最大的資訊增益(Information gain, 簡稱IG)。

由於我們希望獲得的資訊量要最大,因此經由分割後的資訊量要越小越好。
常見的資訊量有兩種:熵(Entropy) 以及 Gini不純度(Gini Impurity)

熵資訊量函式


Gini Impurity資訊量函式

以下參考文章HOW DECISION TREE ALGORITHM WORKS

Entropy

Information Gain of B= 0.7070795為最高,所以由此開始往下分,
接著對Information Gain of C= 0.5488第二高往下分,
最後對Information Gain of D= 0.41189分完,
A的數值太小差距太大,就不分了。

https://ithelp.ithome.com.tw/upload/images/20191014/20112568B6t4ClG9ki.png

Gini Index

由最小的Gini Index of C= 0.2開始往下分,
再找第二小的Gini Index of D= 0.273往下分,
最後再分Gini Index of B= 0.3345。

https://ithelp.ithome.com.tw/upload/images/20191014/20112568WTWykV5yKF.png

程式碼

from sklearn.tree_model import DecisionTreeRegressor 
from sklearn.tree_model import DecisionTreeClassifier 
clf = DecisionTreeClassifier(criterion='gini',max_depth=None,min_samples_split=2,min_samples_leaf=1)

可針對迴歸或分類問題選取function,
並且使用criterion指定決策樹方法,
記得要設定其他參數,來避免overfit。


以上,打完收工。


上一篇
[Day20] Lasso 和 Ridge 正規化回歸
下一篇
[Day22] 模型選擇-隨機森林
系列文
Machine Learning Day3026

尚未有邦友留言

立即登入留言