Skip to content

[Request] Implement density-based Mapper #251

@kalebruscitti

Description

@kalebruscitti

🚀 Feature Request

I've got a generalization of Mapper called density-based Mapper that I find to be extremely useful for using Mapper in a temporal topic modelling context. I have my own scikit learn compliant implementation of it here, but your Mapper project is much better than mine and I think it would be better for me to contribute to your project instead of maintaining another version of Mapper.

🔍 Motivation

I am interested in temporal topic modelling problems. I am embedding a corpus of documents and reducing them with UMAP to 2- or 3- dimensions. These documents also come with timestamps. Using the timestamps as my Morse function, I then use Mapper to construct a graph where I interpret vertices as topics and edges as temporal relationships between topics.

In this context, my dataset often has a highly varying frequency across the dataset, and this means there is not a good choice of n_intervals that works for the entire dataset. To solve this, my density-based Mapper algorithm constructs different covers that account for the varying frequency across the dataset.

Empirically, we find that these covers generate Mapper graphs that perform much better for our applications.

🧠 Algorithm Details (Optional)

The main step in the paper is defining a type of cover that I called a Kerneled Cover; using a kerneled cover the rest of density-based Mapper is the same as standard Mapper. Therefore I think all we'd need to do is implement a KerneledCover class.

Let me know if this interests you! If it does, I'll try and draft a PR with an implementation.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions