Mixture of Gaussians MST lifting (Pointcloud to Hypergraph) - geometric-intelligence/TopoBench GitHub Wiki

This approach creates a hypergraph from a point cloud by fitting a mixture of Gaussians to the points in a point cloud and then constructing a minimal spanning tree between the means of the fitted Gaussians. The hypergraph we obtain represents two things; Firstly, it groups points with similar coordinates together. Secondly, it creates discrete dependencies between neighbouring groups of points.

We provide several ways to set the number of components (Gaussians) fitted. By providing the minimal and maximal number of components, our approach selects the number of components with the lowest Akaike information criterion from the range [minimal number of components, maximal number of components]. If only one of these parameters is provided, the number of components is equal to this number. Finally, if no parameter is provided, we select the number of components with the lowest Akaike information criterion from the set $\{2^i, 1\leq i \leq \lfloor log_2(N/2) \rfloor\}$, where $N$ is the number of points in the pointcloud.

For testing purposes, we implemented a pointcloud loader that loads points sampled from a random geometric shape (contained in pytorch geometric data set GeometricShapes) by default.

Lastly, we fixed a bug in the original code (file modules/utils/utils.py, line 236) that returned an error when the user provided a non-square incidence matrix.

From https://github.com/pyt-team/challenge-icml-2024/pull/45