Artsiom
Artsiom
I'm developing a fork of this repository. And I have already implemented possibility to use a precomputed distance matrix as long as several other distance metrics. https://github.com/asanakoy/Multicore-TSNE
`plt.cm.nipy_spectral` can be used instead
It happens to me sometimes as well. When the perplexity is high enough.
@DmitryUlyanov, thank you. I will write you back when I try the update.
@DmitryUlyanov, f5c5be1#diff-f8b3cce0b3183b4e02d913d9eb933c6eR210 didn't fix it. I believe the problem is in numerical instability when the point is being checked to lie in the bounds of the child [splittree.cpp#L149](https://github.com/DmitryUlyanov/Multicore-TSNE/blob/master/multicore_tsne/splittree.cpp#L149 )- >...
@DmitryUlyanov why quadtree is only suited for euclidean? If I just change a distance function when you instantiate VpTree from euclidean to cosine will it be sufficient?
> Now I realize that it is not that easy. Distance should also be changed in gradient computation and for now it is hardcoded to be euclidean. Could you please...
> Well, you still can get cosine similarity by normalizing your data to have unit norm. But this is not exactly the same as the cosine distance.
I have added not normalized cosine distance (basically it is dot product) in my fork https://github.com/asanakoy/Multicore-TSNE/commit/eebf7365e5f75ec772acb6212a47eef8d5aef0f6 But as you mentioned above it's not fully correct because I forgot to change...
I have investigated the implementation more carefully. VPTree works with any metric distance. And it can work well with [angular distance (arccosine distance)](https://en.wikipedia.org/wiki/Cosine_similarity#Angular_distance_and_similarity) as it is pseudo metric. No need...