如何在 k 均值中使用欧氏距离以外的不同距离公式

sau*_*sau 3 r cluster-analysis machine-learning data-mining k-means

我正在处理纬度经度数据。我必须根据两点之间的距离进行聚类。现在两个不同点之间的距离是=ACOS(SIN(lat1)*SIN(lat2)+COS(lat1)*COS(lat2)*COS(lon2-lon1))*6371

我想在 R 中使用 k 均值。有什么方法可以覆盖该过程中的距离计算吗?

Ano*_*sse 5

K-means 不是基于距离的

它基于方差最小化。方差和公式等于欧几里德距离 的平方和,但对于其他距离,反之则不成立

如果您想要针对其他距离(其中均值不是合适的估计量)使用类似 k 均值的算法,请使用k 中心点(PAM)。与 k-means 相比,k-medoids 将与任意距离函数收敛!

对于曼哈顿距离,您还可以使用 K 中位数。中位数是 L1 范数的适当估计量(中位数使差值和最小化;均值使距离平方和最小化)。

对于您的特定用例,您还可以将数据转换为 3D 空间,然后使用(平方)欧几里德距离,从而使用 k 均值。但你的集群中心将位于地下某个地方!