【问题标题】:Clustering "access-time" data sequences聚类“访问时间”数据序列
【发布时间】:2020-09-23 02:23:54
【问题描述】:

我有很多这样的数据序列:

s1 = t11, t12, ..., t1m_1

s2 = t21, t22, ..., t2m_2

...

si = ti1, ti2, ..., tim_i

si means the i-th sequence, tij means the i-th sequence be accessed at time tj

每个序列的数据长度不同(m_1可能不等于m_2),

每个序列的数据表示序列si被访问的时间为ti1, ti2, ..., tim_i。

我的目标是对相似的访问时间序列进行聚类。

我不确定是否可以将此问题转化为时间序列问题。

就我的理解而言,每个序列的数据都像股票数据一样表示当时的值,但我的序列值表示访问序列的时间。

如果它可以转化为时间序列问题,但还有另一个问题。问题是序列的访问时间非常离散(可能在1s、1000s、2000s时访问),所以如果我翻译成时间序列格式,它的空间会很大,我认为这不能运行cluster with some (DTW)这样的算法,它的时间复杂度可能太大了。

【问题讨论】:

  • 欢迎来到 Stack Overflow!希望您觉得该网站有用。

标签: time-series cluster-analysis


【解决方案1】:

正如你所指出的,DTW 会很慢,因为比较前两个系列takes k * m_1 * m_2 operations

为避免这种情况并更轻松地比较您的序列,您可能会以某种方式将它们敲成相同的格式(因此也会丢失信息)。

这里有一些想法:

  1. 区分以获得访问之间的时间,并在所有数据中使用固定的 bin 构建直方图。
  2. 计算每周每分钟的访问次数(除以每个系列中出现的每周分钟数)。适应感兴趣的时间尺度。
  3. 统计“到目前为止的访问次数”。因此,您将获得每个时间戳(“密集”)的数据点,而不是仅在进行访问时获得数据点(“密集”),显示每分钟到当前的访问。

#3 类似于"integral image" in computer vision。在此之后,新的汇总技术出现了,例如移动平均线,甚至直接比较(如果记录并行发生)。

为了选择更有用的表示,您需要考虑在您的应用程序中什么是有意义的。

获得统一长度表示后,您可以使用更便宜的similarity measures。一个典型的例子是cosine similarity(但一定要先规范化)。

【讨论】:

    猜你喜欢
    • 2018-08-26
    • 2015-07-22
    • 1970-01-01
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 2018-01-18
    • 2016-06-14
    相关资源
    最近更新 更多