Fonction de l'Importance avec XGBClassifier

J'espère que je vais lire ce mal, mais en XGBoost bibliothèque la documentation, il y a la note de l'extraction de la fonction de l'importance des attributs à l'aide de feature_importances_ comme sklearn de la forêt aléatoire.

Cependant, pour une raison quelconque, je reçois cette erreur: AttributeError: 'XGBClassifier' object has no attribute 'feature_importances_'

Mon bout de code est ci-dessous:

from sklearn import datasets
import xgboost as xg
iris = datasets.load_iris()
X = iris.data
Y = iris.target
Y = iris.target[ Y < 2] # arbitrarily removing class 2 so it can be 0 and 1
X = X[range(1,len(Y)+1)] # cutting the dataframe to match the rows in Y
xgb = xg.XGBClassifier()
fit = xgb.fit(X, Y)
fit.feature_importances_

Il semble que vous pouvez calculer la fonction de l'importance à l'aide de la Booster objet en appelant le get_fscore attribut. La seule raison pour laquelle je suis en utilisant XGBClassifier sur Booster est parce qu'il est capable d'être enveloppé dans un sklearn pipeline. Toute réflexion sur la fonctionnalité des extractions? Est ce que quelqu'un d'autre rencontre ce?

  • Je ne peux pas reproduire le problème avec votre extrait de code. Quelle est la version de XGBoost avez-vous?
  • de mon pip freeze , j'ai xgboost==0.4a30
  • Cela vous aide? kaggle.com/mmueller/...
  • J'ai vu cela avant. Le problème est cependant, est que les get_fscore méthode est liée à la Booster objet plutôt que XGBClassifier à partir de ma compréhension. Voir la doc ici
  • J'ai 0,4 et votre extrait de code fonctionne sans problème.
  • Hrm c'est étrange. La version actuelle est 0.4a30 droit? Il apparaît donc à la recherche à leurs repo
  • à l'aide de feature_importances_ via booster() êtes-vous en mesure d'obtenir les noms de colonne avec précision ? Dans mon cas, il jette un KeyError que pas certaines fonctionnalités ne sont pas présentes dans les données.

InformationsquelleAutor Minh Mai | 2016-07-05