title: XGBoost - Difference between scale_pos_weight and class_weights
body: <p>Let's suppose we have a highly imbalanced binary classification problem in place. 
  Now, XGBoost provides us with 2 options to manage class imbalance during training. One is using the parameter <strong>scale_pos_weight</strong> while the other is using <strong>weights</strong> parameter of the DMatrix.</p>
  
  <p>For eg - 
  I can either use - <strong>params = {'scale_pos_weight' : some value}</strong>
  Or I can give class weights while creating the DMatrix like -
  xgb = xgb.DMatrix(features, target, <strong>weight</strong>)</p>
  
  <p>Can somebody please explain me the difference between these 2 cases? And how does the scores differ in both the cases?</p>