【问题标题】:Most mutually distant k elements (clustering?)距离最远的 k 个元素(聚类?)
【发布时间】:2011-07-21 00:43:43
【问题描述】:

我有一个简单的机器学习问题:

我有 n (~110) 个元素,以及所有成对距离的矩阵。我想选择相距最远的10个元素。也就是说,我想

Maximize:
  Choose 10 different elements.
  Return min distance over (all pairings within the 10).

我的距离度量是对称的并且尊重三角不等式。

我可以使用哪种算法?我的第一直觉是做以下事情:

  1. 将 n 个元素聚类为 20 集群。
  2. 仅将每个集群替换为 该集群的元素是 离平均元素最远 原名。
  3. 使用蛮力解决 剩下的20个问题 候选人。幸运的是,20选10是 只有 184,756 个。

编辑:感谢 etarion 富有洞察力的评论,在优化问题陈述中将“返回总和(距离)”更改为“返回最小距离”。

【问题讨论】:

  • 如果点在 3d .. 8d 中,首先找到凸包 - 参见例如qhull 最多 8d - 并排除船体内的所有点,以便很好地减少问题大小。 (证明?)
  • 应用程序是什么?问题的原因是,我觉得“距离总和”与“最远距离”不是很接近。我希望最后一行中的“返回所有对的最小距离”之类的内容类似于“相距最远”的内容。
  • @Denis 很棒的建议!但是你不是说找到“凹壳”并排除里面的点吗? (凸壳 = 收缩的橡皮筋,定义包括所有点。凹壳 = 膨胀的气球,最小边界。)在这里应用凹壳的想法看起来像 carlosdc 的贪心算法:100x,删除与所有点最相似的点剩下的。
  • @etarion 出色的观察力,你的直觉对我的应用是正确的。这是一个合成生物学项目:110 个元素是 110 个可互换的 DNA 序列,它们都充当“启动子”(参见 Wikipedia)。在一个复杂的遗传回路中,需要使用大约 10 种不同的启动子。诀窍是选择一组具有最小可能 DNA 序列同源性的启动子。同源性是不好的,因为同源序列往往会自发地相互连接(“重组”),拼接出中间的 DNA,从而破坏你的遗传系统。
  • 我认为我们的意思是一样的;凸是通常的术语。 Convex hull algorithms 列出了 O(n log h) 算法,其中 h

标签: artificial-intelligence machine-learning cluster-analysis combinations k-means


【解决方案1】:

以下是通过凸松弛来解决此组合优化问题的方法。

令 D 为上三角矩阵,距离在上三角上。 IE。其中 i

那么您的目标是最大化 x'*D*x,其中 x 是二进制值,其中 10 个元素设置为 1,其余元素设置为 0。(将 x 中的第 i 个条目设置为 1 类似于选择第 i 个元素为你的 10 个元素之一。)

与这样的组合问题有关的“标准”凸优化是放宽约束,使得 x 不需要是离散值。这样做会给我们带来以下问题:

最大化y'*D*y 服从:0

这是(道德上的)二次程序。 (如果我们将 D 替换为 D + D',它将成为一个真正的二次程序,并且得到的 y 应该没有什么不同。)您可以使用现成的 QP 求解器,或者将其插入您选择的凸优化求解器(例如 cvx)。

您得到的 y 不必是(也可能不会是)二进制向量,但您可以通过多种方式将标量值转换为离散值。 (最简单的可能是让 y_i 最高的 10 个条目中的 x 为 1,但您可能需要做一些更复杂的事情。)无论如何, y'*D*y 和 y 你得到的确实给出你是 x'*D*x 最优值的上限,所以如果你从 y 构造的 x 的 x'*D*x 非常接近 y'*D*y,你会对你的近似感到非常满意。

如果有任何不清楚、符号或其他方面的内容,请告诉我。

【讨论】:

    【解决方案2】:

    好问题。

    我不确定它是否可以以有效的方式准确解决,而您基于集群的解决方案似乎是合理的。另一个值得关注的方向是局部搜索方法,例如模拟退火和爬山。

    这是一个明显的基线,我会比较任何其他解决方案:

    1. 重复 100 次:
    2. 贪婪地选择移除对目标函数影响最小的数据点并将其移除。

    【讨论】:

    • +1 好建议,谢谢!在接受一个之前,我会等待一段时间以获得不同的答案。
    猜你喜欢
    • 2019-06-01
    • 2014-06-05
    • 2018-09-16
    • 2015-02-27
    • 1970-01-01
    • 2017-03-26
    • 2018-09-30
    • 2013-09-06
    • 2011-07-12
    相关资源
    最近更新 更多