dbscan clustering of xy points only returns outliers

5 visualizaciones (últimos 30 días)
AbioEngineer
AbioEngineer el 20 de Ag. de 2021
Editada: the cyclist el 20 de Ag. de 2021
I have an array of xy points and just want a way to determine the number of clusters. I have many sets of xy points, and all of them are approximately the same in terms of values, so I would think epsilon doesn't need to change too much.
I have tried
idx=dbscan(centers,1,3);
like they did in the example, but it only returns a vector of -1, which corresponds to outliers. I thought decreasing the epsilon would give more clusters. Using kmeans with 2 clusters gives me the below result, but I would like to separate them even more. I can see both the red and the blue clusters could each have two more. Do I just not have enough points?

Respuesta aceptada

the cyclist
the cyclist el 20 de Ag. de 2021
Editada: the cyclist el 20 de Ag. de 2021
You actually need to increase epsilon, because you need a larger search radius to identify neighborhood points.
load centers
idx = dbscan(centers,50,3);
gscatter(centers(:,1),centers(:,2),idx)

Más respuestas (0)

Categorías

Más información sobre Statistics and Machine Learning Toolbox en Help Center y File Exchange.

Productos


Versión

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by