样本数据集
Feature1 Feature2 Feature3 Target
10 21 23 25
20 23 24 23
30 23 25 45
以下代码用于在回归问题上拟合 XG boost 并获得重要特征。特征选择方法是使用F分数来给出重要性。
clf = xgb.XGBRegressor(n_estimators=100, gamma=1)
clf.fit(X_train, y_train)
sorted_idx = clf.feature_importances_.argsort()
plt.barh(X_train.columns[sorted_idx], clf.feature_importances_[sorted_idx])
plt.xlabel("Xgboost Feature Importance")
plt.show()
但是,可以使用精度和召回率来计算分类问题的 F 分数。
但是在回归问题中,我预测的是一个变量,那么特征重要性是如何计算的?
答案 0 :(得分:0)
Xgboost 中的重要性有几种类型。如果您使用类似 scikit-learn 的 API 构建模型,则默认类型是增益。当您访问 Booster 对象并使用 get_score
方法获取重要性时,默认为权重。您可以使用 xgb.importance_type
检查重要性的类型。
增益类型显示使用特征的所有分割的平均增益。
权重显示了使用该特征拆分数据的次数。这种类型的特征重要性可以有利于数字和高基数特征。还要记住,还有 cover, total_gain, total_cover types
的特征重要性。