Is it required to train the model in entire data after cross validation? I have a model trained as follows.
random_search=RandomizedSearchCV(classifier, param_distributions=params,\
     scoring='f1',
     n_iter=100, cv=5, verbose=3, random_state=42, n_jobs=-1)
random_search.fit(X, y)
final_classifier=random_search.best_estimator_

My question is, do I have to train final_classifier on entire data before putting it into production?
i.e. Should I do
final_clssifier.fit(X,y)

Or random_search returning the model after fitting it again on entire data?
I really appreciate any help you can provide.

It is not required. In many cases, it might be a good idea, for example when you have a rather small dataset. On the other hand, if you have a lot of good data, so the set used for tuning was already decent, it might not be necessary. It not always will be possible as well, for example, if training your model cost as much as a new car (some large deep learning models) you might not have enough resources to repeat it, same if the training takes very long and you don't have the time. If you decide to re-train, it is a good idea to keep the held-out test set to make sure that the re-trained model performs as well as the one found during cross-validation, as there's always a risk that something goes wrong (e.g. bug in the code, for a trivial example).
