Skip to main content

How training works

Heimdall ML trains a gradient-boosted tree (XGBoost) for classification or regression. Search effort in the wizard (auto / faster / deeper) controls how long Bayesian hyperparameter search runs — not a menu of unrelated algorithms.

From gold to API

  1. You pick a gold dataset (or a sample) and a target column.
  2. Heimdall holds out a test split before filling missing values or encoding categories, so reported metrics are not scored on data the transforms already saw.
  3. Numeric gaps use the train-set median; categoricals use the train-set mode. High-missing columns (about 40%+ null on train) are dropped.
  4. Categories stay as categories inside XGBoost (native categorical splits). New values at predict time map to an unseen bucket instead of breaking column layout.
  5. Optuna (Bayesian TPE) searches tree hyperparameters on the training data. The held-out test set is scored once.
  6. The fitted preprocessing + model pipeline is stored and used as-is by the predict API. Training and serving share the same transforms.

What you see after training

OutputMeaning
Accuracy, precision, recall, F1Classification on the holdout set
ROC-AUC / PR-AUCRanking quality (binary classification)
R², MAE, MSE, RMSERegression on the holdout set
Feature importancePermutation importance on original columns (holdout)

Search mode auto spends more trials on wider or more imbalanced tables. Ultrafast is for a quick pass (and skips search entirely on very small samples).

Models trained before this pipeline

Older models still serve through the same predict URL. New models store a versioned pipeline so encoding cannot drift between train and serve.

Next steps