Skip to content

Files

neural_clustering

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
Jan 29, 2025
Mar 5, 2021
Jan 29, 2025
Jan 29, 2025
Jan 29, 2025
Feb 10, 2021
Jan 25, 2021
Apr 5, 2023
Jan 25, 2021

Neural Clustering Library

This project contains a Tensorflow 2 implementation of Neural Clustering Process (NCP) [1], a neural network model for supervised amortized clustering.

Clustering has traditionally been posed as an unsupervised learning problem. However, unsupervised clustering methods often rely on strong assumptions about data geometry, and the clusters produced might not agree with human labels. Recently, supervised formulations of clustering have gained increasing interest, with novel objective functions and neural network architectures that directly learn complex clustering objectives from labeled data. Neural Clustering Process (NCP) is a supervised neural clustering method that can be trained end-to-end to perform amortized probabilistic clustering without assuming a fixed or maximum number of clusters.

How to run

pip install -r requirements.txt
pip install 'git+https://github.com/tensorflow/neural-structured-learning.git#egg=neural_clustering&subdirectory=research/neural_clustering'

This notebook (open in colab) demonstrates how to train a neural clustering model and use it to cluster new datasets.

References

[1] A. Pakman, Y. Wang, C. Mitelut, J. Lee, L. Paninski. "Neural Clustering Processes." ICML 2020

A PyTorch implementation for NCP is also available at https://github.com/aripakman/neural_clustering_process