import pandas as pd
from sklearn.preprocessing import StandardScaler
from xgboost import XGBClassifier
from xgboost import plot_importance

#============= requirements (version of packages) 
#pandas version 1.4.4
#sklearn version 1.0.2
#xgboost version 1.7.5
#=============

#load data
df = pd.read_csv('WheelModel.csv')
#df = pd.read_csv('FullModel.csv')

#split predictor variables and target
X_total_1 = df.loc[:, df.columns != 'Target']
y_total = df['Target']

#collect names of predictor variables
feature_names = X_total_1.columns.values

#standardize predictor variables
ss = StandardScaler()
X_total = ss.fit_transform(X_total_1)

#construct model
model = XGBClassifier()
model.fit(X_total,y_total)

#print importance of predictor variables
xgboost_importances = pd.Series(model.feature_importances_, index=feature_names)
sortedFI = xgboost_importances.sort_values(ascending=False)
print(sortedFI)
print(sum(model.feature_importances_))