Skip to content

Integrate with dimensional reduction algorithms beyond UMAP #859

@drewoldag

Description

@drewoldag

Feature request

tl;dr;
UMAP was the initial choice for reducing the dimensionality of the latent space for visualization. However, it is not the only algorithm available. We should allow the user to choose from many that Hyrax would support.

The deets
The next two obvious choices are t-SNE and PCA (both available from scikit learn). @aritraghsh09 has already mentioned that he would make use of t-SNE and the Applecider incubator also wanted to be able to experiment with different dim_reduction algorithms.

If we created a new verb, perhaps reduce_dimensions, reduce_dimensionalty, squish_latent_space, (naming is hard) we could allow users to select from a small suite of algorithms. Specify configurations in appropriate subtables in the default config, optionally save and load learned weights when possible.

Scikit-learn has many dimention reduction algorithms built in:
https://scikit-learn.org/stable/modules/generated/sklearn.manifold.TSNE.html
https://scikit-learn.org/stable/modules/generated/sklearn.decomposition.PCA.html

Perhaps the api would look something like this:

h.reduce_dims()  # uses the default algorithm defined in hyrax_default_config
h.reduce_dims(algorithm="tsne")  # uses the algorithm specified when calling and uses the algorithm-specific configs from hyrax_default_config

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions