xgboost与lightgbm的feature importance度量方式

xgb有5种feature importance度量方式,total gain / gain / weight(split) / total cover / cover,gain和cover都是avg gain和avg cover,是total gain除以这个feature的分裂次数,cover同理,cover的意思是一次分裂影响了多少的样本点。我不明白设计avg gain和avg cover的意义何在?total和avg可能产生很大的差异。avg的意义是什么呢?一般不出手,一出手就对损失函数削减够狠吗?意义不明,这样可以说明很重要吗?不能吧,应该看总的削减程度,比如我不要这种变量,对整体损失函数的削减并没太大变化。

另外xgboost.plot_importance绘制变量重要性的bar图,文档中说只支持weight/gain/cover,但是我发现是支持total_gain和total_cover的。
xgboost.booster.get_score(fmap='',importance_type='weight')可以得到每个feature的重要性数值。

lightgbm的feature importance就干净得多,只支持total gain( 参数名就叫gain)和split。


留言

熱門文章