xgboost特征重要性代码
时间: 2025-01-18 11:38:50 AIGC 浏览: 57
### 使用XGBoost获取特征重要性的Python示例
为了展示如何通过XGBoost获取特征重要性,在Python环境中可以采用如下方法:
```python
import xgboost as xgb
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
import matplotlib.pyplot as plt
import numpy as np
# 加载数据集并划分训练测试集合
data = load_iris()
X_train, X_test, y_train, y_test = train_test_split(data.data, data.target, test_size=0.2, random_state=42)
# 训练XGBoost分类器
model = xgb.XGBClassifier(use_label_encoder=False, eval_metric='mlogloss')
model.fit(X_train, y_train)
# 获取特征重要性
importance = model.get_booster().get_score(importance_type='weight')
# 将特征重要性转换为可绘图的形式
keys = list(importance.keys())
values = list(importance.values())
# 绘制柱状图显示各个特征的重要性得分
plt.figure(figsize=(8, 6))
plt.bar(range(len(importance)), values, tick_label=keys)
plt.title('Feature importance based on weights')
plt.tight_layout()
plt.show()
print("Feature importance:", importance)
```
上述代码展示了加载Iris数据集,分割成训练集和测试集之后,创建了一个`XGBClassifier`实例来进行拟合操作。完成模型构建后,调用了`get_booster().get_score()`函数来提取基于权重的特征重要性分数[^1]。
值得注意的是,除了'weight'之外,还有其他类型的特征重要性指标可供选择,比如gain(增益),cover(覆盖范围)。不同的评估标准可能会给出略有差异的结果,因此可以根据具体应用场景和个人偏好做出适当调整[^2]。
阅读全文
相关推荐



















