如何提取XGBoost最重要特征名称并保存为pandas DataFrame
XGBoost特征重要性提取并存入Pandas DataFrame实现方案
在你已完成模型训练的代码基础上,补充以下代码即可实现需求:
import pandas as pd # 构造特征重要性DataFrame feature_importance_df = pd.DataFrame({ 'feature_name': xgb_model.get_booster().feature_names, # 若X是Pandas DataFrame也可以直接写X.columns 'importance_score': xgb_model.feature_importances_ }) # 按重要性从高到低排序,重置索引 feature_importance_df = feature_importance_df.sort_values(by='importance_score', ascending=False).reset_index(drop=True) # 取前N个最重要的特征,和你绘图参数保持一致即可得到和图中完全对应的特征列表 top_n = 35 top_feature_df = feature_importance_df.head(top_n) # 可按需导出到本地文件 # feature_importance_df.to_csv('xgb_feature_importance.csv', index=False)
- 若训练时输入的X是Numpy数组,需要把代码中的
xgb_model.get_booster().feature_names替换为你自己定义的特征名列表,保证列表顺序和训练时特征的输入顺序完全匹配即可。 - 生成的DataFrame可直接用于后续的特征筛选、结果输出等操作。
内容的提问来源于stack exchange,提问作者Jocelyn AL
相关产品推荐
相关产品推荐

