【问题标题】:How do I cluster and sequence data based on past observations?如何根据过去的观察对数据进行聚类和排序?
【发布时间】:2014-07-11 23:46:01
【问题描述】:

假设我们定期收到一组数字。这些数字是固定的,比如一到一千。如果我在一段时间内收集这些数字,我该如何

  • 找出最常一起出现的数字
  • 找出这些数字最常出现的顺序。

例如,{790, 111, 432}{123, 121}{770, 123} 会导致

  1. 群组:{790, 111, 432}{123, 770, 123}
  2. 序列:{790, 111, 432, 770, 123, 121}
    (或者,{770, 123, 121, 790, 111, 432}

而且,{790, 111, 432}{123, 121}{770, 123}{770, 439, 98}{111, 432, 190} 会导致

  1. 群组:{790, 111, 432, 190}{123, 770, 123, 439, 98}
  2. 序列:{790, 111, 432, 190, 770, 439, 98, 123, 121}
    (或者,{790, 111, 432, 190, 770, 123, 121, 439, 98}
    {123, 770, 123, 439, 98, 790, 111, 432, 190}...)

第一个可能很容易。我试图创建一个距离矩阵,并从距离矩阵中提取信息。我尝试的另一个想法是加载到 HDFS 中,并运行 Mahout 谱聚类,但成功有限。我觉得必须使用一些聚类算法。任何帮助都会很棒。

第二个是一个更复杂的问题,我认为简单的随机数字是行不通的,因为有概率的元素。

解决这两个问题的正确工具/算法是什么?

【问题讨论】:

  • 对我来说听起来像 frequent itemset miningsequential pattern mining
  • 正如所写,这个问题对于 Stack Overflow 来说太宽泛了。我会投票关闭过于广泛,但无法关闭开放赏金的问题。正如@larsmans 指出的那样,这是一个data mining 问题,其解决方案比此处合理大小的答案所能解释的要复杂得多。去阅读数据挖掘技术,尝试一些事情,如果你的实现有问题,回来问具体的问题。
  • @JimMischel,感谢您的意见,但您期望的特异性是什么?我确实尝试过图论(基于自定义距离矩阵的算法)和数据挖掘(通过 Mahout 进行聚类算法)。照原样,您的评论并不能帮助我理解您的担忧。如果你能像 larsmans 一样,让我知道你指的是数据挖掘的哪一部分,那将有很大帮助。
  • @larsmans,愿意回答吗?
  • @CMR,这不是一个正确的答案。这只是一个寻找文献的建议。

标签: algorithm language-agnostic sequence analytics cluster-analysis


【解决方案1】:

把它翻译成图论。制作一个有向加权图,其中顶点是数字,每个顶点都连接到其他每个顶点,A-->B 边上的权重是集合中 B 跟随 A 的次数。现在的问题是在这个图中找到权重最高的哈密顿路径,它基本上是一个不对称的Travelling salesman problem。请注意,在 TSP 中,通常会找到最短路径而不是最长路径,但您可以通过否定所有权重来克服这个问题,尽管我不确定负权重是否适用于所有算法。

我建议使用针对增量数据优化的ant colony optimization 算法,但我不是图论专家。

【讨论】:

  • 我确实尝试了图论解决方案。他们帮助解决问题的第一部分,而不是第二部分。
  • @CMR 我描述的是问题第二部分的可能解决方案,尽管可能有一些更容易解决的问题抽象。
猜你喜欢
  • 2017-12-23
  • 1970-01-01
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多