---
myst:
html_meta:
description: "Install TreeIG and run a complete regression example with fitted tree models, baseline inputs, and completeness checks."
---
# Getting started
## Installation
```bash
pip install "treeig[sklearn]"
```
TreeIG requires Python 3.9 or later, NumPy, and Numba. Install the model library
you use: extras `sklearn`, `xgboost`, `lightgbm`, and `catboost` are available.
The `shap` extra adds plotting integration. `all` installs the model and plotting
extras; it does not install CUDA. CatBoost uses the numerical fallback.
## A complete regression example
```python
import numpy as np
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.model_selection import train_test_split
from treeig import TreeIG
rng = np.random.default_rng(42)
X = rng.normal(size=(400, 4))
y = 2 * X[:, 0] + X[:, 1] ** 2 - X[:, 2]
X_train, X_eval, y_train, y_eval = train_test_split(X, y, random_state=42)
model = GradientBoostingRegressor(n_estimators=40, max_depth=3,
random_state=42).fit(X_train, y_train)
# A representative row is a simple reference for this example.
ig = TreeIG(model, baseline=X_train[0])
result = ig.explain(X_eval)
print(result.values.shape) # (100, 4)
np.testing.assert_allclose(
result.values.sum(axis=1),
model.predict(X_eval) - model.predict(X_train[:1])[0],
atol=1e-8,
)
```
Each row in `values` corresponds to an observation; each column corresponds to
an input feature. Positive values increase the prediction relative to the
baseline, and negative values decrease it. The sum reconstructs the prediction
change up to floating-point error. The first call includes Numba compilation.
For array-only output, use `ig.attribute(X_eval)`. For substantive work, choose a
baseline that expresses the intended comparison; see [baselines](baselines.md).
For classification, first check [model support](models.md) and the
[classification target conventions](explanations.md#classification-targets).