pavlin-policar / openTSNE

Extensible, parallel implementations of t-SNE
https://opentsne.rtfd.io
BSD 3-Clause "New" or "Revised" License
1.42k stars 157 forks source link

Allow KNNIndex classes to take **kwargs arguments and pass them to KNN library #256

Open dkobak opened 3 months ago

dkobak commented 3 months ago

See title. We discussed it at Dagstuhl. Should be useful for PyNNdescent, but could potentially be useful for Annoy/HNSW/etc at well.

We could potentially allow Affinity classes to take **kwargs as well and pass them to the KNNIndex. Here I'm less sure if that's a good design idea.

pavlin-policar commented 3 months ago

Yes, we definitely need to add that! IMO, a general **kwargs would be messy, and something like like a knn_kwargs argument would be better. Scikit-learn also does something similar in their KNN classes, but they call it "params". I prefer "kwargs". What do you think?

dkobak commented 3 months ago

Yes, sounds good!