由於決策樹可以分為許多種類,以下講的是講分類樹。
- 決策樹的優點為不用懂複雜的理論與技術,就可以理解其運作原理。
- 另外一個優點是,決策樹可以針對數據所含的意義去運作,因此決策樹所提取出來的規則,其實也就是機器學習在建立的規則。
- 決策樹適用於類別變數,因此數值型的數據須先進行離散化。
有這麼多features可以挑選,決策樹如何挑選要先對哪一個features進行分類呢?
- 有兩個指標可以去看,第一個是信息增益(Information gain)。
- 我們從最簡單的方法來想,可以用20個問題的遊戲來玩,今天你只有20個問題可以問,在這20個問題以內,你會盡可能地在問完每個之後縮小可能答案的範圍,因此,你所問的問題,其答案不應該太過廣泛或太過限制。
- 舉例來說,今天我的答案是樹懶,那我第一個問題可能會是「是動物嗎?」這種比較廣泛的問題,等到範圍縮小到「陸地上的動物」後,如果問了「是否有斑點」這個問題,答案不是S1{有斑點}(大麥町狗、花豹、梅花鹿等等特定品種的動物),不然就是S2{沒有斑點}(大象、雞、豬等等很廣泛的動物類別),比起「體型比機車還小」這個問題(可以明顯得縮小範圍),第一個問題在問前問後,所提供的資訊量其實還是很多,第二個問題在問完後所提供的資訊量就相對較少。
- 而「問題的資訊量」就叫做信息增益(information gain),而熵(entropy)是計算信息增益的方法。
Entropy = -p * log2 p – q * log2q
p:成功的機率
q:失敗的機率
在篩選features時會計算篩選後的entropy,挑選entropy較小值得feature做為分類的依據。
相關的計算可以看這個部落格:https://chtseng.wordpress.com/2017/02/10/%E6%B1%BA%E7%AD%96%E6%A8%B9-decision-trees/
- 另外一個觀念是「切分亂度」(Entropy of Partition),切分亂度低為切分後的子集合亂度較低(較為穩定)。例如,第一個問題「是否有斑點」中的S2比起S1有很高的亂度。
- 但要注意的一點是,如果切分亂度太低,則有可能造成over fitting的問題,變成每個子集只會包含一筆數據。
第二個是吉尼係數(Gini coefficient)
詳細介紹可以看wiki pedia
p/(q+p)
p會介於0-1之間,會靠近0越平均分佈,越靠近1越不平均