<p>I think the algorithm presented here <a href="https://arxiv.org/abs/1406.7130" rel="nofollow noreferrer">https://arxiv.org/abs/1406.7130</a> could work for your problem. It is implemented in Julia here <a href="https://github.com/twMisc/Clustering-ToMaTo" rel="nofollow noreferrer">https://github.com/twMisc/Clustering-ToMaTo</a>
I forked the project to refactor it as a package here
<a href="https://pnavaro.github.io/ClusteringToMaTo.jl" rel="nofollow noreferrer">https://pnavaro.github.io/ClusteringToMaTo.jl</a>
with some examples <a href="https://pnavaro.github.io/ClusteringToMaTo.jl/dev/demo2/" rel="nofollow noreferrer">https://pnavaro.github.io/ClusteringToMaTo.jl/dev/demo2/</a></p>
<p>Perhaps you can put the code inside your project and adapt it. I hope it helps.</p>
<p>My objective is to offer this algorithm in a cleaner package <a href="https://github.com/pnavaro/GeometricClusterAnalysis.jl" rel="nofollow noreferrer">https://github.com/pnavaro/GeometricClusterAnalysis.jl</a>
but it is not finished yet.</p>
Looking for a clustering algorithm for highly noisy data
<p>I am trying to find clusters in some data with high noise (see plot below).</p>
<p><a href="https://i.stack.imgur.com/iFux4.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/iFux4.png" alt="enter image description here" /></a></p>
<p>I tried using DBSCAN which sort of worked, but it required quite a bit of manually tuning the input parameters to find the clusters properly. Are there any other good clustering algorithms for dealing with this kind of data?</p>
<p>Some considerations:</p>
<ul>
<li><p>I am using Julia to do my data processing.</p>
</li>
<li><p>The data has periodic boundary conditions in both directions.</p>
</li>
<li><p>The number of clusters is known a priori.</p>
</li>
<li><p>I am planning to process many datasets in this way, so it should run relatively fast and not require <em>too</em> much manual fiddling.</p>
</li>
</ul>
<p>Thanks!</p>