【问题标题】:Is Triangle inequality necessary for kmeans?kmeans是否需要三角不等式?
【发布时间】:2012-07-15 14:35:39
【问题描述】:

我想知道在 kmeans 中使用的距离度量是否需要三角不等式。

【问题讨论】:

    标签: machine-learning cluster-analysis distance data-mining k-means


    【解决方案1】:

    好吧,经典的 kmeans 是在具有 L2 距离的欧几里得空间上定义的,因此您会自动从中得到三角不等式(三角不等式是定义距离/度量的一部分)。如果您使用的是非欧几里得度量,则需要定义“均值”的含义等。

    如果你没有三角不等式,这意味着两点可能相距很远,但都可能靠近第三点。您需要考虑如何解释这个案例。

    话虽如此,我过去曾使用平均链接层次聚类和距离度量,但它不能满足三角不等式等要求,它非常适合我的需求。

    【讨论】:

    • 谢谢。我正在处理二进制数据并将平均值定义为集群中点的位的 Or()。我想使用 d(A,B)=|Xor(A,B)|/|And(A,B)|它显示了向集群添加一个点的成本超过了收益。但是它不满足属性。我首先考虑了 Jaccord 距离,但它的含义不同。
    • 我不确定您的指标试图实现什么,但 kmeans 确实是为 L2(欧几里德)距离定义的 - 其他方法(如 UPGMA)更自然地允许不同的指标。关于度量,这真的取决于你的目标是什么,但是汉明距离呢?它满足三角不等式。
    【解决方案2】:

    k-means 欧几里得距离设计,恰好满足三角不等式。

    使用其他距离函数是有风险的,因为它可能会停止收敛。然而,原因是不是三角不等式,而是均值可能不会最小化距离函数。 (算术平均值最小化平方和,而不是任意距离!)

    有更快的 k-means 方法利用三角不等式来避免重新计算。但是,如果您坚持经典的 MacQueen 或 Lloyd k-means,那么您确实不需要需要三角不等式。

    请小心使用其他距离函数,以免陷入无限循环。您需要证明均值可以最小化您到聚类中心的距离。如果你不能证明这一点,它可能无法收敛,因为目标函数不再单调递减!所以你真的应该尝试证明你的距离函数的收敛性

    【讨论】:

    • 我的目标是创建所有成员中最少有 1 位的集群(我需要每个 1 位的存储空间)。我将中心定义为所有成员的 Or() 并使用 |Or(x,y)|作为距离函数。目前我使用链接算法来创建分层集群,而不是使用 kmeans,效果很好
    • @Anony-Mousse:对于均值必须是最小方差估计量的要求,您有参考吗?我已经阅读了相当多的机器学习教科书(例如 Bishop 2007、Alpaydin 2009),但我从未见过这样的要求。
    • @stackoverflowuser2010 均值位置的最小二乘估计量,正如 Gauss 在 1800 年左右所证明的那样。这不是要求,而是事实。 两个步骤中使用一致标准的需要源于收敛证明。但是这些教科书中有没有讨论过收敛? (我已经改进了上面的措辞,使其更容易理解。)
    • 不幸的是,机器学习教科书在非监督方法上往往非常肤浅。
    猜你喜欢
    • 1970-01-01
    • 2014-08-01
    • 1970-01-01
    • 2014-02-23
    • 2021-08-11
    • 1970-01-01
    • 2022-11-13
    • 2013-02-06
    • 1970-01-01
    相关资源
    最近更新 更多