Hyperparameter Tuning with GridSearchCV and RandomisedSearchCV

Hyperparameter tuning with GridSearchCV and RandomisedSearchCV for boosting model accuracy

Introduction

In the journey of building a high-performing machine learning model, fine-tuning is not just an enhancement—it’s a necessity. Hyperparameter tuning with GridSearchCV and RandomisedSearchCV plays a critical role in elevating your model’s accuracy and reliability. This blog post provides a detailed yet accessible guide on how to efficiently tune model hyperparameters using these tools, complete with code snippets, expert insight, and practical tips.

 

What Is Hyperparameter Tuning?

Hyperparameters are the external configurations to a model that cannot be learned from the data. Examples include the number of trees in a random forest, the value of C in SVM, or the learning rate in gradient boosting.

While model parameters are learned during training, hyperparameters must be set manually—and the right values can make a significant difference.

Why Hyperparameter Tuning Matters

A poorly chosen set of hyperparameters can limit your model's potential or cause overfitting/underfitting. Hyperparameter tuning aims to find the optimal combination of values that improves model performance on unseen data.

Expert Opinion:
"Hyperparameter tuning with GridSearchCV and RandomisedSearchCV is crucial in practice—these methods turn average models into production-ready solutions." – Dr. Sameera Iqbal, Data Scientist, Cambridge AI Lab

Methods of Hyperparameter Tuning

Two of the most effective methods are:

1. GridSearchCV

This method exhaustively considers all possible combinations of hyperparameters provided in a grid format.

Pros:

  • Comprehensive

  • Easy to implement
    Cons:

  • Time-consuming, especially with large datasets or parameter grids

2. RandomisedSearchCV

Rather than testing all combinations, it randomly selects from the grid for a specified number of iterations.

Pros:

  • Faster

  • Can explore a wider range of values
    Cons:

  • Might miss the optimal combination if not enough iterations

Step-by-Step Guide to Hyperparameter Tuning

Let’s use the Random Forest Classifier from scikit-learn for this example.

🧪 Initial Setup

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
from sklearn.datasets import load_iris

# Load sample data
data = load_iris()
X = pd.DataFrame(data.data, columns=data.feature_names)
y = pd.Series(data.target)

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)

🔍 GridSearchCV Example

from sklearn.model_selection import GridSearchCV

# Define the parameter grid
param_grid = {
    'n_estimators': [10, 50, 100],
    'max_depth': [None, 5, 10],
    'min_samples_split': [2, 5]
}

# Instantiate model and GridSearch
rf = RandomForestClassifier(random_state=42)
grid_search = GridSearchCV(estimator=rf, param_grid=param_grid, cv=5, scoring='accuracy')

grid_search.fit(X_train, y_train)
print("Best Parameters from GridSearchCV:", grid_search.best_params_)

📌 Note: GridSearchCV performs cross-validation, ensuring better generalisation.

🎲 RandomisedSearchCV Example

from sklearn.model_selection import RandomizedSearchCV
from scipy.stats import randint

# Define distribution instead of list
param_dist = {
    'n_estimators': randint(10, 200),
    'max_depth': [None, 5, 10, 20],
    'min_samples_split': randint(2, 11)
}

random_search = RandomizedSearchCV(estimator=rf, param_distributions=param_dist,
                                   n_iter=10, cv=5, scoring='accuracy', random_state=42)

random_search.fit(X_train, y_train)
print("Best Parameters from RandomisedSearchCV:", random_search.best_params_)

How to Evaluate the Tuned Model

from sklearn.metrics import accuracy_score

# Use best estimator
best_rf = random_search.best_estimator_
y_pred = best_rf.predict(X_test)

print("Accuracy after tuning:", accuracy_score(y_test, y_pred))

By comparing accuracy before and after tuning, you'll often find a noticeable performance boost.

Choosing Between GridSearchCV and RandomisedSearchCV

Factor GridSearchCV RandomisedSearchCV
Performance Comprehensive Fast and scalable
Time Consumption High Low
Suitable For Small grids Large, continuous ranges
Risk of Overlook Low Moderate

Expert Tip:

For small parameter spaces, GridSearchCV is ideal. For larger, more complex spaces or time-sensitive projects, RandomisedSearchCV is the preferred choice. 

Best Practices for Hyperparameter Tuning

🔧 Define Reasonable Parameter Ranges

Avoid using too wide a range—this increases compute time without much gain.

🧠 Start with RandomisedSearchCV

Use it to narrow down good ranges before switching to GridSearchCV.

🕰️ Use Early Stopping (if applicable)

For models like XGBoost, you can apply early stopping to reduce unnecessary computation.

🔄 Use Stratified K-Fold

When dealing with imbalanced datasets, this ensures balanced class representation in every fold.

Common Hyperparameters to Tune (by Algorithm)

Model Key Hyperparameters
Random Forest n_estimators, max_depth, min_samples_split
SVM C, kernel, gamma
Gradient Boosting learning_rate, n_estimators, max_depth
K-Nearest Neighbours n_neighbors, weights

Responsive Visualisation (for web use)

<div style="overflow-x:auto;">
  <table>
    <thead>
      <tr><th>Model</th><th>Best Method</th><th>Time</th><th>Accuracy Boost</th></tr>
    </thead>
    <tbody>
      <tr><td>Random Forest</td><td>RandomisedSearchCV</td><td>Low</td><td>High</td></tr>
      <tr><td>SVM</td><td>GridSearchCV</td><td>Moderate</td><td>Moderate</td></tr>
    </tbody>
  </table>
</div>

Final Thoughts

Hyperparameter tuning with GridSearchCV and RandomisedSearchCV is not merely optional—it’s essential. These tools provide automation, flexibility, and precision in improving your machine learning models.

With minimal code adjustments and clear understanding, even beginners can significantly improve their models’ performance. Whether you're working on a simple classification task or a production-level system, hyperparameter tuning with GridSearchCV and RandomisedSearchCV will give your models the edge they need.

Disclaimer:

While I am not a certified machine learning engineer or data scientist, I have thoroughly researched this topic using trusted academic sources, official documentation, expert insights, and widely accepted industry practices to compile this guide. This post is intended to support your learning journey by offering helpful explanations and practical examples. However, for high-stakes projects or professional deployment scenarios, consulting experienced ML professionals or domain experts is strongly recommended.
Your suggestions and views on machine learning are welcome—please share them below!


{
  "@context": "https://schema.org",
  "@type": "Article",
  "headline": "Hyperparameter Tuning with GridSearchCV and RandomisedSearchCV",
  "description": "Master hyperparameter tuning with GridSearchCV and RandomisedSearchCV to enhance your model's accuracy using Python",
  "author": {
    "@type": "Person",
    "name": "Rajiv Dhiman"
  },
  "publisher": {
    "@type": "Organization",
    "name": "Focus360Blog",
    "logo": {
      "@type": "ImageObject",
      "url": "https://www.focus360blog.online/images/logo.png"
    }
  },
  "datePublished": "2025-06-21",
  "dateModified": "2025-06-21",
  "mainEntityOfPage": {
    "@type": "WebPage",
    "@id": "https://www.focus360blog.online/2025/06/hyperparameter-tuning-with-gridsearchcv.html"
  }
}
🏠

Read more Like this here

Post a Comment

Previous Post Next Post