# Support Vector Machine (ML\_CN\_3)

In SVM, the algorithm finds the best possible line (or hyperplane in higher dimensions) that can separate two classes of data. It does this by identifying the data points closest to the dividing line, which are called support vectors, and maximizing the margin between the two classes.

Once the best line is identified, it can be used to predict the class of new data points. SVM is a powerful algorithm because it can work well with both linearly separable and non-linearly separable data by using a technique called kernel trick to transform the data into a higher dimensional space where it can be more easily separated.

## Sample Request

Build a SVM model named, *"ClassicModel"*

```javascript
{
    "project_id": 1,
    "parent_id": 7,
    "block_id": 8,
    "function_code": "ML_CN_3",
    "args": {
        "model_name": "ClassicModel"
    }
}
```

## Building a Support Vector Machine model

## Support Vector Machine&#x20;

<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    | The `id` of the current project                                              |
| block\_id<mark style="color:red;">\*</mark>      | int    | The `id` of the current block                                                |
| function\_code<mark style="color:red;">\*</mark> | string | The function code for current block                                          |
| parent\_id<mark style="color:red;">\*</mark>     | int    | The `id` of the previous block                                               |
| args<mark style="color:red;">\*</mark>           | object | Block arguments                                                              |
| model\_name<mark style="color:red;">\*</mark>    | String | Name of the model to be used for prediction.                                 |
| kernel                                           | String | Specifies the kernel type to be used in the algorithm (defaults to "linear") |
| random\_state                                    | int    | Controls the randomness of the estimator (defaults to 0).                    |

{% tabs %}
{% tab title="200 Statemanagement object" %}

```javascript
{
    "status": "true",
    "message": {
        "id": 8,
        "project": 1,
        "block_id": 8,
        "parent_id": 7,
        "dataset_url": "",
        "x_value_url": "",
        "y_value_url": "",
        "x_train_url": "",
        "y_train_url": "",
        "x_test_url": "",
        "y_test_url": "",
        "output": "{\"ClassicModel\": {\"function_code\": \"ML_R_3\", \"model_url\": ""}}"
    }
}
```

{% 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

supportVectorMachine = await client.support_vector_machine(project_id, parent_id, block_id, {
    model_name: "ClassicModel",
    kernel: "linear",
    random_state: 0
});
```

{% endtab %}
{% endtabs %}

## Sample Request

Make predictions with the pre-built model passing an optional test data.

```javascript
{
    "project_id": 1,
    "parent_id": 8,
    "block_id": 9,
    "function_code": "ML_CN_3_P",
    "args": {
        "model_name": "ClassicModel",
        "test_data": ""
    }
}
```

## Predicting with Support Vector Machine

## Support Vector Machine Predict

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

#### Request Body

| Name                                             | Type   | Description                                                            |
| ------------------------------------------------ | ------ | ---------------------------------------------------------------------- |
| model\_name<mark style="color:red;">\*</mark>    | String | Name of previously trained model to be used for prediction             |
| test\_data                                       | String | Input data for prediction. Defaults to `x_train_url` in StateManagment |
| project\_id<mark style="color:red;">\*</mark>    | int    | ID of the current project                                              |
| block\_id<mark style="color:red;">\*</mark>      | int    | ID of the current block                                                |
| parent\_id<mark style="color:red;">\*</mark>     | int    | ID of the previous block                                               |
| function\_code<mark style="color:red;">\*</mark> | String | Function code for the current block                                    |

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

```javascript
{
    "status": "true",
    "message": {
        "id": 9,
        "project": 1,
        "block_id": 9,
        "parent_id": 8,
        "dataset_url": "",
        "x_value_url": "",
        "y_value_url": "",
        "x_train_url": "",
        "y_train_url": "",
        "x_test_url": "",
        "y_test_url": "",
        "output": "{\"y_pred_url\": ""}"
    }
}
```

{% 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

supportVectorMachinePredict = await client.support_vector_machine_predict(project_id, parent_id, block_id, {
   model_name: "ClassicModel",
    test_data: ""
});
```

{% endtab %}
{% endtabs %}

## Sample Request

Evaluate model metrics

```javascript
{
    "project_id": 1,
    "parent_id": 8,
    "block_id": 9,
    "function_code": "ML_CN_3_M",
    "args": {
        "model_name": "ClassicModel"
    }
}
```

## Support Vector Machine  Metrics

<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 evaluation |

{% 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

supportVectorMachineMetrics= await client.support_vector_machine_metrics(project_id, parent_id, block_id, {
    model_name: "SimpleModel",

});
```

{% endtab %}
{% endtabs %}
