XGBClassifier如何输出特征重要性
时间: 2024-03-10 20:43:23 浏览: 121
利用最大相关最小冗余mRMR算法对特征变量做特征重要性排序,实现特征选择 通过重要性排序图,选择重要的特征变量,以期实现数据降
在 XGBoost 中,可以通过 XGBClassifier 中的 feature_importances_ 属性来获取特征重要性。示例代码如下:
```python
from xgboost import XGBClassifier
from sklearn.datasets import load_breast_cancer
import matplotlib.pyplot as plt
# 加载数据集
data = load_breast_cancer()
X = data.data
y = data.target
# 构建分类器
clf = XGBClassifier()
clf.fit(X, y)
# 输出特征重要性
importances = clf.feature_importances_
indices = np.argsort(importances)[::-1]
for f in range(X.shape[1]):
print("%2d) %-*s %f" % (f+1, 30, data.feature_names[indices[f]], importances[indices[f]]))
# 可视化特征重要性
plt.title('Feature Importances')
plt.bar(range(X.shape[1]), importances[indices])
plt.xticks(range(X.shape[1]), indices)
plt.show()
```
上述代码中,我们首先加载了一个乳腺癌数据集。然后,我们构建了一个 XGBClassifier 分类器,并使用 fit() 方法拟合数据。接着,我们输出了特征重要性,并使用 Matplotlib 可视化了特征重要性。需要注意的是,特征重要性是一个 ndarray 类型的数组,其大小与特征数相等。我们还可以根据特征重要性的大小对特征进行排序,这里使用了 argsort() 函数进行排序,并将结果倒序,使特征重要性从大到小排列。
阅读全文