# First Integer Neighbor Clustering Hierarchy (FINCH) Algorithm
![alt text](https://raw.githubusercontent.com/ssarfraz/FINCH-Clustering/master/data/toy_data_vis.jpg)
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](http://openaccess.thecvf.com/content_CVPR_2019/papers/Sarfraz_Efficient_Parameter-Free_Clustering_Using_First_Neighbor_Relations_CVPR_2019_paper.pdf).
## Installation
The project is available in PyPI. To install run:
`pip install finch-clust`
**Optional**. Install [PyNNDescent](https://github.com/lmcinnes/pynndescent) to get first neighbours for large data
To install finch with pynndescent run:
`pip install "finch-clust[ann]"`
## Usage:
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](finch/README.md).
**Matlab usage**
Correponding Matlab implementation is provided in the [matlab directory](https://github.com/ssarfraz/FINCH-Clustering/tree/master/matlab/README.md).
## Demos
The following demo notebooks are available to see the usage in clustering a dataset.
1. [Basic usage on 2D toy data](https://github.com/ssarfraz/FINCH-Clustering/blob/master/notebooks/Basic_usage.ipynb)
2. [Clustering STL-10 dataset with FINCH](https://github.com/ssarfraz/FINCH-Clustering/blob/master/notebooks/Clustering_with_FINCH.ipynb)
## Relevant tools built on FINCH
- [h-nne](https://github.com/koulakis/h-nne): See also our [h-nne](https://github.com/koulakis/h-nne) method which uses FINCH for fast dimenionality reduction and visualization applications.
- [TW-FINCH](https://github.com/ssarfraz/FINCH-Clustering/tree/master/TW-FINCH): Also see our [TW-FINCH](https://github.com/ssarfraz/FINCH-Clustering/tree/master/TW-FINCH) variant which is useful for video segmentation.
## Citation
```
@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}
}
```
**The code and FINCH algorithm is not meant for commercial use. Please contact the author for licensing information.**
Raw data
{
"_id": null,
"home_page": "",
"name": "finch-clust",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "finch,finch clustering,clustering,hierarchical clustering",
"author": "Saquib Sarfraz",
"author_email": "saquibsarfraz@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/3b/27/200998f4636738d62c6521929dae8d1136715ef3947f11888642fdd1ccfc/finch-clust-0.2.0.tar.gz",
"platform": null,
"description": "# First Integer Neighbor Clustering Hierarchy (FINCH) Algorithm\n![alt text](https://raw.githubusercontent.com/ssarfraz/FINCH-Clustering/master/data/toy_data_vis.jpg)\n\nFINCH is a parameter-free fast and scalable clustering algorithm. it stands out for its speed and clustering quality.\n The algorithm is described in our paper **Efficient Parameter-free Clustering Using First Neighbor Relations** published in CVPR 2019 . [Read Paper](http://openaccess.thecvf.com/content_CVPR_2019/papers/Sarfraz_Efficient_Parameter-Free_Clustering_Using_First_Neighbor_Relations_CVPR_2019_paper.pdf).\n\n\n## Installation\nThe project is available in PyPI. To install run:\n\n`pip install finch-clust` \n\n**Optional**. Install [PyNNDescent](https://github.com/lmcinnes/pynndescent) to get first neighbours for large data\n\nTo install finch with pynndescent run:\n\n`pip install \"finch-clust[ann]\"` \n\n\n## Usage:\n\ntypically you would run: \n``` \nfrom finch import FINCH\nc, num_clust, req_c = FINCH(data)\n\n```\nYou can set options e.g., required number of cluster or distance etc,\n\n```\nc, num_clust, req_c = FINCH(data, initial_rank=None, req_clust=None, distance='cosine', verbose=True)\n```\n\nFor more details on meaning of input arguments check README in [finch directory](finch/README.md). \n\n**Matlab usage**\n\nCorreponding Matlab implementation is provided in the [matlab directory](https://github.com/ssarfraz/FINCH-Clustering/tree/master/matlab/README.md).\n\n## Demos\n\nThe following demo notebooks are available to see the usage in clustering a dataset.\n\n1. [Basic usage on 2D toy data](https://github.com/ssarfraz/FINCH-Clustering/blob/master/notebooks/Basic_usage.ipynb)\n2. [Clustering STL-10 dataset with FINCH](https://github.com/ssarfraz/FINCH-Clustering/blob/master/notebooks/Clustering_with_FINCH.ipynb)\n \n\n\n\n\n\n\n## Relevant tools built on FINCH\n- [h-nne](https://github.com/koulakis/h-nne): See also our [h-nne](https://github.com/koulakis/h-nne) method which uses FINCH for fast dimenionality reduction and visualization applications.\n\n- [TW-FINCH](https://github.com/ssarfraz/FINCH-Clustering/tree/master/TW-FINCH): Also see our [TW-FINCH](https://github.com/ssarfraz/FINCH-Clustering/tree/master/TW-FINCH) variant which is useful for video segmentation.\n## Citation \n```\n@inproceedings{finch,\n author = {M. Saquib Sarfraz and Vivek Sharma and Rainer Stiefelhagen}, \n title = {Efficient Parameter-free Clustering Using First Neighbor Relations}, \n booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},\n pages = {8934--8943}\n year = {2019}\n}\n\n```\n\n**The code and FINCH algorithm is not meant for commercial use. Please contact the author for licensing information.**\n",
"bugtrack_url": null,
"license": "",
"summary": "FINCH - First Integer Neighbor Clustering Hierarchy: A parameter-free fast clustering algorithm.",
"version": "0.2.0",
"project_urls": {
"Publication": "https://openaccess.thecvf.com/content_CVPR_2019/html/Sarfraz_Efficient_Parameter-Free_Clustering_Using_First_Neighbor_Relations_CVPR_2019_paper.html",
"Repository": "https://github.com/ssarfraz/FINCH-Clustering"
},
"split_keywords": [
"finch",
"finch clustering",
"clustering",
"hierarchical clustering"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3b27200998f4636738d62c6521929dae8d1136715ef3947f11888642fdd1ccfc",
"md5": "28b6055034c64f3eb0eabedb8efc823f",
"sha256": "74f302329ed8a94370dcd7a708da70d4a73a0933569c5e7adb885c4f35cdf0a7"
},
"downloads": -1,
"filename": "finch-clust-0.2.0.tar.gz",
"has_sig": false,
"md5_digest": "28b6055034c64f3eb0eabedb8efc823f",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 11792,
"upload_time": "2023-08-24T11:25:57",
"upload_time_iso_8601": "2023-08-24T11:25:57.048657Z",
"url": "https://files.pythonhosted.org/packages/3b/27/200998f4636738d62c6521929dae8d1136715ef3947f11888642fdd1ccfc/finch-clust-0.2.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-08-24 11:25:57",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ssarfraz",
"github_project": "FINCH-Clustering",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "finch-clust"
}