Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TopoMap #987

Merged
merged 13 commits into from
Dec 7, 2023
Merged

TopoMap #987

merged 13 commits into from
Dec 7, 2023

Conversation

atalon-lip6
Copy link
Contributor

@atalon-lip6 atalon-lip6 commented Nov 9, 2023

This PR introduces the Topological Mapper (TopoMap) method for DimensionReduction. TopoMap projects high-dimension points into 2D by computing and using a Minimum Spanning Tree (MST) on the high dimension points. We project the points so as to preserve the costs of the eges of the spanning tree.
It can use either Boost or Qhull for building the MST, but for now some bugs have been reported in peticular cases with Boost. A fix has been identified, yet not merged into Boost::Geometry for now.
This method was studied in the following paper: "Topomap: A 0-dimensional homology preserving projection of high-dimensional data" by Harish Doraiswamy, Julien Tierny, Paulo J. S. Silva, Luis Gustavo Nonato, and Claudio Silva, in
Proc. of IEEE VIS 2020. IEEE Transactions on Visualization and Computer Graphics 27(2): 561-571, 2020.

atalon-lip6 and others added 9 commits November 8, 2023 12:56
…algorithm. It computes a 2D embedding of points whose distance matrix is given as input. The embedding is computed so that the distances of a minimum spanning tree compute with Kruskal's algorithm are preserved.

This commits includes a separate vtk module for this algorithm.
the TopoMap module to compute the embedding of the input points, given
as coordinates or given their distance matrix.
… for the vtk layer, indicating for each point the time it was embedded in 2D.
…er can now choose between this one and Kruskal (the legacy one).
@atalon-lip6 atalon-lip6 force-pushed the topomap-clean branch 4 times, most recently from b657258 to 1358c43 Compare November 13, 2023 14:26
Copy link
Collaborator

@julien-tierny julien-tierny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hi @atalon-lip6,
thanks a lot for the PR.
here's a first batch of comments (more to come soon).
thanks for addressing them!
cheers,

.github/workflows/test.yml Outdated Show resolved Hide resolved
.github/workflows/test.yml Outdated Show resolved Hide resolved
core/base/dimensionReduction/DimensionReduction.cpp Outdated Show resolved Hide resolved
core/base/dimensionReduction/DimensionReduction.h Outdated Show resolved Hide resolved
core/base/topoMap/TopoMap.h Outdated Show resolved Hide resolved
core/base/topoMap/TopoMap.h Outdated Show resolved Hide resolved
core/base/topoMap/TopoMap.h Outdated Show resolved Hide resolved
core/base/topoMap/TopoMap.h Outdated Show resolved Hide resolved
core/base/topoMap/TopoMap.h Outdated Show resolved Hide resolved
core/base/topoMap/TopoMap.h Outdated Show resolved Hide resolved
Copy link
Collaborator

@julien-tierny julien-tierny left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK, here is a second batch of remarks.
Thanks!

core/base/topoMap/TopoMap.h Outdated Show resolved Hide resolved
core/base/topoMap/TopoMap.h Outdated Show resolved Hide resolved
core/base/topoMap/TopoMap.h Outdated Show resolved Hide resolved
core/base/topoMap/TopoMap.h Outdated Show resolved Hide resolved
core/base/topoMap/TopoMap.h Outdated Show resolved Hide resolved
core/base/topoMap/TopoMap.h Outdated Show resolved Hide resolved
core/base/topoMap/TopoMap.h Show resolved Hide resolved
@atalon-lip6 atalon-lip6 force-pushed the topomap-clean branch 5 times, most recently from 5a9b502 to a2ee32b Compare November 29, 2023 10:11
@julien-tierny
Copy link
Collaborator

alright, looks good. thanks!

@julien-tierny julien-tierny merged commit cb17108 into topology-tool-kit:dev Dec 7, 2023
45 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants