FINCH is a parameter-free fast and scalable clustering algorithm. it stands out for its speed and clustering quality. The algorithm is described in our paper Efficient Parameter-free Clustering Using First Neighbor Relations published in CVPR 2019 . Read Paper.
The project is available in PyPI. To install run:
pip install finch-clust
Optional. Install PyNNDescent to get first neighbours for large data
To install finch with pynndescent run:
pip install "finch-clust[ann]"
typically you would run:
from finch import FINCH
c, num_clust, req_c = FINCH(data)
You can set options e.g., required number of cluster or distance etc,
c, num_clust, req_c = FINCH(data, initial_rank=None, req_clust=None, distance='cosine', verbose=True)
For more details on meaning of input arguments check README in finch directory.
Matlab usage
A minimal correponding Matlab implementation is provided in the matlab directory.
The following demo notebooks are available to see the usage in clustering a dataset.
-
h-nne: See also our h-nne method which uses FINCH for fast dimenionality reduction and visualization applications.
-
TW-FINCH: Also see our TW-FINCH variant which is useful for video segmentation.
@inproceedings{finch,
author = {M. Saquib Sarfraz and Vivek Sharma and Rainer Stiefelhagen},
title = {Efficient Parameter-free Clustering Using First Neighbor Relations},
booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
pages = {8934--8943}
year = {2019}
}
