在LightGBM中,gbm.feature_importance()方法可以用于获取特征重要性分析结果。它返回的是每个特征的相对重要性评分。
特征重要性评分的计算原理主要有两种方法:
gain - 根据每个特征的信息 gain 大小进行评分。信息 gain 越高,表示该特征对模型的训练影响越大,重要性也越高。
weight - 根据每个特征在模型中的权重进行评分。权重越大,表示该特征在模型中所占的作用越重要。
具体方法是:
对于每一轮的训练,计算每一个特征的信息gain或权重。
对所有轮次的gain或weight进行平均,以得到每个特征的最终评分。
将所有特征的评分进行标准化,得出各特征的相对重要性排名。
所以特征重要性的 Evaluation 主要依赖于整体的训练过程,而不是某一次训练的结果。反复训练、 averaging 不同轮次的gain/weight可以得到更加稳定准确的重要性分析结果。
几点说明:
gain 方法更注重特征对模型训练的直接影响,更加简单易理解。
weight 方法更能体现特征在最终模型中的作用。官方文档推荐使用 weight 方法。
可以同时获取gain和weight两种方法的评分进行对比。
小的特征重要性评分值代表当前特征对该模型的贡献较小,可以考虑去除。 反之亦然。
特征重要性分析可以帮助我们理解模型,发现并去除不相关的特征,提高训练的速度和效果。
重复训练、averaging可以增加特征重要性的稳定性,尤其是在启用了特征交互项或xgboost的regularization时更为显著。
因此,gbm.feature_importance()可以帮助我们理解LightGBM模型,查找并去除无关特征,进一步优化模型的性能。是LightGBM中非常常用和实用的一个功能。 合理理解和运用此方法,可以让你的LightGBM模型更轻薄强劲。
总之,gbm.feature_importance()返回每个特征的相对重要性评分,评分的计算依赖于整体的训练过程,方法有gain和weight之分,官方推荐使用we