以lightgbm模型为例
1. 获得特征重要性信息
def get_feature_importance_pair(gbm_model):
feature_name_list = gbm_model.feature_name()
importance_list = list(gbm_model.feature_importance())
feature_importance_pair = [(fe, round(im, 2)) for fe, im in zip(feature_name_list, importance_list)]
# 重要性从高到低排序
feature_importance_pair = sorted(feature_importance_pair, key=lambda x: x[1], reverse=True)
for pair in feature_importance_pair:
print('Feature:\t{}\t{}'.format(*pair))
return feature_importance_pair
2. 保存特征重要性信息
def save_feature_importance_pair(feature_list_name, gbm_model):
# df = pd.DataFrame({"feas": feas, "imps": feature_importances})
df = pd.DataFrame()
df['feature'] = feature_list_name
df['importance'] = list(gbm.feature_importance())
df = df.sort_values(by='importance', ascending=False)
df.to_csv("./feature_importance.csv", index=None, header=None, encoding='gbk')