具有任意距离函数的K-Means算法MATLAB(Chebyshev距离)

时间:2012-03-25 09:43:44

标签: matlab k-means

有没有办法在K-means中设置另一个距离,而不是那五个实现的距离 在Matlab中,例如Chebyshev距离:

d = MAX(ABS(XJ-XI))

谢谢。

最佳,

巴夫洛斯

5 个答案:

答案 0 :(得分:1)

如果您没有使用K-means的任何具体原因,并且可以处理分层凝聚聚类,那么您可以使用clusterdata函数。它也适用于切比雪夫距离。

答案 1 :(得分:0)

这可能会对你有帮助。

http://www.purplemath.com/modules/distform.htm

http://www.mathwarehouse.com/algebra/distance_formula/index.php

此外,还有另一个概念,即计算名为“城市街区距离”的两个点之间的距离,这类似于两点的ABSOLUTE距离。例如:

距离,d = |x2-x1| + |y2-y1|或           d = |x1-x2| + |y1-y2|(由于结果是绝对的,任何形式都可以) 请检查并尝试。

答案 2 :(得分:0)

切比雪夫距离相当于无穷大norm。这应该可以帮助您在Matlab文档中进行搜索。

我在Matlab中阅读了K-means的documentation,并没有提到用额外的距离规范来扩展函数。所以,你应该自己实现它。

另一种选择是寻找从Linf到L2的映射,但这不存在。抱歉。

答案 3 :(得分:0)

我认为,由于您可以轻松指定距离函数,因此层次聚类可能更符合您的要求。

但是,如果你真的想使用k-means,你可以使用你喜欢的任何函数创建一个距离矩阵,并使用SVD将距离矩阵分解为一个特征空间。然后,在由SVD的分数表示的新特征空间上执行k-means。

我不知道K-means会与其他距离指标汇合。

答案 4 :(得分:0)

我为非常简单的K-Means创建了一个MATLAB代码,它接受任意距离函数。

您可以在GitHub Repository上获取代码。

以下是3种不同距离指标的结果:

enter image description here

enter image description here

enter image description here