Skip to main content
This page gets you from nothing to a working model. Budget 15 minutes of your attention; a Feature Refinery run needs longer than that on the clock, but it runs unattended and you can leave it. If you want to skip refinement for now, go straight to Train a model and upload your own split.

Before you start

You need an account. Credentials work for both the console and the API. If you do not have one, request access. You also need your tenant’s addresses. Each customer has their own, issued when the tenant is created: the console at https://<tenant>.mathfi.ai and the API at https://<tenant>-api.mathfi.ai. Substitute yours wherever these pages write <tenant> or $BASE. You need two CSVs: Same columns, same order, in both. First column a unique ID, last column the target. Full rules in Input data.
No data of your own yet? Use the German Credit sample files below. They are the public UCI credit-risk dataset: 800 training rows, 200 test rows, 21 features, target class with values good and bad.

1. Log in

Open your tenant’s console at https://<tenant>.mathfi.ai and sign in. Login
Exchange your credentials for a bearer token. Note the field is username, and it holds your email.
Send it as Authorization: Bearer <access_token> on every other call. See Authentication.

2. Refine your columns

Go to Feature Refinery and click Refine Features. New refinement Give the run a name, leave buckets at the recommended 10, and drop in your two files. Click Refine Features to start. Expand the row to watch it: you will see the baseline it established on your original data first, and the current performance as the run progresses. Refinement result When it says Completed, two things matter:
  1. The final top performance table. Compare it to the baseline. That gap is what refinement bought you.
  2. The target the run reached. You will need it in the next step. The console carries it across for you.
This is the slow part. Time scales with how wide your data is, not how long. A 21-column file at 4 buckets took 52 minutes in the run these screenshots come from. Leave it and come back.

3. Train a model

Go to Model Crucible → Datasets and click Create Dataset. New dataset Choose one:
  • Use Outputs of Refinery — pick the run you just finished. Nothing to upload.
  • Upload files — drop in your own train and test CSVs, and pick a bucket count.
Wait for the dataset to reach Completed, then go to Training and click New Training Job. New training job Select your dataset. If it came from a refinement, the Target field is pre-filled with the value that refinement reached.
Leave the pre-filled target alone unless you have a reason. Raising it does not produce a better model; it produces a run where every attempt hits its time cap, and sometimes a model that predicts one class for every row.
Click Start Training. A run takes minutes on small data.

4. Pick the champion

Open the finished run. Training run detail You get up to three candidate models, ranked by false decisions (how many rows they got wrong on the held-back test set). The best one is champion by default. Look at the other two before you accept it. If catching more of the rare cases matters more to you than avoiding false alarms, take the candidate with higher recall instead. Select it and click Set champion.

5. Run a prediction

Go to Predictions, click New Prediction, choose your champion model, and upload a CSV of unlabelled rows: the same columns as your training file, minus the target. New prediction When it completes, download the result. It is your rows with the prediction appended.
The part name is _file, underscore included. Poll GET /api/v1/predictions/{predictionKey} until status is COMPLETED, then follow predictionResultDownloadUrl.applyColumnStatusFilter=true drops the columns the refinement removed, so you can send your original file unchanged. It only works on a model whose dataset came from a refinement.

Where to go next

German Credit walkthrough

The same path with real numbers at every step.

Input data

Get your CSVs right and most problems never happen.

Tuning

Buckets, scaling, target: what to change and when.

API and agents

Everything above, driven over REST.