xgboost 使用 MAE或MAPE 作爲目標函數

xgboost目標函數

首先我們知道xgboost支持自定義目標函數,參見:

但是其要求目標函數必須二階可導,我們必須顯式給出梯度(可理解爲一階導)和hess陣(可理解爲二階導),但是MAE不可導。具體xgboost的原理的我們可以參見陳天奇的PPT或者此博客:

使用可導目標函數逼近MAE

損失函數示意圖
如上圖所示,xgboost自帶的平方損失,與MAE相距較遠。比較接近的損失有Huber Loss 以及 Fair Loss。具體可參考:

自定義近似MAE導數

我們不必要限制在尋找逼近MAE損失函數,然後再使用逼近的導數這樣的過程。我們可以直接構造MAE的導數。當然這個構造過程可能沒有太多的理論支持,但是它的確work。參見:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章