# How to optimise hyper-parameters of a DecisionTree Model using GridSearchCV in Python

When building a machine learning model, it’s important to optimize the parameters of the model for the best performance. One way to do this is by tuning the hyper-parameters of a DecisionTree model using GridSearchCV.

A Decision Tree model is a simple and powerful algorithm that is used to make predictions by building a tree-like structure of decisions. The hyper-parameters of a DecisionTree model include the criterion (used to measure the quality of the split), max_depth (maximum depth of the tree), min_samples_split (minimum number of samples required to split an internal node), min_samples_leaf (minimum number of samples required to be at a leaf node), max_features (number of features to consider when looking for the best split), and splitter (strategy used to choose the split at each node).

GridSearchCV is a method that allows you to search for the best combination of hyper-parameters, by training and evaluating a model using different combinations of hyper-parameters. It will pick the best combination of hyper-parameters based on the performance of the model.

In Python, the library scikit-learn provides an easy way to perform GridSearchCV using the function `GridSearchCV()`

.

The first step is to import the library and load the dataset into a pandas dataframe. Then, split the data into training and testing sets, and create an instance of the DecisionTree model you want to evaluate.

After that, you can use the `GridSearchCV()`

function, which takes the DecisionTree model, the dataset, a dictionary of hyper-parameters (criterion, max_depth, min_samples_split, min_samples_leaf, max_features, and splitter) and their possible values, and the scoring metric as inputs. The function returns the best combination of hyper-parameters based on the performance of the model.

In this Learn through Codes example, you will learn: How to optimise hyper-parameters of a DecisionTree Model using GridSearchCV in Python.