Shallow decision trees for explainable clustering
Project description
ShallowTree
Implementation of the ExShallow algoritm from Shallow decision trees for explainable k-means clustering, the goal of which is to find a decision tree inducing a partition of the data that is both good (in terms of the k-means cost) and explainable (in terms of being defined by a shallow tree).
Installation
pip install ShallowTree
Example
from ShallowTree.ShallowTree import ShallowTree
from sklearn.datasets import load_iris
from sklearn.cluster import KMeans
# test on the iris dataset
iris = load_iris()
data = iris.data
k = len(iris.target_names)
# create a tree that will partition the data into k clusters
tree = ShallowTree(k)
# define a KMeans instance and feed it to the tree
km = KMeans(k, random_state=1)
km.fit(data)
tree.fit(data, km)
# alternatively, fit the tree immediately;
# kmeans will run internally
tree.fit(data)
# return the score of the tree and compare
# it to the score of the k-means partition
tree_score = tree.score(data)
km_score = -km.score(data)
print(tree_score / km_score)
# Construct the tree, and return cluster labels
prediction = tree.fit_predict(X)
# Tree plot saved to filename
tree.plot('filename')
Citation
@article{laber2021shallow,
title={Shallow decision trees for explainable $k$-means clustering},
author={Laber, Eduardo and Murtinho, Lucas and Oliveira, Felipe},
journal={arXiv preprint arXiv:2112.14718},
year={2021}
}
Contact
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ShallowTree-0.0.11.tar.gz
(11.3 kB
view details)
File details
Details for the file ShallowTree-0.0.11.tar.gz.
File metadata
- Download URL: ShallowTree-0.0.11.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.8.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3dec78278401ba2e5c7cf3c174b76cd0c4ee59e20547898625bfc13c0aa44113
|
|
| MD5 |
aa9215d9f2a93a2a902cc5a054a45866
|
|
| BLAKE2b-256 |
9831c041e30ecce2d01877c871d76dd19ff21d196bc0be6fe31f6cde339a2c56
|