cvxgrp / pymde

Minimum-distortion embedding with PyTorch
https://pymde.org
Apache License 2.0
526 stars 27 forks source link

Add different metrics to compute KNN #63

Open SSamDav opened 2 years ago

SSamDav commented 2 years ago

In this PR, I added the option to use different metrics when creating the KNN.

Basically, I add the metric argument to the preserve_neighbors function and propagated this argument to the sklearn.neighbors.NearestNeighbors and pynndescent.NNDescent methods.

Note: I assumed that the possible values of the metric argument are the same for the both methods, I checked the documentation, and it seems that this is true. However, probably we should have a little more documentation to guide the final user.

Moreover, I don't use the p nor the metric_kwds / metric_params argument of both methods, but it seems that one could do some logic to allow the user to use these parameters.