GridSearchCV not reading param grid

Viewed 118

I have tried various ways to pass param grid to gridsearchcv and after trying everything else I am literally trying to pass param grid as follows:

self.model = GridSearchCV(self.model, {'n_estimators':[100], 'learning_rate':[0.1], 'gamma':[0], 'subsample':[1.0], 'colsample_bytree':[1.0], 'max_depth':[10], 'reg_lambda':[1.0]}, n_jobs=1)

but still it gives the following error.

    Traceback (most recent call last):
  File "train.py", line 93, in <module>
    trainer.train_station_models()
  File "train.py", line 72, in train_station_models
    val_dataset, val_labels)
  File "train.py", line 40, in train
    val_dataset, val_labels)
  File "/models.py", line 193, in train
    self.model.fit(self.train_data, self.train_labels)
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/sklearn/utils/validation.py", line 72, in inner_f
    return f(**kwargs)
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/sklearn/model_selection/_search.py", line 736, in fit
    self._run_search(evaluate_candidates)
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/sklearn/model_selection/_search.py", line 1188, in _run_search
    evaluate_candidates(ParameterGrid(self.param_grid))
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/sklearn/model_selection/_search.py", line 715, in evaluate_candidates
    cv.split(X, y, groups)))
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/joblib/parallel.py", line 1041, in __call__
    if self.dispatch_one_batch(iterator):
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/joblib/parallel.py", line 859, in dispatch_one_batch
    self._dispatch(tasks)
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/joblib/parallel.py", line 777, in _dispatch
    job = self._backend.apply_async(batch, callback=cb)
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 208, in apply_async
    result = ImmediateResult(func)
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/joblib/_parallel_backends.py", line 572, in __init__
    self.results = batch()
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/joblib/parallel.py", line 263, in __call__
    for func, args, kwargs in self.items]
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/joblib/parallel.py", line 263, in <listcomp>
    for func, args, kwargs in self.items]
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/sklearn/model_selection/_validation.py", line 520, in _fit_and_score
    estimator = estimator.set_params(**cloned_parameters)
  File "/anaconda3/envs/tf/lib/python3.7/site-packages/sklearn/base.py", line 252, in set_params
    (key, self))
ValueError: Invalid parameter colsample_bytree for estimator GridSearchCV(estimator=XGBRegressor(base_score=None, booster=None,
                                    colsample_bylevel=None,
                                    colsample_bynode=None,
                                    colsample_bytree=None, gamma=None,
                                    gpu_id=None, importance_type='gain',
                                    interaction_constraints=None,
                                    learning_rate=None, max_delta_step=None,
                                    max_depth=None, min_child_weight=None,
                                    missing=nan, monotone_constraints=None,
                                    n_estimators=100, n_jobs=None,
                                    num_parallel_tree=None, random_state=None,
                                    reg_alpha=None, reg_lambda=None,
                                    scale_pos_weight=None, subsample=None,
                                    tree_method=None, validate_parameters=None,
                                    verbosity=None),
             n_jobs=1,
             param_grid={'colsample_bytree': [1.0], 'gamma': [0],
                         'learning_rate': [0.1], 'max_depth': [10],
                         'n_estimators': [100], 'reg_lambda': [1.0],
                         'subsample': [1.0]}). Check the list of available parameters with `estimator.get_params().keys()`.

I tried removing the gridsearchcv and everything works just fine. I am really not understanding why it is showing this behavior.

I am using the xgboost package with python sklearn API for it.

0 Answers
Related