Hyper parameters tuning XGBClassifier
1)Random search if often better than grid
https://www.analyticsindiamag.com/why-is-random-search-better-than-grid-search-for-machine-learning/
Try:

#clf = RandomizedSearchCV(clf ,param_distributions = params, cv=kfold, scoring="accuracy", n_jobs= 10, verbose = 1)


2) For unbalanced data set:


Resampling: undersampling or oversampling
create new data points


https://towardsdatascience.com/methods-for-dealing-with-imbalanced-data-5b761be45a18