WoodTapper: a Python package for explaining decision tree ensembles
WoodTapper: a Python package for explaining decision tree ensembles - Published in JOSS (2026)
Science Score: 87.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 1 DOI reference(s) in JOSS metadata -
✓Academic publication links
Links to: joss.theoj.org -
○Academic email domains
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Repository
WoodTapper — a Python toolbox for interpretable and explainable tree ensembles.
Basic Info
- Host: GitHub
- Owner: artefactory
- License: mit
- Language: Python
- Default Branch: main
- Homepage: https://artefactory.github.io/woodtapper/
- Size: 4.59 MB
Statistics
- Stars: 36
- Watchers: 1
- Forks: 4
- Open Issues: 2
- Releases: 6
Topics
Metadata Files
README.md
🪵 Key Features
WoodTapper is a Python toolbox that provides:
Rule extraction from tree-based ensembles: Generates a final estimator composed of a sequence of simple rule-based on features and thresholds.
Example-based explanations: Connects predictions to a small set of representative samples, returning the most similar examples along with their target values.
Detailed information about the modules can be found here.
WoodTapper is fully compatible with scikit-learn tree ensemble models.
🛠 Installation
From PyPi:
bash
pip install woodtapper
Warning (scikit-learn already installed): If you install
woodtapperin an environment wherescikit-learnis already present, the prebuilt PyPI wheel may not be compatible with your existingscikit-learnbinary. In that case, reinstallwoodtapperfrom source so it is compiled against thescikit-learnversion in your environment:
bash pip uninstall -y woodtapper pip install -U pip setuptools wheel pip install -U Cython pybind11 pip install --no-binary=woodtapper --no-build-isolation woodtapper
From source:
bash
git clone https://github.com/artefactory/woodtapper.git
cd woodtapper
pip install -e .[dev,docs]
Warning: If you are a Windows user, you need to have a C/C++ compiler before installing woodtapper.
🌿 WoodTapper RulesExtraction module
```python from woodtapper.extractrules import SirusClassifier from woodtapper.extractrules.visualization import show_rules
sirus = SirusClassifier(nestimators=1000, maxdepth=2, quantile=10, p0=0.01, randomstate=0) sirus.fit(Xtrain, ytrain) ypredsirus = sirus.predict(Xtest) showrules(sirus, maxrules=10) ```
🌱 WoodTapper ExampleExplanation module
```python from woodtapper.example_sampling import RandomForestClassifierExplained
rfexplained = RandomForestClassifierExplained(nestimators=100) rfexplained.fit(Xtrain, y_train)
Get the 5 most similar samples (and target) for each test sample
Xyexplain = rfexplained.explanation(X_test) ```
🙏 Acknowledgements
This work was done through a partnership between the Artefact Research Center and the Laboratoire de Probabilités Statistiques et Modélisation (LPSM) of Sorbonne University.
📜 Citation
If you find the code useful, please consider citing us:
bibtex
@misc{woodtapper,
title = {WoodTapper: a Python package for explaining decision tree ensembles},
author = {Sakho, Abdoulaye and Aouad, Jad and Gauthier, Carl-Erik and Malherbe, Emmanuel and Scornet, Erwan},
year = {2025},
howpublished = {\url{https://github.com/artefactory/woodtapper}},
}
For SIRUS methodology, consider citing:
bibtex
@article{benard2021sirus,
title={Sirus: Stable and interpretable rule set for classification},
author={Benard, Clement and Biau, Gerard and Da Veiga, Sebastien and Scornet, Erwan},
year={2021}
}
Owner
- Name: artefactory
- Login: artefactory
- Kind: organization
- Repositories: 12
- Profile: https://github.com/artefactory
JOSS Publication
WoodTapper: a Python package for explaining decision tree ensembles
Authors
Tags
Machine Learning XAIGitHub Events
Total
- Delete event: 12
- Pull request event: 12
- Fork event: 1
- Issues event: 1
- Watch event: 16
- Issue comment event: 8
- Push event: 109
- Pull request review event: 7
- Pull request review comment event: 29
- Create event: 12
Last Year
- Delete event: 12
- Pull request event: 12
- Fork event: 1
- Issues event: 1
- Watch event: 16
- Issue comment event: 8
- Push event: 109
- Pull request review event: 7
- Pull request review comment event: 29
- Create event: 12
Issues and Pull Requests
Last synced: 2 months ago
All Time
- Total issues: 0
- Total pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Total issue authors: 0
- Total pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 0
- Pull requests: 0
- Average time to close issues: N/A
- Average time to close pull requests: N/A
- Issue authors: 0
- Pull request authors: 0
- Average comments per issue: 0
- Average comments per pull request: 0
- Merged pull requests: 0
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- pypi 19 last-month
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 6
- Total maintainers: 1
pypi.org: woodtapper
A Python toolbox for interpretable and explainable tree ensembles.
- Homepage: https://github.com/artefactory/woodtapper
- Documentation: https://woodtapper.readthedocs.io/
- License: MIT
-
Latest release: 0.0.13
published 8 months ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v4 composite
- actions/setup-python v5 composite
- actions/upload-artifact v4 composite
- actions/checkout v4 composite
- actions/setup-python v5 composite
- actions/checkout v3 composite
- actions/setup-python v4 composite
- cython ==3.1.2
- matplotlib ==3.10.0
- mkdocs ==1.6.1
- mkdocs-material ==9.6.22
- mkdocstrings-python ==1.18.2
- numpy ==2.3.1
- pandas ==2.3.0
- pre-commit ==4.3.0
- pytest ==8.4.2
- pytest-cov ==7.0.0
- scikit-learn ==1.6.1
- setuptools ==78.1.1
- ucimlrepo ==0.0.7
