Skip to main content

ExKMC

This repository is the official implementation of ExKMC: Expanding Explainable k-Means Clustering.

We study algorithms for k-means clustering, focusing on a trade-off between explainability and accuracy. We partition a dataset into k clusters via a small decision tree. This enables us to explain each cluster assignment by a short sequence of single-feature thresholds. While larger trees produce more accurate clusterings, they also require more complex explanations. To allow flexibility, we develop a new explainable k-means clustering algorithm, ExKMC, that takes an additional parameter k' ≥ k and outputs a decision tree with k' leaves. We use a new surrogate cost to efficiently expand the tree and to label the leaves with one of k clusters. We prove that as k' increases, the surrogate cost is non-increasing, and hence, we trade explainability for accuracy.

Installation

The package is on PyPI. Simply run:

pip install ExKMC

Usage

from ExKMC.Tree import Tree
from sklearn.datasets import make_blobs

# Create dataset
n = 100
d = 10
k = 3
X, _ = make_blobs(n, d, k, cluster_std=3.0)

# Initialize tree with up to 6 leaves, predicting 3 clusters
tree = Tree(k=k, max_leaves=2*k) 

# Construct the tree, and return cluster labels
prediction = tree.fit_predict(X)

# Tree plot saved to filename
tree.plot('filename')

Notebooks

Usage examples:

Citation

If you use ExKMC in your research we would appreciate a citation to the appropriate paper(s):

  • For IMM base tree you can read our ICML 2020 paper.
    @article{dasgupta2020explainable,
      title={Explainable $k$-Means and $k$-Medians Clustering},
      author={Dasgupta, Sanjoy and Frost, Nave and Moshkovitz, Michal and Rashtchian, Cyrus},
      journal={arXiv preprint arXiv:2002.12538},
      year={2020}
    }
    
  • For ExKMC expansion you can read our paper.
    @article{frost2020exkmc,
      title={ExKMC: Expanding Explainable $k$-Means Clustering},
      author={Frost, Nave and Moshkovitz, Michal and Rashtchian, Cyrus},
      journal={arXiv preprint arXiv:2006.02399},
      year={2020}
    }
    

Contact

Release files for ExKMC 0.0.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ExKMC 0.0.3
File Size Uploaded
ExKMC-0.0.3.tar.gz 139.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ExKMC 0.0.3
File Interpreter ABI Platform
ExKMC-0.0.3-cp37-cp37m-win_amd64.whl CPython 3.7 CPython 3.7 pymalloc Windows x86-64 Details

Total release size: 221.1 kB

Release files / ExKMC-0.0.3.tar.gz

Download URL ExKMC-0.0.3.tar.gz
Size 139.6 kB
Tags Source
SHA-256 checksum
How to use checksums
97b1cd7bad2dff36b855b21943526592b2ff5f8ffd181d9f4da3f3bac3295c10
BLAKE2b-256 checksum
How to use checksums
47a9e3870f54a6b7f44744e77c7fef50daae174292c8c477b3d186e0579b11cd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.6.1 requests/2.23.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.3

Release files / ExKMC-0.0.3-cp37-cp37m-win_amd64.whl

Download URL ExKMC-0.0.3-cp37-cp37m-win_amd64.whl
Size 81.5 kB
Tags CPython 3.7 CPython 3.7 pymalloc Windows x86-64
SHA-256 checksum
How to use checksums
cb7b1b03a1dafcfa87e922fef41e594cf48413aac1b712c1e42265653f8bea30
BLAKE2b-256 checksum
How to use checksums
e608478d03e4e77eeec206f0da7ae58e696ccb1e9ff8bdbcec48df1d7d73e5e4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.1.1 pkginfo/1.6.1 requests/2.23.0 setuptools/50.3.1.post20201107 requests-toolbelt/0.9.1 tqdm/4.50.2 CPython/3.7.3

Release history Release notifications | RSS feed

This release

0.0.3 This release

2 release files

0.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page