Presumo que você tenha muitos pontos e precise de resultados rápidos - caso contrário, você pode usar quase tudo.
Parece um trabalho de redução de mapa para mim
A parte do mapa seria um loop "para cada ponto não visitado" e deveria emitir uma construção de dados contendo vizinhos, clusters candidatos e qualquer outra coisa. Caso o ponto seja classificado como ruído não deve emitir nada.
A expansão do cluster deve entrar em reduzir e possivelmente finalizar parte - também a escolha do idioma seria javascript e tudo aconteceria dentro do mongo