# Grid Search (ML\_GRID)

Grid search is a hyperparameter tuning technique used to find the optimal combination of hyperparameter values for a machine learning model. It works by systematically searching through a predefined grid of hyperparameter values, evaluating the model's performance using cross-validation at each point in the grid. Grid search helps to identify the hyperparameter configuration that yields the best performance, enhancing the model's accuracy and generalization ability.

## Sample Request

This request is performing a grid search for hyperparameter tuning on the "RandomForest" model. It searches for the best combination of hyperparameters `"n_estimators"`, `"random_state"`, and `"criterion"` by evaluating the model's performance with different values provided in the "param\_grid."

```javascript
{
    "project_id": 13,
    "parent_id": 3,
    "block_id": 4,
    "function_code": "ML_GRID",
    "args": {
        "model_name": "RandomForest",
        "param_grid": [
            {
                "n_estimators": [
                    5,
                    10,
                    60,
                    100
                ]
            },
            {
                "random_state": [
                    0,
                    42,
                    60
                ],
                "criterion": [
                    "gini",
                    "entropy"
                ]
            }
        ]
    }
}
```

## Grid Search

<mark style="color:green;">`POST`</mark> `https://autogon.ai/api/v1/engine/start`

#### Request Body

| Name                                             | Type   | Description                                                                                                                    |
| ------------------------------------------------ | ------ | ------------------------------------------------------------------------------------------------------------------------------ |
| project\_id<mark style="color:red;">\*</mark>    | int    | ID of the current project                                                                                                      |
| parent\_id<mark style="color:red;">\*</mark>     | int    | ID of the previous block                                                                                                       |
| block\_id<mark style="color:red;">\*</mark>      | int    | ID of the current block                                                                                                        |
| function\_code<mark style="color:red;">\*</mark> | String | Function code for the current block                                                                                            |
| model\_name<mark style="color:red;">\*</mark>    | String | Name of the pre-trained model to be used for analysis                                                                          |
| param\_grid                                      | object | set of hyperparameter values that the grid search will exhaustively explore to find the optimal combination of hyperparameters |

{% tabs %}
{% tab title="200: OK StateManagement object" %}

```javascript
{
    "status": "true",
    "message": {
        "id": 1,
        "project": 12,
        "block_id": 10,
        "parent_id": 11,
        "dataset_url": "",
        "x_value_url": "",
        "y_value_url": "",
        "x_train_url": "",
        "y_train_url": "",
        "x_test_url": "",
        "y_test_url": "",
        "output": "{'confusion_matrix': '', 'accuracy': 0.9}"
    }
}
```

{% endtab %}
{% endtabs %}

{% tabs %}
{% tab title="Python" %}

```
// Some code
```

{% endtab %}

{% tab title="Node" %}

```javascript
const project_id = 1
const parent_id = 7
const block_id = 8
    
LogisticRegressionMetrics= await client.logistic_regression_metrics(project_id, parent_id, block_id, {
    model_name: "SimpleModel",

});
```

{% endtab %}
{% endtabs %}
