I'm looking for a solution that outputs a cluster of 2D points from an estimated distance matrix between some of them. Thing is, the distance between those points are not exact (an approximation) and there aren't values for all pair combinations.
I'm looking for any type of solutions that creates approximate coordinates that respect at most the distances provided.
You could use t-SNE, an algorithm finding an embedding of potentially high-dimensional data into low-dimensional data based on the distances of the elements.
You will have to decide what to do with the missing distances, whether to set them at high values, or the mean distance, or something else.
Since t-SNE will preserve only local neighbourhoods, relations of distant clusters may be less accurate, but you'd have to see whether that is bad for your application.
Update: example for t-SNE
If you download the vanilla MATLAB implementation from the linked website and put that folder on the path, the following self-contained example should run.
After sanitizing your distance matrix (i.e. assigning some value for the missing ones), you would start at
%% Perform tSNE
.perplexity
is a parameter that should match approximately the number of points you expect in a cluster. In my example I chose 150, as I also want to consider neighbouring points a bit further away. The original paper has a good description of what the algorithm does.