2

I know it's easy to do grid search for a simple Catboost model, such as in here: https://medium.com/aiplusoau/hyperparameter-tuning-a5fe69d2a6c7

by running something like

cbc = CatBoostRegressor()

#create the grid grid = {'max_depth': [3,4,5],'n_estimators':[100, 200, 300]}

#Instantiate GridSearchCV gscv = GridSearchCV (estimator = cbc, param_grid = grid, scoring ='accuracy', cv = 5)

#fit the model gscv.fit(X,y)

#returns the estimator with the best performance print(gscv.best_estimator_)

Method like this did not have the input of categorical columns in the Catboost model.

But my question is how can I do grid search for categorical_cols specified?

For example, here is my code how I assign the categorical columns:

categorical_cols =  ['site_number','product_key', 'manufacturer_desc']

initialize Pool

train_pool = Pool(X_train, y_train, cat_features=categorical_cols) test_pool = Pool(X_test, cat_features=categorical_cols)

specify the training parameters

model = CatBoostRegressor(iterations=150, learning_rate = 0.5, depth=8,
random_seed = 42 ) #train the model model.fit(train_pool)

But this is the model without grid search. The question is how can I still do the grid search with the above categorical_cols specified. The train_pool and test_pool is already specified, not sure what's a best way.

Thanks!

Ian
  • 21
  • 3

0 Answers0