2016-07-26 4 views
4

Bevor ein Modell baut Ich mag dieseNamen Bedeutung Grundstück verfügen nach Vorverarbeitung

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

und nach dem Bauprozess eines Feature Bedeutung Grundstück machen Skalierung

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

enter image description here

Das Problem besteht darin, dass statt Feature-Namen erhalten wir f0, f1, f2, f3 etc. ..... Wie man die Namen der Features zurückgibt?

dank

Antwort

7

zuerst erhalten wir Liste mit Namen von Funktionen, bevor Vorverarbeitung

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

Dann

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') 

, die alle

+2

I() get_score zu verwenden 'bst.booster erforderlich ist.() .items() 'anstelle von ' bst.get_fscore(). items() ', wenn das' bst' eine Instanz von 'XGBClassi ist fier'. – corochann