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.
In this PR, I added the option to use different metrics when creating the KNN.
Basically, I add the
metric
argument to thepreserve_neighbors
function and propagated this argument to thesklearn.neighbors.NearestNeighbors
andpynndescent.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 themetric_kwds
/metric_params
argument of both methods, but it seems that one could do some logic to allow the user to use these parameters.