我正在尝试跨3个维度实现K-means聚类算法。 现在要求我希望能够灵活地在任何特定维度上定义自己的距离度量。例如,跨维度1,我想要定义一个简单的欧氏距离度量,跨越维度2我想定义我自己的自定义距离度量等等。
是否有可用于K-means聚类的JAVA实现,可以覆盖我选择的任何维度的距离度量?
由于 Abhishek S
答案 0 :(得分:3)
看看ELKI。它允许您使用大多数算法的任意距离函数。包括k-means,虽然这只是部分合理的(k-means实际上设计用于欧氏距离,并且可能会停止与其他距离会聚,当平均值不再最小化距离时!)
事实上,ELKI的人甚至有Tutorial on adding a custom distance function几乎可以回答你的问题,对吗?
答案 1 :(得分:1)
尝试Weka它有一个简单的K-means实现,并且支持所有类型的属性(不仅仅是数字属性),所以我假设他们使用某种API来让你插入距离实现。