0

When I try to combine RandomSearch with the early stopping method to reduce the overfitting, I get this error:

py:372: FitFailedWarning: 300 fits failed out of a total of 300. The score on these train-test partitions for these parameters will be set to nan. If these failures are not expected, you can try to debug them by setting error_score='raise'.

The code I am trying is like this:

params_dist = {'min_child_weight': [0.1, 1, 5, 10, 50],
              'colsample_bytree': np.arange(0.5, 1.0, 0.1),
              'gamma': [0.5, 1, 1.5, 2, 5],
              'subsample': np.arange(0.5, 1.0, 0.1),
              'max_depth': range(3, 21, 3),
              'learning_rate': [0.0001,0.001, 0.01, 0.1, 0.2, 0.3, 0.4, 0.5, 1],
              'n_estimators': [50, 100, 250, 500, 750, 1000],
              'reg_alpha': [0.0001, 0.001, 0.1, 1],
              'reg_lambda': [0.0001, 0.001, 0.1, 1]}                   
 model_with_earlyStopping = xgb.XGBClassifier(objective='binary:logistic', 
                                              eval_metric="error",
                                               early_stopping_rounds=13,
                                                seed=42)
random_search = model_selection.RandomizedSearchCV(model_with_earlyStopping, 
                                                       param_distributions=params_dist, 
                                                       scoring='roc_auc', 
                                                       n_jobs=-1,
                                                       verbose=0, 
                                                       cv=3,
                                                       random_state=1001,
                                                       n_iter=100)

The code worked fine without using early stopping. However, I am looking for a way to combine these 2 methods together.
Can anyone help me fix it?

Sara
  • 419
  • 1
  • 6
  • 14

0 Answers0