5 votes

Tracer l'importance des fonctionnalités des noms après le prétraitement

Avant de construire un modèle, je fais une mise à l'échelle de cette manière

X = StandardScaler(with_mean = 0, with_std = 1).fit_transform(X)

et après avoir construit un graphique d'importance des fonctionnalités

xgb.plot_importance(bst, color='red')
plt.title('importance', fontsize = 20)
plt.yticks(fontsize = 10)
plt.ylabel('fonctionnalités', fontsize = 20)

entrez la description de l'image ici

Le problème est que au lieu des noms des fonctionnalités, nous obtenons f0, f1, f2, f3 etc..... Comment revenir aux noms des fonctionnalités?

merci

8voto

Edward Points 1046

Tout d'abord, nous obtenons la liste des noms des fonctionnalités avant le prétraitement

dtrain = xgb.DMatrix( X, label=y)
dtrain.feature_names

Ensuite

bst.get_fscore()
mapper = {'f{0}'.format(i): v for i, v in enumerate(dtrain.feature_names)}
mapped = {mapper[k]: v for k, v in bst.get_fscore().items()}
mapped
xgb.plot_importance(mapped, color='red')

c'est tout

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X