我正在处理纬度经度数据。我必须根据两点之间的距离进行聚类。现在两个不同点之间的距离是=ACOS(SIN(lat1)*SIN(lat2)+COS(lat1)*COS(lat2)*COS(lon2-lon1))*6371
我想在 R 中使用 k 均值。有什么方法可以覆盖该过程中的距离计算吗?
K-means 不是基于距离的
它是基于方差最小化。方差和公式等于欧氏距离平方和,但反过来,对于其他距离,将not hold.
如果您想对其他距离使用类似于 k 均值的算法(其中均值不是合适的估计量),请使用k-中心点(PAM)。与 k-means 相比,k-medoids 将与任意距离函数收敛!
对于曼哈顿距离,您还可以使用 K 中位数。中位数是 L1 范数的适当估计量(中位数使差值和最小化;均值使距离平方和最小化)。
对于您的特定用例,您还可以将数据转换为 3D 空间,然后使用(平方)欧几里德距离,从而使用 k 均值。但你的集群中心将位于地下某个地方!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)