Skip to main content

How training works

Heimdall ML trains a gradient-boosted tree (XGBoost) for classification or regression. Search is narrower on small or imbalanced tables. Search effort in the wizard (auto / faster / deeper) controls how long 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 encoding categories, so reported metrics are not scored on data the transforms already saw. Rows that share a file or customer id stay on one side of the split when that column is present.
  3. Numeric missing values stay missing (XGBoost learns a default direction). Categorical missing values get a dedicated missing level, distinct from new labels at predict time. 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 searches a small gbtree hyperparameter space 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 tables, and keeps search narrow on small or imbalanced ones. 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​