I have come across several questions on Stackoverflow, where the problem faced by masses is that they preprocess the training data, such as using centre and scale etc. before fitting/training the XGBoost model using, for instance 

```
`

scaler = MinMaxScaler(feature_range=(0, 1))
X = scaler.fit_transform(X)
my_model_name = XGBClassifier()
my_model_name.fit(X,Y)` 

```

where X and Y are the training data and labels respectively, scaling which returns a 2D NumPy array, thereby losing the feature names.

I have trained my XGBoost model, but using the preprocessed data (centre and scale using MinMaxScaler). Thereby, I am in a similar situation where the column names/feature names are lost. Thus, when I try to use `plot_importance(my_model_name)`, it leads to the plot of feature importance, but only with feature names as f0, f1, f2 etc., and not with the actual feature names in the dataset, as must be obvious.

Most answers on SO pertain to training the model in a way that feature names aren't lost (such as using pd.get\_dummies on data frame columns. I have the query that how I can get the actual feature names when using `plot_importance(my_model_name)`, without retraining the model? Is there a way to map the feature names f0,f1,f2 etc. from the original training data (not pre-processed, with column names) to the feature importance plot generated, so that the actual feature names are plotted in the graph? Any help in this regard is highly appreciated.