Visualizing TSNE Maps with Three.js
douglasduhaime.com
douglasduhaime.com
https://github.com/lmcinnes/umap
It's much faster and usually results in better clustering / representation.
For example, see figure 9 in the paper: the plot on the left is the typical result of default t-SNE (distance between global structures not well-represented, since everything is jammed together), and the plot on the right is very UMAPish.
Basically, there are a lot of preprocessing and parameter choices involved in producing these embedding plots, so it’s advisable to try to understand the effects of these choices regardless of which algorithm you choose.
In case someone wondering, like me, what TSNE is. Which I still don't understand after reading
What you want to do is "visualise" those 20.000 points in 2D or 3D so you can get an idea of how the data is distributed. So you use t-SNE to "compress" those 200 columns to 2 or 3, and you display that.
Traditionally you would use Primary Component Analysis, but that only uses linear projection, and will not be able to project data that has non-linear relationships in the distributions.
Another algorithm, sometimes more powerfull and scalable is LargeViz.
Tool-wise, we do it in a few lines over tables with many rows/columns via end-to-end GPU acceleration using https://www.RAPIDS.ai (GPU dataframes + UMAP) + Graphistry (GPU viz, which we make).