2017-06-22 5 views
0

J'essaye d'effectuer la sélection de caractéristiques (pour des tâches de régression) par XGBRegressor().XGBoost - Sélection de fonction en utilisant XGBRegressor

Plus précisément, je voudrais savoir:

  • S'il y a quelque chose comme la méthode feature_importances_, utilisé avec XGBClassifier, que je pourrais utiliser pour la régression.
  • Si la méthode de XGBoost plot_importance() est fiable quand il est utilisé avec XGBRegressor()

Répondre

1

Enfin, je l'ai résolu cette question par:

model.booster().get_score(importance_type='weight')

0

Voici ma solution (Xnames fait référence aux noms de fonctions):

def xgb_feature_importance(model_xgb, fnames=None): 
    b = model_xgb.booster() 
    fs = b.get_fscore() 
    all_features = [fs.get(f, 0.) for f in b.feature_names] 
    all_features = np.array(all_features, dtype=np.float32) 
    all_features_imp = all_features/all_features.sum() 
    if fnames is not None: 
     return pd.DataFrame({'X':fnames, 'IMP': all_features_imp}) 
    else: 
     return all_features_imp