【发布时间】:2012-04-09 04:39:54
【问题描述】:
有没有办法在 K-means 中设置另一个距离而不是实现的那五个 在 Matlab 中,例如 Chebyshev 距离:
D=max(abs(xj-xi))
谢谢。
最好的,
帕夫洛斯
【问题讨论】:
有没有办法在 K-means 中设置另一个距离而不是实现的那五个 在 Matlab 中,例如 Chebyshev 距离:
D=max(abs(xj-xi))
谢谢。
最好的,
帕夫洛斯
【问题讨论】:
这可能会对你有所帮助。
http://www.purplemath.com/modules/distform.htm
http://www.mathwarehouse.com/algebra/distance_formula/index.php
另外,还有一个计算两点距离的概念,叫做“City Block Distance”,类似于两点的绝对距离。示例:
距离,d = |x2-x1| + |y2-y1| 或
d = |x1-x2| + |y1-y2|(结果是绝对的,任何形式都可以)
请检查并尝试。
【讨论】:
切比雪夫距离等于无穷大norm。这应该有助于您在 Matlab 文档中进行搜索。
我在 Matlab 中通读了 K-means 的 documentation,并没有提到用额外的距离规范来扩展函数。所以,你可能应该自己实现它。
另一种选择是查找从 Linf 到 L2 的映射,但这不存在。对不起。
【讨论】:
如果您没有使用 K-means 的任何特定原因,并且可以处理 Hierarchical Agglomerative Clustering,则可以使用 clusterdata 函数。它也适用于切比雪夫距离。
【讨论】:
我认为层次聚类可能更符合您的要求,因为您可以轻松指定距离函数。
但是,如果您真的想使用 k-means,您可以使用您喜欢的任何函数创建一个距离矩阵,然后使用 SVD 将您的距离矩阵分解为一个特征空间。然后,对由 SVD 的分数表示的新特征空间执行 k-means。
我不知道 K-means 会与其他距离指标收敛。
【讨论】:
【讨论】: