Iktera is a online service offering high level access to machine learning (ML) and artificial inteligence (AI) algorithms. Our mission is to bring AI to the masses. We want to make it possible for small companies and individuals to run machine learning models through an intuitive and easy web interface.

We have done our best and went to great lengths to abstract away the complicated bits from implementing and running ML pipelines. You just need to upload your data in CSV format following a couple of basic conventions, pick the kind of problem you want to solve, and everything else is done automatically on our servers. You will get a trained model powered by a neural network, that you can can use to make predictions. You don't need to spend resources on feature engineering, data cleaning, standardization, hyperparamter optimization. Just upload the data and get your model in seconds.

Iktera currently implements solutions for two kind of problems (more comming soon): classification and regression.

Data format

Currently, all uploaded datasets must be in in CSV format. For classification and regression problems,

  • The last column is considered the target variable.
  • The CSV files should not contain multi line values and they must use comma as the separator.

Before you upload your data, please check the terms of service to make sur eyou comply with data upload policy.

Training your first model

In the following guide we are going to use plain old shellscript for simplicity. For examples in other programming languages, check the examples section.

We are ging to use the iris data set as an example. This dataset contains measurements from petal and sepal sizes for multiple specimen of flowers, labeled with the species they belong to. You can use your own data set if you prefer, as long as it in CSV format and the target variable is in the last column.

Our csv file looks like this

sepal_length,sepal_width,petal_length,petal_width,species
4.6,3.2,1.4,0.2,Iris-setosa
5.3,3.7,1.5,0.2,Iris-setosa
5,3.3,1.4,0.2,Iris-setosa
6.1,3,4.6,1.4,Iris-versicolor
5.6,2.7,4.2,1.3,Iris-versicolor
5.7,3,4.2,1.2,Iris-versicolor
6.4,2.8,5.6,2.1,Iris-virginica
...

The last column, the species in our case, it is our target variable. Once the nerural network is trained, we will be able to predict the species of an individual, just by feeding the values of all other variables to the neural network.
Training is automatic we take care of all data pre-processing, optimizations and hyperparameter adjustments. All you need to do is uppload your data.

From the dashboard, click on Projects > Create New Project.

Add a name to your project. This is just for your reference.

Select classification as project type.

Pick your csv file and click Create. 🎉 Congrats! You have created your fist machine learning model! 🎉

Using your model

Now it's time to use your model. In our example, we can feed the petal dimentions of a new flower of an unknown species to our model and it will predict with species the flower is.

You can run predictions with your model using our HTTP API. Request must be authenticated with your API Key.

Authentication

Requests to the prediction API are authenticated with JWT. To obtain a JWT token, you must use an API key. You will find your api key unde the Api Keys menu on the dashboard. You can create one if you don't have any.

Obtaining the token

curl --request POST \
  --url http://iktera.com/api/token \
  --header 'Content-Type: application/json' \
  --data '{ "key": "YOUR_API_KEY"}'

This will reply with a token that you can use for sebsequent requests:

{
  "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczovL2lrdGVyYS5jb20vYXBpL3Rva2VuIiwiaWF0IjoxNjM1MDI2OTc3LCJleHAiOjE2MzUwMzA1NzcsIm5iZiI6MTYzNTAyNjk3NywianRpIjoiNk1UWXpOVEF5TmprIiwic3ViIjoxLCJwcnYiOiJjZmM4Mjk5ZDZiOWFiMTVhNTlmZTNmMGE5YTczYTcyZiJ9.wiCs2glehDTyXm66CSCjMpaO1YasxAm_nObHW-c648Q"
}

Running a prediction

Once you have obtain a token, you can use to run predictions by sendint a POST request to https://iktera.com/api/predict.

The body should contain a JSON object with an input attribute containing all input variable as an array.

curl -X 'POST' \
	'https://iktera.com/api/predict?project_id=36c6524f7fa18d16d032e6211c8f82c2' \
	--header 'Authorization: Bearer PUT_YOUR_ACCESS_TOKEN_HERE' \
	--header 'Content-Type: application/json' \
	--data-raw '{
		"input": [5.1, 3.2, 1.2 ,0.2]
	}'

this will reply with something like:

{
  "classes":["Iris-setosa","Iris-versicolor","Iris-virginica"],
  "predictions":[[0.99615, 0.00382, 8.94041e-6]]
}

The model predicted that the flower 99.6% likely and Iris-setosa.