← Back to all sparks
E

e2tree

ANALYTICS
Velocity0.0

R package e2tree by massimoaria — release notes from GitHub.

The explainable-ensemble-tree package now measures whether its own explanations are faithful.

explainable-aiensemble-methodsdecision-treesr-packagemodel-interpretabilitycatboost
Current state
e2tree builds a single interpretable tree that approximates a fitted ensemble, working from the proximity structure the ensemble induces between observations. The 1.0.0 release added the piece that had been missing: a Goodness of Interpretability index quantifying how well the approximating tree reconstructs the ensemble's own proximity matrix, with a permutation test for significance. Interactive visualisation and a C++ backend with OpenMP parallelism arrived alongside, and support now spans ranger and CatBoost as well as the original targets.
Where it's heading
Development has moved from producing an explanation to defending it. The GoI index and its permutation test change the package's claim from here is a tree that resembles your ensemble to here is how closely it resembles it and whether that could have happened by chance — the question a reviewer asks of any surrogate model. Around that, the work is engineering: the proximity matrix construction moved from R-level parallel loops into C++ with thread-level parallelism, and recent releases have been absorbing the awkwardness of supporting multiple ensemble backends, where a multi-class CatBoost objective returns a score matrix where a vector was expected. Interactive visNetwork output and standalone HTML export point at explanations meant to be shared rather than only inspected.
Prediction
Given how much recent effort has gone into per-backend adapters, expect further work on ensemble compatibility; the entries do not indicate whether the interpretability index is heading toward comparing surrogate trees against each other.

Recent moves

  1. 3mo ago

    CatBoost multi-class and loss-function handling repaired

    Two hard failures in the CatBoost adapter get fixed: multi-class objectives return a per-class score matrix that broke leaf-proxy assignment outright, and some CatBoost releases return the loss function as a list rather than a string, which crashed detection. Neither is glamorous, but supporting several ensemble backends means inheriting each one's return-type quirks, and both bugs made the adapter unusable rather than merely wrong.

    View source ↗
  2. 4mo ago

    A significance-tested measure of explanation fidelity

    ⚡ SPARK

    The release that gives the method a way to be checked: goi() measures how well the estimated tree reconstructs the original ensemble's proximity matrix, goi_perm() tests that measure against a permutation distribution, and goi_analysis() returns both. Interactive visualisation and a C++ parallel backend ship in the same release, but the index is what changes what this package can claim.

    View source ↗
  3. 1y ago

    ranger models supported

    Support for ranger widened the set of ensembles the method could be applied to, the start of the multi-backend surface whose per-library quirks later releases have been absorbing. Plot improvements accompany it.

    View source ↗