原理:
計算label的純度, 再分別計算各個feature的純度, 使用與label純度差異最大(information gain最大)的feature當成root切割資料集, 表示分之前的與分之後的亂度哪一個減少最多,重複這個步驟, 不斷尋找feature, 以此類推下去
純度:
計算label的純度, 再分別計算各個feature的純度, 使用與label純度差異最大(information gain最大)的feature當成root切割資料集, 表示分之前的與分之後的亂度哪一個減少最多,重複這個步驟, 不斷尋找feature, 以此類推下去
純度:
混亂程度, 計算數值越高表示越亂, 大都是同一類別表示越純, 類別平均出現表示越亂
純度計算:
純度計算:
information gain計算演算法, Gini impurty and Entropy, 測試結果兩種方法大同小異, 依照實際問題可能有特定的計算方式
Information gain問題:
分類演算法比較:
Information gain問題:
會去選擇出現次數最多的當root, 因為例如ID去切割 , 一定是最純, 所以會使用加入gain ratio計算, 避免被ID影響
pruning 限制分支:
決策樹很容易overfitting, 必須進行限制分支, post-pruning, 樹長完後再來觀察如何限制, 計算大但是效果較好
關找出關鍵的feature:
可以透過哪些feature被使用最多次, 來找出影響結果最強的feature, scikit-learn使用feature important找出feature並排序
關找出關鍵的feature:
可以透過哪些feature被使用最多次, 來找出影響結果最強的feature, scikit-learn使用feature important找出feature並排序
KNN訓練快預測慢
logistic regression在小樣本中速度較快
Decision Tree 比logistic regression略慢, 因為一個feature在每一層可能出現很多次EX root有身高>160, 下一層身高>170
視覺化:
可以使用下列套件將樹畫出來
視覺化:
可以使用下列套件將樹畫出來
ISSUE
- 當遇到多樣(mutiple)與重複高(overlapping)的資料很容易overfitting, 建議使用Ensemble Learning, 如隨機森林......
- 結果不容易被解釋
- 隨機森林可以平行化處理, 速度快
Ref:
- 台灣人工智慧學校
沒有留言:
張貼留言