xgboost 如何导出特征重要性成dataframe

feature_important = model.get_score(importance_type='weight')
keys = list(feature_important.keys())
values = list(feature_important.values())
data = pd.DataFrame({'feature': keys, 'score': values})
data = data.sort_values(axis=0, ascending=False, by='score')

最终data即为 dataframe

XGBoost是一个流行的梯度提升库,可以用于回归、分类等多种机器学习任务。它内建了计算特征重要性的功能,以下是逐步使用XGBoost获取特征重要性的步骤: 1. **安装和导入库**: 首先,你需要安装`xgboost`库。如果你使用Python,可以使用pip命令安装: ``` pip install xgboost ``` 然后,在Python代码中导入必要的库: ```python import xgboost as xgb ``` 2. **加载数据**: 加载你的训练数据集,通常包含特征和目标变量。例如: ```python data = pd.read_csv('your_data.csv') # 假设data是Pandas DataFrame X = data.drop('target_column', axis=1) # 特征 y = data['target_column'] # 目标变量 ``` 3. **创建DMatrix对象**: XGBoost使用DMatrix作为其基本的数据结构,这是专为优化性能设计的。创建一个DMatrix: ```python dtrain = xgb.DMatrix(X, label=y) ``` 4. **训练模型**: 初始化一个XGBoost模型并开始训练。这里假设我们使用的是GBDT算法: ```python params = {'objective': 'binary:logistic'} # 对于二分类问题 model = xgb.train(params, dtrain) ``` 5. **计算特征重要性**: XGBoost提供了一个内置的`get_score`函数,可以返回特征重要性得分。这个得分基于增益(gain)或信息增益比率(feature_importance_type='gain' 或 'weight')。例如,获取基于增益的重要性: ```python feature_importances = model.get_fscore(fmap='F', type='gain') ``` 这里`fmap`参数通常是从之前调用`dtrain.save_fscore()`生的文件路径。 6. **排序和可视化**: 得到重要性分数后,你可以对它们进行排序,并可视化工具如matplotlib进行展示: ```python sorted_features = sorted(feature_importances.items(), key=lambda x: x[1], reverse=True) print("Feature Importances:") for feat, importance in sorted_features: print(f"{feat}: {importance}") ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值