聚类位置数据忽略异常值
Clustering location data ignore outliers
我正在进行 GPS 位置聚类。
我得到了大约 4000 个数据点,我使用了 Kmeans 聚类算法。
这是我得到的结果:
标记是真实的数据位置,而绿色圆圈区域(质心)是kmeans结果。
您可以看到右上角的聚类,受到一些异常值的影响。
有什么方法可以去除异常值的影响,从而找出准确的聚类质心?谢谢
============================================= ===============
我得到的GEOdata格式如下:
[
{"lat": 22.28552,
"lng": 114.15769
},
...
]
我使用的 kmeans 算法遵循 here。但是我把距离改成了distance = Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))
对于此类数据,K-means 是一个糟糕的选择。
对异常值敏感
它不适用于 Haversine 距离(不要在地理坐标上使用欧几里得!)
此类数据的热门选择包括 DBSCAN 和 OPTICS。
我正在进行 GPS 位置聚类。
我得到了大约 4000 个数据点,我使用了 Kmeans 聚类算法。
这是我得到的结果:
标记是真实的数据位置,而绿色圆圈区域(质心)是kmeans结果。
您可以看到右上角的聚类,受到一些异常值的影响。
有什么方法可以去除异常值的影响,从而找出准确的聚类质心?谢谢
============================================= ===============
我得到的GEOdata格式如下:
[
{"lat": 22.28552,
"lng": 114.15769
},
...
]
我使用的 kmeans 算法遵循 here。但是我把距离改成了distance = Math.sqrt((x1-x2)*(x1-x2) + (y1-y2)*(y1-y2))
对于此类数据,K-means 是一个糟糕的选择。
对异常值敏感
它不适用于 Haversine 距离(不要在地理坐标上使用欧几里得!)
此类数据的热门选择包括 DBSCAN 和 OPTICS。