---
myst:
html_meta:
description: "Install CBaseline and construct calibrated and equal-weight backgrounds from observed rows and model predictions."
---
# Getting started
## Installation
Install from conda-forge with conda:
```bash
conda install -c conda-forge cbaseline
```
Or install from PyPI with pip:
```bash
pip install cbaseline
```
Python 3.10 or newer is required. NumPy and SciPy are the only runtime
dependencies; CBaseline itself does not require an attribution library.
Install `treeig`, `scikit-learn`, and `shap` to run the integration examples.
## Construct and inspect a background
This standalone example uses a known prediction function so no model training
is needed. With a fitted model, replace `predict` with the output function you
intend to explain.
```python
import numpy as np
from cbaseline import background
rng = np.random.default_rng(42)
X = rng.normal(size=(1000, 3))
def predict(X):
return X[:, 0] ** 2 + X[:, 1] - 0.5 * X[:, 2]
predictions = predict(X)
f0 = float(predictions.mean())
wb = background(predictions, f0, X, weighting="calibrated")
bg = background(predictions, f0, X, weighting="equal", size=100)
for reference in (wb, bg):
achieved = np.average(reference.predictions, axis=0, weights=reference.weights)
print(reference.weighting, len(reference), achieved, achieved - f0)
np.testing.assert_allclose(reference.rows, X[reference.index])
```
`rows`, `weights`, `index`, and `predictions` are aligned. `features` must be a
finite numeric two-dimensional array with one reference case per row;
`predictions` has shape `(n,)` or `(n, k)`. Feature columns and preprocessing
must match the fitted model. CBaseline receives outputs, not the model itself,
so the caller is responsible for this alignment.
For image inputs, flatten observed images for background construction and use
`index` to recover their original tensor shape for the attribution engine.
This does not change the prediction-space distances.
Use `wb.rows` **with** `wb.weights` in a weighted attribution engine. Use
`bg.rows` in an unweighted interface. Do not replace a distribution by its
mean feature vector: this generally changes the reference prediction.
## Next steps
Choose [the reference prediction](reference-predictions.md), compare
[construction options](backgrounds.md), and check [diagnostics](diagnostics.md).
Then follow the complete [TreeIG and SHAP examples](integrations.md).