【发布时间】:2022-06-20 19:07:46
【问题描述】:
所以我有一些代码如下:
best_score_param_estimator_gs = []
# XGBoost Model
xg_model = xg.XGBClassifier(use_label_encoder=False,
objective='binary:logistic',
verbosity=1,
seed=42
)
params = {
'learning_rate': [.01],
'n_estimators': [550],
'gamma': [5],
'subsample': [0.65],
'colsample_bytree': [1.0],
'max_depth': [6]
}
skf = StratifiedKFold(n_splits=2, shuffle = True, random_state = 1001)
# AUC and accuracy as score
scoring = {'AUC':'roc_auc', 'Accuracy':metrics.make_scorer(metrics.accuracy_score)}
# Run grid search
global grid
grid = GridSearchCV(xg_model, param_grid=params, scoring=scoring, refit='AUC', n_jobs=6,
cv=skf.split(X_train,y_train), verbose=1)
model = grid.fit(X_train, y_train)
有了这个,我得到了一个模型;我想按特征重要性的降序绘制此模型的特征重要性。
model.best_estimator_.feature_importances_
使用这个,我可以获得所有重要性的数组,但是我如何制作一个情节(matplotlib)以及它们的特征名称?
这个“有效”,但我不知道哪个是哪个
plt.bar(range(len(best_estimator_xgbc.feature_importances_)), best_estimator_xgbc.feature_importances_)
【问题讨论】:
标签: python xgboost feature-selection grid-search