NGBoost Regression
Natural Gradient Boosting — distributional regression (mean + std) with optional conformal intervals
Overview
- Model ID:
ngboost-regression - Framework:
ngboost - Best for: Tabular regression where you need calibrated uncertainty, not just a point
- GPU required: No (CPU-only)
- Specialist: tabular
NGBoost is "XGBoost with uncertainty": it predicts a full predictive distribution (mean and standard deviation), enabling conviction-based sizing and abstention on flat/low-edge bars. It plugs into the same tabular pipeline as XGBoost/LightGBM and can optionally emit distribution-free split-conformal prediction intervals.
When to Use
✅ Perfect for:
- Tabular regression where predictive uncertainty matters (sizing by edge, risk gating)
- Probabilistic targets (expected move ± uncertainty)
- A drop-in uncertainty-aware upgrade over XGBoost/LightGBM
❌ Not ideal for:
- Pure point-accuracy contests where uncertainty is irrelevant (XGBoost may be faster)
- Time-series forecasting (use the forecasting models)
Quick Start
job = client.training.create(
model="ngboost-regression",
dataset_id=dataset.id,
hyperparameters={
"target_columns": ["target"],
"n_estimators": 500,
"conformal_alpha": 0.1, # 90% prediction intervals (0 disables)
},
)
job.wait()
Dataset Format
Standard tabular CSV — feature columns plus one target column (categoricals are one-hot encoded):
f1,f2,f3,cat,target
1.02,-0.4,3,A,2.13
-0.5,1.2,1,B,-0.88
...
Hyperparameters
| Parameter | Default | Description |
|---|---|---|
n_estimators | 500 | Boosting stages |
learning_rate | 0.01 | Learning rate |
minibatch_frac | 1.0 | Row subsample fraction per stage |
dist | "Normal" | Predictive distribution (Normal / LogNormal) |
conformal_alpha | 0.0 | Miscoverage for conformal intervals (e.g. 0.1 → 90%). 0 disables |
target_columns | [] | Target column (single; empty = auto-detect last numeric) |
Inference
result = client.endpoints.infer(endpoint_id=ep, input_data={"instances": [
{"f1": 1.0, "f2": 0.5, "f3": 2, "cat": "A"},
]})
In addition to predictions, the response carries native uncertainty (additive fields,
present only when available):
{
"predictions": [2.04],
"std": [0.71],
"interval_lower": [1.18],
"interval_upper": [2.90],
"interval_meta": {"method": "conformal", "alpha": 0.1, "coverage": 0.9}
}
std comes from NGBoost's predictive distribution. Intervals are conformal (valid,
distribution-free) when the model was trained with conformal_alpha > 0, otherwise a
Gaussian interval derived from std.
The conformal interval read-path applies to any regressor that ships a
conformal.json, so the same uncertainty plumbing extends beyond NGBoost.
Related Models
- XGBoost Regression — point regression
- GARCH Volatility — volatility forecasting