dbscan clustering of xy points only returns outliers
4 次查看(过去 30 天)
显示 更早的评论
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?
0 个评论
采纳的回答
the cyclist
2021-8-20
编辑:the cyclist
2021-8-20
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)
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Statistics and Machine Learning Toolbox 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!