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
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: