我正在尝试实现一个跨3个维度的K-means聚类算法。现在的要求是,我想要在任何特定维度上灵活地定义我自己的距离度量。例如,在维度1上,我想定义一个简单的欧几里德距离度量,在维度2上,我想定义自己的自定义距离度量,依此类推。
有没有可用于K-means集群的JAVA实现,让我可以覆盖我选择的任何维度的距离度量?
谢谢Abhishek S
发布于 2012-04-02 23:00:31
看看ELKI吧。它允许你在大多数算法中使用任意的距离函数。包括k-means,尽管这只是部分合理的(k-means实际上是为欧几里得距离而设计的,当均值不再最小化距离时,可能会停止与其他距离的收敛!)
事实上,ELKI人甚至有一个Tutorial on adding a custom distance function可以很好地回答你的问题,对吧?
发布于 2012-04-02 22:12:00
尝试Weka它有一个简单的K-means实现,并支持所有类型的属性(不仅仅是数字属性),所以我假设它们有某种API,可以让你插入你的距离实现。
https://stackoverflow.com/questions/9972536
复制相似问题