2019年3月23日 星期六

[ML] 機器學習初學觀念 - XGBoost


Kaggle解題神器, GDBoost進階版, 
因為常被拿來使用而且效果好所以獨立一篇說明
說明
● Additive model (GBM 類似)
● Features sampling (Random forest 類似
● Add regularization in objective function
● Use 1
st and 2nd derivative to help training 

XGBoost GBM (Gradient boosting machine) 有什麼差異?
  • objective function 加上 regularization,避免Overfitting
  • 用上一階及二階導數來生成下一棵樹feature / data sampling
  • RF 相同,每棵樹生長時用到不同的資料與 features 

實作
需要安裝XGBoost套件
pip install XGBoost
from xgboost import XGBClassifier

參數說明:
n_estimators [100]: number of trees
learning_rate [0.1]: shrinkage
max_depth [3]: too large overfitting
gamma [0]: L2 loss regularization, too small
overfitting 

lambda [0]: L1 loss regularization, too small overfitting
scale_pos_weight [1]: use for imbalance data
*方括 [ ] 為該參數預設值 

early_stop = 10:
testing data 放進 eval_set,如果 validation 的結果 10 次 沒有進步,就提前結束 training 


找出重要特徵

視覺化


Ref:
台灣人工智慧學校

沒有留言:

張貼留言