All Projects → navefr → Exkmc

navefr / Exkmc

Licence: mit
Expanding Explainable K-Means Clustering

Projects that are alternatives of or similar to Exkmc

Deeplearningwithpython
Machine Learning and Data Science study group starting Sep'2018
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook
Visual Attention Model
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook
Pithermalcam
The PiThermalCam Project connects an MLX90640 Thermal IR Camera to a Raspberry Pi for viewing or web streaming.
Stars: ✭ 39 (+0%)
Mutual labels:  jupyter-notebook
Cvpr18 detect globally refine locally
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook
Deep Learning Coursera
Deep Learning Andrew Ng Coursera
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook
Parsing Pdfs
Extracting tabular information from PDFs using python
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook
Chexpert Entries
Notebooks and scripts for making submissions to the CheXpert Competition
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook
Dpcn
The official code implementation of "Deep Phase Correlation for End-to-End Heterogeneous Sensor Measurements Matching", CoRL2020.
Stars: ✭ 39 (+0%)
Mutual labels:  jupyter-notebook
Stock Market Prediction Using Natural Language Processing
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook
Mmm Py
Marshall MRMS Mosaic Python Toolkit
Stars: ✭ 37 (-5.13%)
Mutual labels:  jupyter-notebook
Adventures In Ml Code
This repository holds all the code for the site http://www.adventuresinmachinelearning.com
Stars: ✭ 989 (+2435.9%)
Mutual labels:  jupyter-notebook
True artificial intelligence
真AI人工智能
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook
Flexx Notebooks
Jupyter notebooks with Flexx examples.
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook
Vespcn Tensorflow
Tensorflow implementation of VESPCN
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook
Stylegan2 Ada Google Colab Starter Notebook
A colab notebook for training Stylegan2-ada on colab, transfer learning onto your own dataset.
Stars: ✭ 39 (+0%)
Mutual labels:  jupyter-notebook
Perfect Guide About Machine Learning Study
파이썬 머신러닝 완벽 가이드를 교재로 진행한 쏘카 데이터 그룹 사내 스터디 보완 자료
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook
Vietnamese Accent Model
A simple deep learning model to add accent to Vietnamese text.
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook
Coursera Natural Language Processing Specialization
Programming assignments from all courses in the Coursera Natural Language Processing Specialization offered by deeplearning.ai.
Stars: ✭ 39 (+0%)
Mutual labels:  jupyter-notebook
Bdmi 2020a
Big Data and Machine Intelligence, Autumn 2020.
Stars: ✭ 39 (+0%)
Mutual labels:  jupyter-notebook
Optimal Transport
Optimal transport and generalizations
Stars: ✭ 38 (-2.56%)
Mutual labels:  jupyter-notebook

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

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].