Self Organizing Maps (DL_SOM)

This function creates self organizing maps used for data clustering

Self-organizing maps (SOM), also known as Kohonen maps, are a type of artificial neural network that can be used for unsupervised learning and data visualization. They are typically used for clustering and dimensionality reduction of complex data sets.

SOMs consist of a two-dimensional grid of nodes or neurons, each of which represents a different feature or attribute of the data. During training, the SOM learns to associate similar data points with adjacent neurons on the grid. This results in a topology-preserving mapping of the input space onto the two-dimensional grid.

SOMs are often used in data visualization applications because they can represent high-dimensional data in a two-dimensional map, making it easier to understand and interpret. They have been used in a variety of fields, including image and speech recognition, text mining, and pattern recognition.

Sample Request

Build an SOM for data clustering

{
    "project_id": 1,
    "parent_id": 7,
    "block_id": 8,
    "function_code": "DL_SOM_I",
    "args": {
    "hyp_params":{
            "x": 10,
            "y": 10,
            "input_len": 14,
            "sigma": 1.0,
            "learning_rate": 0.1,
        }
    }
}

Building a Self Organizing Map

SOM Construction

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

Request Body

NameTypeDescription

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

x*

int

x dimension

y*

int

y dimension

input_len*

int

Number of the elements of the vectors in input

learning_rate

float

initial learning rate

sigma

float

Spread of the neighborhood function, needs to be adequate to the dimensions of the map

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

Sample Request

Compile and train the pre-built SOM model, using passed in Hyper Parameters

{
    "project_id": 1,
    "parent_id": 8,
    "block_id": 9,
    "function_code": "DL_SOM_T",
    "args": {
        "model_name": "titanic_model",
        "hyp_params":{
            "num_iterations": 100
        }
    }
}

Training a Sequential Organizing Map

SOM Training

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

Request Body

NameTypeDescription

project_id*

int

The id of the current project

hyp_params*

object

hyper parameters for model compilation and training

parent_id*

int

The id of the previous block

block_id*

int

The id of the current block

function_code*

The function code for current block

args*

object

Block arguments

model_name*

String

The name the model would be saved with

num_iterations*

int

number of training iterations

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

Sample Request

Make predictions with the trained SOM model.

{
    "project_id": 1,
    "parent_id": 8,
    "block_id": 9,
    "function_code": "DL_SOM_P",
    "args": {
        "test_data": "",
        "row": 12,
    }
}

Predicting Cluster with an Self Organizing Map

SOM Predict

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

Request Body

NameTypeDescription

test_data*

String

Input data for prediction

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

args*

object

Block arguments

row

int

row in the dataset to be used

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

// Some code

Last updated