利用反演距离进行K-means聚类

K-means clustering using Inversion Distance

本文关键字:K-means 聚类 距离      更新时间:2023-10-16

首先,我想弄清楚如何应用这个算法来解决一个家庭作业项目。所以,我不是在寻找作业的解决方案,只是帮助完成解决问题的算法。

我正在尝试使用K-means聚类来聚类一个大的(2^6)数组集。这些数组是序列[0,1,2…31]的唯一排列。但是,我不使用欧几里得距离,而需要使用反转距离。

k-means的第一步是从数据集中随机选择k=10个点。然后,我计算数据集中每个值到每个随机k点的反转距离。这给出了初始集群。

现在,我不知道下一步如何从欧氏距离转换成反演距离。我怎样才能找到每一个簇的中心(根据反演距离),以便重复聚类步骤?



作为一个伴随问题,欧几里得距离是一个很好的近似(或等效)反演距离吗?我不相信,但我不知道如何去证明它。

提前感谢大家

一般来说,你不能使用非欧几里得距离的k-means。你可以试着用它们来运行算法,但是对于算法终止时收敛的意义几乎没有什么可说的。

正如你在维基百科条目中看到的,欧几里得距离是该算法固有的。它通过在E和M类型的步骤之间交替工作(如EM算法),并且对于欧几里得距离,可以证明这两个步骤都是最小化相同的目标函数。对于其他距离,尽管代码看起来相同,但它通常不成立。

参见交叉验证中的问题。

如果你有一个不同的距离,你应该使用其他的东西,例如,分层聚类或k-medoids