Skip to main content

Visualize decision tree in Python

Project description

supertree - Interactive Decision Tree Visualization

supertree is a Python package designed to visualize decision trees in an interactive and user-friendly way within Jupyter Notebooks, Jupyter Lab, Google Colab, and any other notebooks that support HTML rendering. With this tool, you can not only display decision trees, but also interact with them directly within your notebook environment. Key features include:

  • ability to zoom and pan through large trees,
  • collapse and expand selected nodes,
  • explore the structure of the tree in an intuitive and visually appealing manner.

Examples

Decision Tree classifier on iris data

Open In Colab
from sklearn.tree import DecisionTreeClassifier
from sklearn.datasets import load_iris
from supertree import SuperTree # <- import supertree :)

# Load the iris dataset
iris = load_iris()
X, y = iris.data, iris.target

# Train model
model = DecisionTreeClassifier()
model.fit(X, y)

# Initialize supertree
super_tree = SuperTree(model, X, y, iris.feature_names, iris.target_names, color_palette=1)

# show tree in your notebook
super_tree.show_tree()

Random Forest Regressor Example

Open In Colab
from sklearn.ensemble import RandomForestRegressor
from sklearn.datasets import load_diabetes
from supertree import SuperTree  # <- import supertree :)

# Load the diabetes dataset
diabetes = load_diabetes()
X = diabetes.data
y = diabetes.target

# Train model
model = RandomForestRegressor(n_estimators=100, max_depth=3, random_state=42)
model.fit(X, y)

# Initialize supertree
super_tree = SuperTree(model,X, y)
# show tree with index 2 in your notebook
super_tree.show_tree(2)

There are more code snippets in the examples directory.

Instalation

You can install SuperTree package using pip:

pip install supertree

Conda support coming soon.

JavaScript Source

The interactive frontend is authored in:

  • supertree/js/src/
  • supertree/js/dependencies/d3vs.js

The packaged runtime still ships:

  • supertree/js/script.js as the generated readable bundle
  • supertree/js/supertree.min.js as the generated packaged runtime

To rebuild both after editing the source files, run:

./scripts/build_js.sh

Maintainer notes and a frontend smoke checklist are in docs/frontend_development.md.

Supported Libraries

  • scikit-learn (sklearn)
  • LightGBM
  • XGBoost
  • ONNX:

Supported Algorithms

The package is compatible with a wide range of classifiers and regressors from these libraries, specifically:

Scikit-learn

  • DecisionTreeClassifier
  • ExtraTreeClassifier
  • ExtraTreesClassifier
  • RandomForestClassifier
  • GradientBoostingClassifier
  • HistGradientBoostingClassifier
  • DecisionTreeRegressor
  • ExtraTreeRegressor
  • ExtraTreesRegressor
  • RandomForestRegressor
  • GradientBoostingRegressor
  • HistGradientBoostingRegressor

LightGBM

  • LGBMClassifier
  • LGBMRegressor
  • Booster

XGBoost

  • XGBClassifier
  • XGBRFClassifier
  • XGBRegressor
  • XGBRFRegressor
  • Booster

If we do not support the model you want to use, please let us know.

Features

Gif1
See all the details
Gif2
Zoom
Gif3
Fullscreen in Jupyter
Gif4
Depth change
Gif5
Color change
Gif6
Navigate in forest
Gif7
Show specific sample path
Gif8
Save tree to svg
Gif11
Links sample visualization
Gif12
Showing the path to the leaf

Check this features in example directory :)

Articles

Support

If you encounter any issues, find a bug, or have a feature request, we would love to hear from you! Please don't hesitate to reach out to us at supertree/issues. We are committed to improving this package and appreciate any feedback or suggestions you may have.

License

supertree is open source under the Apache License 2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

supertree-1.0.0-py3-none-any.whl (295.4 kB view details)

Uploaded Python 3

File details

Details for the file supertree-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: supertree-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 295.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.11.5

File hashes

Hashes for supertree-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 bcd2d3c4bb69f95f0c48e35841ed2623a01161029dff2020355cd67cd408fe34
MD5 7ca73b21af68ee301a7485f0f160f733
BLAKE2b-256 ceb499f3b9723a9d32c9791f5ae9660c4f6633e925cd11691a6d937f1719dbc8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page