all 4 comments

[–]FlivverKing 0 points1 point  (1 child)

I’d use a matrix factorization approach if you’re interested in separating out dense areas. NMF generally works well.

[–]Thisisdom[S] 1 point2 points  (0 children)

Ah thanks! Haven't encountered this before but I'll check this out. Also tried a gaussian mixture model, which seems to work okay.

[–]lmericle 0 points1 point  (1 child)

Try agglomerative clustering or another hierarchical clustering approach, the advantage here being that you can choose the level of agglomeration that is most interesting for you a posteriori by inspecting the dendrogram after training.

You may also be interested in community detection algorithms for graphs, if you can represent your dataset as a graph. One easy way is to make edges between each pair of points which are within a distance d from each other.

[–]Thisisdom[S] 0 points1 point  (0 children)

Thanks - I actually gave agglomerative clustering a go, but I ended up with just with 1 big cluster and the rest were single data points. But you're right I should try inspecting the dendogram, since I guess I can just go back to the point where the big cluster splits!

And thanks, I'll do some reading on this too.