【发布时间】:2016-10-10 13:10:34
【问题描述】:
我正在对 GPS 位置进行聚类。
我得到了大约 4000 个数据点,我使用了 Kmeans 聚类算法。
标记是真实数据位置,而绿色圆圈区域(质心)是kmeans结果。
可以看到右上角的聚类,受到一些异常值的影响。
有什么方法可以消除异常值的影响,从而找出准确的聚类质心?谢谢
================================================ ==============
我得到的 GEOdata 格式如下:
[
{"lat": 22.28552,
"lng": 114.15769
},
...
]
我使用的 kmeans 算法是关注here。但是我把距离改成了distance = Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))
【问题讨论】:
-
该结果看起来不正确。你可以创建一个小提琴或发布一些代码吗?你如何初始化质心?
-
@MattWay 我更新了我的问题。质心是通过聚类对应的数据的平均值来计算的,如
(x1+x2+...+xn)/number_of_point_in_cluster1,(y1+y2+...+yn)/number_of_point_in_cluster1 -
是的,但是如何初始化它们?他们从哪里开始?
-
我选择了簇数=5。簇质心的初始化:data_array[data_array.length/number_cluster]
-
另请注意,使用欧几里德距离作为纬度和经度可能不会给您预期的结果,例如1°经度=北极或南极0公里,赤道1°经度~~40000/360公里……毕竟是一个球体。
标签: javascript machine-learning geometry google-visualization cluster-analysis