.. image:: https://github.com/koulakis/h-nne/actions/workflows/actions.yml/badge.svg?branch=main
:target: https://github.com/koulakis/h-nne/actions/workflows/actions.yml
:alt: Build Status
.. image:: https://readthedocs.org/projects/hnne/badge/?version=latest
:target: https://hnne.readthedocs.io/en/latest/?badge=latest
:alt: Documentation Status
==============================================
h-NNE: Hierarchical Nearest Neighbor Embedding
==============================================
A fast hierarchical dimensionality reduction algorithm.
h-NNE is a general purpose dimensionality reduction algorithm such as t-SNE and UMAP. It stands out for its speed,
simplicity and the fact that it provides a hierarchy of clusterings as part of its projection process. The algorithm is
inspired by the FINCH_ clustering algorithm. For more information on the structure of the algorithm, please look at `our
corresponding paper in CVPR 2022`__:
M. Saquib Sarfraz\*, Marios Koulakis\*, Constantin Seibold, Rainer Stiefelhagen.
Hierarchical Nearest Neighbor Graph Embedding for Efficient Dimensionality Reduction. CVPR 2022.
.. __: https://openaccess.thecvf.com/content/CVPR2022/papers/Sarfraz_Hierarchical_Nearest_Neighbor_Graph_Embedding_for_Efficient_Dimensionality_Reduction_CVPR_2022_paper.pdf
.. _FINCH: https://github.com/ssarfraz/FINCH-Clustering
More details are available in the `project documentation`__.
.. __: https://hnne.readthedocs.io/en/latest/index.html
------------
Installation
------------
The project is available in PyPI. To install run:
``pip install hnne``
----------------
How to use h-NNE
----------------
The HNNE class implements the common methods of the sklearn interface.
+++++++++++++++++++++++++
Simple projection example
+++++++++++++++++++++++++
Below a dataset of dimensionality 256 is projected to 2 dimensions.
.. code:: python
import numpy as np
from hnne import HNNE
data = np.random.random(size=(1000, 256))
hnne = HNNE(n_components=2)
projection = hnne.fit_transform(data)
++++++++++++++++++++++++++++
Projecting on new points
++++++++++++++++++++++++++++
Once a dataset has been projected, one can apply the transform and project new points to the same dimension.
.. code:: python
hnne = HNNE()
projection = hnne.fit_transform(data)
new_data_projection = hnne.transform(new_data)
-----
Demos
-----
The following demo notebooks are available:
1. `Basic Usage`_
2. `Multiple Projections`_
3. `Clustering for Free`_
4. `Monitor Quality of Network Embeddings`_
.. _Basic Usage: notebooks/demo1_basic_usage.ipynb
.. _Multiple Projections: notebooks/demo2_multiple_projections.ipynb
.. _Clustering for Free: notebooks/demo3_clustering_for_free.ipynb
.. _Monitor Quality of Network Embeddings: notebooks/demo4_monitor_network_embeddings.ipynb
--------
Citation
--------
If you make use of this project in your work, it would be appreciated if you cite the hnne paper:
.. code:: bibtex
@article{hnne,
title={Hierarchical Nearest Neighbor Graph Embedding for Efficient Dimensionality Reduction},
author={M. Saquib Sarfraz, Marios Koulakis, Constantin Seibold, Rainer Stiefelhagen},
booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},
year = {2022}
}
If you make use of the clustering properties of the algorithm please also cite:
.. code:: bibtex
@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}
}
------------
Contributing
------------
Contributions are very welcome :-) Please check the `contributions guide`__ for more details.
.. __: docs/source/guide/contributions.rst
Raw data
{
"_id": null,
"home_page": null,
"name": "hnne",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "dimension dimensionality reduction t-sne umap hierarchical clustering finch",
"author": "Marios Koulakis, Saquib Sarfraz",
"author_email": "marios.koulakis@gmail.com, saquibsarfraz@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/3d/de/8ad4d824f1ab5791bdfc8ab78ecdef20acdcf7b8bbee977a1f4adde2805d/hnne-1.0.2.tar.gz",
"platform": null,
"description": ".. image:: https://github.com/koulakis/h-nne/actions/workflows/actions.yml/badge.svg?branch=main\n :target: https://github.com/koulakis/h-nne/actions/workflows/actions.yml\n :alt: Build Status\n\n.. image:: https://readthedocs.org/projects/hnne/badge/?version=latest\n :target: https://hnne.readthedocs.io/en/latest/?badge=latest\n :alt: Documentation Status\n\n\n\n==============================================\nh-NNE: Hierarchical Nearest Neighbor Embedding\n==============================================\nA fast hierarchical dimensionality reduction algorithm.\n\nh-NNE is a general purpose dimensionality reduction algorithm such as t-SNE and UMAP. It stands out for its speed,\nsimplicity and the fact that it provides a hierarchy of clusterings as part of its projection process. The algorithm is\ninspired by the FINCH_ clustering algorithm. For more information on the structure of the algorithm, please look at `our\ncorresponding paper in CVPR 2022`__:\n\n M. Saquib Sarfraz\\*, Marios Koulakis\\*, Constantin Seibold, Rainer Stiefelhagen.\n Hierarchical Nearest Neighbor Graph Embedding for Efficient Dimensionality Reduction. CVPR 2022.\n\n.. __: https://openaccess.thecvf.com/content/CVPR2022/papers/Sarfraz_Hierarchical_Nearest_Neighbor_Graph_Embedding_for_Efficient_Dimensionality_Reduction_CVPR_2022_paper.pdf\n\n.. _FINCH: https://github.com/ssarfraz/FINCH-Clustering\n\nMore details are available in the `project documentation`__.\n\n.. __: https://hnne.readthedocs.io/en/latest/index.html\n\n------------\nInstallation\n------------\nThe project is available in PyPI. To install run:\n\n``pip install hnne``\n\n----------------\nHow to use h-NNE\n----------------\nThe HNNE class implements the common methods of the sklearn interface.\n\n+++++++++++++++++++++++++\nSimple projection example\n+++++++++++++++++++++++++\n\nBelow a dataset of dimensionality 256 is projected to 2 dimensions.\n\n.. code:: python\n\n import numpy as np\n from hnne import HNNE\n\n data = np.random.random(size=(1000, 256))\n\n hnne = HNNE(n_components=2)\n projection = hnne.fit_transform(data)\n\n++++++++++++++++++++++++++++\nProjecting on new points\n++++++++++++++++++++++++++++\n\nOnce a dataset has been projected, one can apply the transform and project new points to the same dimension.\n\n.. code:: python\n\n hnne = HNNE()\n projection = hnne.fit_transform(data)\n\n new_data_projection = hnne.transform(new_data)\n\n-----\nDemos\n-----\nThe following demo notebooks are available:\n\n1. `Basic Usage`_\n\n2. `Multiple Projections`_\n\n3. `Clustering for Free`_\n\n4. `Monitor Quality of Network Embeddings`_\n\n.. _Basic Usage: notebooks/demo1_basic_usage.ipynb\n.. _Multiple Projections: notebooks/demo2_multiple_projections.ipynb\n.. _Clustering for Free: notebooks/demo3_clustering_for_free.ipynb\n.. _Monitor Quality of Network Embeddings: notebooks/demo4_monitor_network_embeddings.ipynb\n\n--------\nCitation\n--------\nIf you make use of this project in your work, it would be appreciated if you cite the hnne paper:\n\n.. code:: bibtex\n\n @article{hnne,\n title={Hierarchical Nearest Neighbor Graph Embedding for Efficient Dimensionality Reduction},\n author={M. Saquib Sarfraz, Marios Koulakis, Constantin Seibold, Rainer Stiefelhagen},\n booktitle = {Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR)},\n year = {2022}\n }\n\nIf you make use of the clustering properties of the algorithm please also cite:\n\n.. code:: bibtex\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------------\nContributing\n------------\n\nContributions are very welcome :-) Please check the `contributions guide`__ for more details.\n\n.. __: docs/source/guide/contributions.rst\n",
"bugtrack_url": null,
"license": null,
"summary": "A fast hierarchical dimensionality reduction algorithm.",
"version": "1.0.2",
"project_urls": {
"Documentation": "https://hnne.readthedocs.io/en/latest",
"Publication": "https://openaccess.thecvf.com/content/CVPR2022/papers/Sarfraz_Hierarchical_Nearest_Neighbor_Graph_Embedding_for_Efficient_Dimensionality_Reduction_CVPR_2022_paper.pdf",
"Repository": "https://github.com/koulakis/h-nne"
},
"split_keywords": [
"dimension",
"dimensionality",
"reduction",
"t-sne",
"umap",
"hierarchical",
"clustering",
"finch"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "3dde8ad4d824f1ab5791bdfc8ab78ecdef20acdcf7b8bbee977a1f4adde2805d",
"md5": "b02dbb3f600c26f2f70d7a5c9dfe5dea",
"sha256": "f341d341e43a16835517177c3df15a73af5083b0b33e682a2829afc6f8cd2fdb"
},
"downloads": -1,
"filename": "hnne-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "b02dbb3f600c26f2f70d7a5c9dfe5dea",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 16119,
"upload_time": "2024-10-22T16:56:49",
"upload_time_iso_8601": "2024-10-22T16:56:49.124059Z",
"url": "https://files.pythonhosted.org/packages/3d/de/8ad4d824f1ab5791bdfc8ab78ecdef20acdcf7b8bbee977a1f4adde2805d/hnne-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-22 16:56:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "koulakis",
"github_project": "h-nne",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "hnne"
}