按中心和半径对圆的数据进行聚类
Posted
技术标签:
【中文标题】按中心和半径对圆的数据进行聚类【英文标题】:clustering the data for circle by center and radius 【发布时间】:2021-04-14 06:04:24 【问题描述】:我有一个圆心(x,y)和半径(r)的数据集。需要将位置接近的圆圈聚集在一起。然后我有一点需要找到最近的集群。
index x y r
0 0 0 3
1 1 2 2
2 9 5 1
3 10 6 1
4 100 8 20
例如,按索引,簇将是 (0,1),(2,3),(4)。我认为这部分应该由聚类算法开发,但不知道是哪种算法。对于下一步 - 找到最近的集群,考虑时间复杂度,找到它的最佳方法是什么?
【问题讨论】:
看起来像k-nn的情况。 【参考方案1】:您可以使用 K-Means 聚类,这是一种无监督技术。 K
是这里的超参数,它表示您想在数据中找到的集群数量,因此您需要在将模型拟合到数据之前设置 K
的值(如您所知,如果您不是确定可能有多少个集群,那么您需要设置不同的 K
值,然后查看最适合您的)。对于您关于时间复杂度的问题,在 ML 中,我们几乎不考虑时间复杂度(并非严格意义上的真实),因为我们经常希望权衡时间以更好地减少损失的准确性。
K-means 的工作原理:
最好的部分是您可以非常轻松地尝试此方法并使用 Scikit Learn 库查看它的执行情况,因为您无需编写太多代码,因此非常简单。 您可以在此处浏览文档 - sklearn.cluster.KMeans
【讨论】:
以上是关于按中心和半径对圆的数据进行聚类的主要内容,如果未能解决你的问题,请参考以下文章
给定中心坐标(纬度/经度)、半径(米)和中心角(度)的球体(地球)上的圆弧面积 [关闭]
R语言生成仿真的3D高斯簇数据集使用scale函数进行数据缩放并使用KMeans进行聚类分析数据反向缩放并比较聚类生成的中心和实际数据的中心的差异预测新的数据所属的聚类簇