dbscan clustering of xy points only returns outliers

6 Ansichten (letzte 30 Tage)
AbioEngineer
AbioEngineer am 20 Aug. 2021
Bearbeitet: the cyclist am 20 Aug. 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?

Akzeptierte Antwort

the cyclist
the cyclist am 20 Aug. 2021
Bearbeitet: the cyclist am 20 Aug. 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)

Weitere Antworten (0)

Kategorien

Mehr zu Statistics and Machine Learning Toolbox finden Sie in Help Center und File Exchange

Produkte


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by