Isolation Forest (ML_ISF)

This function isolates outliers by creating binary trees to efficiently separate normal data points from anomalies based on their low-dimensional representations.

Isolation Forest is an unsupervised machine learning algorithm designed for anomaly detection. It efficiently identifies outliers in a dataset by creating random binary trees that isolate anomalies with fewer tree traversals compared to normal data points. The algorithm measures the average path length needed to isolate an observation, and anomalies are expected to have shorter path lengths due to their rarity and distinctiveness.

Isolation Forest is particularly effective for large datasets with high-dimensional features, providing a scalable and accurate solution for detecting anomalies without the need for labeled data.

Sample Request

Build an Isolation Forest model named, "IsolateForest"

{
    "project_id": 1,
    "parent_id": 7,
    "block_id": 8,
    "function_code": "ML_ISF",
    "args": {
        "model_name": "IsolateForest",
        "random_state": 0
    }
}

Building a Isolation Forest Anomaly Detection model

Isolation Forest

POST https://autogon.ai/api/v1/engine/start

Request Body

Name
Type
Description

project_id*

int

The id of the current project

block_id*

int

The id of the current block

function_code*

string

The function code for current block

parent_id*

int

The id of the previous block

args

object

Block arguments

model_name

String

Name of the model to be used for prediction.

random_state

int

Controls the randomness of the estimator (defaults to 0).

{
    "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": "{\"SimpleModel\": {\"function_code\": \"ML_R_3\", \"model_url\": ""}}"
    }
}
// Some code

Sample Request

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

{
    "project_id": 1,
    "parent_id": 8,
    "block_id": 9,
    "function_code": "ML_ISF_P",
    "args": {
        "model_name": "IsoslateForest",
        "test_data": null
    }
}

Detecting Anomalies with Isolation Forest

Isolation Forest Predict

POST https://autogon.ai/api/v1/engine/start

Request Body

Name
Type
Description

model_name*

String

Name of previously trained model to be used for detection

test_data

String

Input data for prediction. Defaults to x_train_url in StateManagment

project_id*

int

ID of the current project

block_id*

int

ID of the current block

parent_id*

int

ID of the previous block

function_code*

String

Function code for the current block

{
    "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\": ""}"
    }
}
// Some code

Sample Request

Evaluate anomaly detection model performance

{
    "project_id": 1,
    "parent_id": 8,
    "block_id": 9,
    "function_code": "ML_ISF_M",
    "args": {
        "model_name": "IsoslateForest",
    }
}

Evaluating Anomaly Detection with Isolation Forest

Isolation Forest Metrics

POST https://autogon.ai/api/v1/engine/start

Request Body

Name
Type
Description

model_name*

String

Name of previously trained model to be used for detection

project_id*

int

ID of the current project

block_id*

int

ID of the current block

parent_id*

int

ID of the previous block

function_code*

String

Function code for the current block

{
    "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\": ""}"
    }
}

# Some codethon

Last updated