覆盖聚类算法中的距离度量

Posted

技术标签:

【中文标题】覆盖聚类算法中的距离度量【英文标题】:Overriding the distance metric in Clustering Algorithms 【发布时间】:2012-04-15 21:12:21 【问题描述】:

我正在尝试跨 3 个维度实现 K-means 聚类算法。 现在的要求是我希望能够灵活地在任何特定维度上定义我自己的距离度量。例如,跨维度 1,我想定义一个简单的欧几里德距离度量,跨维度 2 我想定义我自己的自定义距离度量等等。

是否有可用于 K-means 聚类的 JAVA 实现,让我可以覆盖我选择的任何维度上的距离度量?

谢谢 阿布舍克S

【问题讨论】:

【参考方案1】:

试试Weka,它有一个简单的 K-means 实现并支持所有类型的属性(不仅仅是数字属性),所以我假设他们有某种 API 可以让您插入距离实现。

【讨论】:

【参考方案2】:

看看ELKI。它允许您在大多数算法中使用任意距离函数。包括 k-means,尽管这只是部分合理(k-means 实际上设计用于欧几里得距离,并且当均值不再使距离最小化时,可能会停止与其他距离收敛!)

事实上,ELKI 人甚至有一个Tutorial on adding a custom distance function 几乎可以回答你的问题,对吧?

【讨论】:

以上是关于覆盖聚类算法中的距离度量的主要内容,如果未能解决你的问题,请参考以下文章

聚类算法综述

“余弦”度量在 sklearn 聚类算法中如何工作?

聚类算法(相似度与性能度量)

5.2.2 K-Mean聚类算法

机器学习 - 算法 - 聚类 K-MEANS 算法

k 表示聚类算法