我有许多如下所示的数据序列:
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),所以如果我将其转换为时间序列格式,它的空间将非常大,我认为这不能运行像(DTW)这样的算法集群,它的时间复杂度可能太大。
发布于 2020-06-05 22:05:49
正如您所指出的,由于比较前两个系列的takes k * m_1 * m_2 operations,DTW将会相当慢。
为了避免这种情况,并更容易地比较您的序列,您可能会以某种方式将它们敲打成相同的格式(从而也会丢失信息)。
以下是一些想法:
#3将类似于"integral image" in computer vision。在此之后,新的摘要技术出现了,比如移动平均,甚至是直接比较(如果记录是并行发生的)。
为了选择更有用的表示,您需要考虑在应用程序中什么是有意义的。
得到统一长度的表示后,您可以使用更便宜的similarity measures。一个典型的例子是cosine similarity (但一定要先规范化)。
https://stackoverflow.com/questions/62188907
复制相似问题