{"id":13687633,"url":"https://github.com/wilsonjr/humap","last_synced_at":"2025-04-08T14:11:21.302Z","repository":{"id":49502733,"uuid":"314673329","full_name":"wilsonjr/humap","owner":"wilsonjr","description":"Hierarchical Uniform Manifold Approximation and Projection","archived":false,"fork":false,"pushed_at":"2025-02-18T10:29:08.000Z","size":54116,"stargazers_count":233,"open_issues_count":3,"forks_count":8,"subscribers_count":5,"default_branch":"master","last_synced_at":"2025-04-01T13:11:50.932Z","etag":null,"topics":["dimensionality-reduction","machine-learning","visualization"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/wilsonjr.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-11-20T21:26:07.000Z","updated_at":"2025-02-18T10:29:13.000Z","dependencies_parsed_at":"2022-09-01T21:00:33.805Z","dependency_job_id":"eff6a67f-c7d5-49f1-9823-da00485c2b76","html_url":"https://github.com/wilsonjr/humap","commit_stats":{"total_commits":107,"total_committers":4,"mean_commits":26.75,"dds":0.09345794392523366,"last_synced_commit":"dd29ead7c55a12722d1346750c56b8f398f71453"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilsonjr%2Fhumap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilsonjr%2Fhumap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilsonjr%2Fhumap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/wilsonjr%2Fhumap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/wilsonjr","download_url":"https://codeload.github.com/wilsonjr/humap/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247856544,"owners_count":21007621,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["dimensionality-reduction","machine-learning","visualization"],"created_at":"2024-08-02T15:00:57.824Z","updated_at":"2025-04-08T14:11:21.276Z","avatar_url":"https://github.com/wilsonjr.png","language":"C++","funding_links":[],"categories":["C++"],"sub_categories":[],"readme":".. -*- mode: rst -*-\n\n|conda_version|_ |conda_downloads|_ |pypi_version|_ |pypi_downloads|_\n\n.. |pypi_version| image:: https://img.shields.io/pypi/v/humap.svg\n.. _pypi_version: https://pypi.python.org/pypi/humap/\n\n.. |pypi_downloads| image:: https://pepy.tech/badge/humap\n.. _pypi_downloads: https://pepy.tech/project/humap\n\n.. |conda_version| image:: https://anaconda.org/conda-forge/humap/badges/version.svg\n.. _conda_version: https://anaconda.org/conda-forge/humap\n\n.. |conda_downloads| image:: https://anaconda.org/conda-forge/humap/badges/downloads.svg\n.. _conda_downloads: https://anaconda.org/conda-forge/humap\n\n.. image:: images/humap-2M.gif\n\t:alt: HUMAP exploration on Fashion MNIST dataset\n\n=====\nHUMAP\n=====\n\nHierarchical Manifold Approximation and Projection (HUMAP) is a technique based on `UMAP \u003chttps://github.com/lmcinnes/umap/\u003e`_ for hierarchical dimensionality reduction. HUMAP allows to:\n\n\n1. Focus on important information while reducing the visual burden when exploring huge datasets;\n2. Drill-down the hierarchy according to information demand.\n\nThe details of the algorithm can be found in our paper on `ArXiv \u003chttps://arxiv.org/abs/2106.07718\u003e`_. This repository also features a C++ UMAP implementation.\n\n\n-----------\nInstallation\n-----------\n\nHUMAP was written in C++ for performance purposes, and provides an intuitive Python interface. It depends upon common machine learning libraries, such as ``scikit-learn`` and ``NumPy``. It also needs the ``pybind11`` due to the interface between C++ and Python.\n\n\nRequirements:\n\n* Python 3.6 or greater\n* numpy\n* scipy\n* scikit-learn\n* pybind11\n* pynndescent (for reproducible results)\n* Eigen (C++)\n\nIf you have these requirements installed, use PyPI:\n\n.. code:: bash\n\n    pip install humap\n    \nAlternatively (and preferable), you can use conda to install:\n\n.. code:: bash\n\n    conda install humap\n\n\n**If using pip**:\n\nHUMAP depends on `Eigen \u003chttps://eigen.tuxfamily.org/\u003e`_. Thus, make it sure to place the headers in **/usr/local/include** if using Unix or **C:\\\\Eigen** if using Windows.\n\n**Manual installation**: \n\nFor manually installing HUMAP, download the project and proceed as follows:\n\n.. code:: bash\n \t\n \tpython setup.py bdist_wheel\n\n.. code:: bash\n\n \tpip install dist/humap*.whl\n\n\n--------------\nUsage examples\n--------------\n\nThe simplest usage of HUMAP is as it follows:\n\n**Fitting the hierarchy**\n\n.. code:: python\n\n\timport humap\n\tfrom sklearn.datasets import fetch_openml\n\n\n\tX, y = fetch_openml('mnist_784', version=1, return_X_y=True)\n        X = X.values\n\ty = y.to_numpy().astype(int)\n\n\t# build a hierarchy with three levels\n\thUmap = humap.HUMAP(np.array([0.2, 0.2]))\n\thUmap.fit(X, y)\n\n\t# embed level 2\n\tembedding2 = hUmap.transform(2)\n\nRefer to *notebooks/* for complete examples.\n\n**C++ UMAP implementation**\n\nYou can also fit a one-level HUMAP hierarchy, which essentially fits UMAP projection.\n\n.. code:: python\n\n\tumap_reducer = humap.UMAP()\n\tembedding = umap_reducer.fit_transform(X)\n\n--------\nCitation\n--------\n\nPlease, use the following reference to cite HUMAP in your work:\n\n.. code:: bibtex\n\n\t@ARTICLE{marciliojr_humap2024,\n\t\tauthor={Marcílio-Jr, Wilson E. and Eler, Danilo M. and Paulovich, Fernando V. and Martins, Rafael M.},\n\t\tjournal={IEEE Transactions on Visualization and Computer Graphics}, \n\t\ttitle={HUMAP: Hierarchical Uniform Manifold Approximation and Projection}, \n\t\tyear={2024},\n\t\tvolume={},\n\t\tnumber={},\n\t\tpages={1-10},\n\t\tdoi={10.1109/TVCG.2024.3471181}\n\t}\n\n\n-------\nLicense\n-------\n\nHUMAP follows the 3-clause BSD license.\n\n\n......\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilsonjr%2Fhumap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwilsonjr%2Fhumap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwilsonjr%2Fhumap/lists"}