Jump to: navigation, search

Difference between revisions of "Cognitive"

Line 9: Line 9:
 
=== Users ===
 
=== Users ===
  
post /api/v1/users/ - Create a new user in the system
+
* post /api/v1/users/ - Create a new user in the system
get /api/v1/users/ -  Lists all users in the system
+
* get /api/v1/users/ -  Lists all users in the system
put /api/v1/users/{pk}/ - Update an user in the system
+
* put /api/v1/users/{pk}/ - Update an user in the system
get /api/v1/users/{pk}/ - Retrieve an user in the system
+
* get /api/v1/users/{pk}/ - Retrieve an user in the system
delete /api/v1/users/{pk}/ - Delete a user in the system
+
* delete /api/v1/users/{pk}/ - Delete a user in the system
  
  
Line 19: Line 19:
  
 
Each system user has a separate workspace of experiments. The number is limited as per the user quota set by the admin.  
 
Each system user has a separate workspace of experiments. The number is limited as per the user quota set by the admin.  
post  /api/v1/experiments/ - Create an experiment for a particular user
+
* post  /api/v1/experiments/ - Create an experiment for a particular user
get /api/v1/experiments/ - Lists all experiments for a particular user
+
* get /api/v1/experiments/ - Lists all experiments for a particular user
put /api/v1/experiments/{exp_id}/ - pdate an experiment for a particular user
+
* put /api/v1/experiments/{exp_id}/ - pdate an experiment for a particular user
get /api/v1/experiments/{exp_id}/ - Retrieve an experiment for a particular user
+
* get /api/v1/experiments/{exp_id}/ - Retrieve an experiment for a particular user
delete /api/v1/experiments/{exp_id}/ - Delete an experiment for a particular user
+
* delete /api/v1/experiments/{exp_id}/ - Delete an experiment for a particular user
  
 
=== Components ===
 
=== Components ===
Line 30: Line 30:
  
 
post /api/v1/components/{component}/ - Create a component in an experiment. Component can be a data input source, data transformation method like applying mathematical formula on columns, normalizing column values etc,  data modification method like add/remove rows, column projection etc, filtering method like removal of duplicates or missing values, machine learning models like different types of classification, clustering or regression models
 
post /api/v1/components/{component}/ - Create a component in an experiment. Component can be a data input source, data transformation method like applying mathematical formula on columns, normalizing column values etc,  data modification method like add/remove rows, column projection etc, filtering method like removal of duplicates or missing values, machine learning models like different types of classification, clustering or regression models
get /api/v1/components/{component}/ - Retrieve all components of an experiment
+
* get /api/v1/components/{component}/ - Retrieve all components of an experiment
put /api/v1/components/{component}/{component_id}/ - Update a component in an experiment
+
* put /api/v1/components/{component}/{component_id}/ - Update a component in an experiment
get /api/v1/components/{component}/{component_id}/ - Retrieve a component in an experiment
+
* get /api/v1/components/{component}/{component_id}/ - Retrieve a component in an experiment
delete /api/v1/components/{component}/{component_id}/ - Delete a component in an experiment
+
* delete /api/v1/components/{component}/{component_id}/ - Delete a component in an experiment
  
 
=== Workflows ===
 
=== Workflows ===

Revision as of 02:14, 22 May 2015

Machine Learning as a Service

What is Cognitive?

Cognitive is a multi-tenant interactive machine learning service on top of Openstack. It has python bindings for api access. Alternatively, cognitive provides an interactive UI where users can log in to the system using username and password.

API

Users

  • post /api/v1/users/ - Create a new user in the system
  • get /api/v1/users/ - Lists all users in the system
  • put /api/v1/users/{pk}/ - Update an user in the system
  • get /api/v1/users/{pk}/ - Retrieve an user in the system
  • delete /api/v1/users/{pk}/ - Delete a user in the system


Experiments

Each system user has a separate workspace of experiments. The number is limited as per the user quota set by the admin.

  • post /api/v1/experiments/ - Create an experiment for a particular user
  • get /api/v1/experiments/ - Lists all experiments for a particular user
  • put /api/v1/experiments/{exp_id}/ - pdate an experiment for a particular user
  • get /api/v1/experiments/{exp_id}/ - Retrieve an experiment for a particular user
  • delete /api/v1/experiments/{exp_id}/ - Delete an experiment for a particular user

Components

Each experiment has multiple components, which are connected to form a single workflow. Workflows specify the flow of data from the data source to data sink through various data transformations. Each component specifies one data tranformation or data processing method. Each component knows its lineage so that whole workflow can be re-executed on failures.

post /api/v1/components/{component}/ - Create a component in an experiment. Component can be a data input source, data transformation method like applying mathematical formula on columns, normalizing column values etc, data modification method like add/remove rows, column projection etc, filtering method like removal of duplicates or missing values, machine learning models like different types of classification, clustering or regression models

  • get /api/v1/components/{component}/ - Retrieve all components of an experiment
  • put /api/v1/components/{component}/{component_id}/ - Update a component in an experiment
  • get /api/v1/components/{component}/{component_id}/ - Retrieve a component in an experiment
  • delete /api/v1/components/{component}/{component_id}/ - Delete a component in an experiment

Workflows

Every workflow is persisted which enables user to load or update previously created workflows. post /api/v1/workflows/ - Create a workflow graph for an experiment and start execution put /api/v1/workflows/{workflow_id}/ - Update the workflow graph for an experiment delete /api/v1/workflows/{workflow_id}/ - Delete the workflow graph for an experiment