首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多项式时间序列降维TensorFlow中的张量分解

多项式时间序列降维TensorFlow中的张量分解
EN

Data Science用户
提问于 2017-05-23 19:11:58
回答 1查看 1.3K关注 0票数 2

我在做多项时间序列的无监督学习(聚类和DR)。我需要减少数据的维数,这是稀疏的,并且有很多维数。我意识到某种形式的张量分解可能是最好的方法。我所拥有的是一组样本,每个样本都有一组及时的特性。每个时间长度可以不同,但是每个样本都有相同的特征。

希望最终得到的是一组具有单一功能的示例。这样,我就可以使用动态时间翘曲确定的距离来进行聚类。

整个计划听起来是否合理?

TensorFlow有一个特性tf.qr (https://www.tensorflow.org/api_docs/python/tf/qr),它可以进行张量分解,但我不太了解它背后的输出或数学,无法充分利用它。我试着用看似成功的方式运行它,但我不明白Q和r输出张量中存储了什么。如果有人能向我解释这一点,如果这甚至适用于我想做的事情,我会非常感激的。

此外,我尝试使用scikit张量的cp分解(https://github.com/mnick/scikit-tensor/blob/master/sktensor/cp.py)来返回单个张量。我也不明白存储在这个输出中的是什么,或者它是否做了类似于TensorFlow的tf.qr函数,或者与我想做的事情有关。

就像你现在可能知道的那样,我在数学上完全迷失了方向。我试图找到关于这些函数是如何工作的解释,但我不能不跳到多重线性代数,而我不明白。如果有人能指出正确的方向,我会非常感激的。

编辑:

如果s1和s2是两个多维时间序列,那么就应该计算它们之间的距离。我在python中尝试过,它实际上输出了一个数字,但我不知道我是否正确地理解了这一点。它的行为与DTW在一维上的行为相同,但在计算给定时间点的距离时,它采用的是所有特征的MSE之和,而不是其中的一个。而且,这个DTW函数有一个时间窗口,设置为10,但当然可以更改.

代码语言:javascript
复制
def MDTWDistance(s1, s2, window=10, num_columns=1):

    DTW={}
    w = max(window, abs(len(s1)-len(s2)))

    for i in range(-1,len(s1)):
        for j in range(-1,len(s2)):
            DTW[(i, j)] = float('inf')
    DTW[(-1, -1)] = 0

    for i in range(len(s1)):
        for j in range(max(0, i-w), min(len(s2), i+w)):
            dist= mdist(s1.loc[i], s2.loc[j], num_columns)
            print i, j, dist
            DTW[(i, j)] = dist + min(DTW[(i-1, j)],DTW[(i, j-1)], DTW[(i-1, j-1)])

    return np.sqrt(DTW[len(s1)-1, len(s2)-1]) 

和..。

代码语言:javascript
复制
def mdist(a, b, num_col):

    dist = 0
    for col in range(num_col):
        dist = dist + (a[col]-b[col])**2
        print a[col], b[col]
    return dist

这样做是否像我认为的那样/报纸上说的是合适的?

EN

回答 1

Data Science用户

发布于 2017-05-24 00:18:10

“每次时间长度可以不同,但每个样本都有相同的特征。”您可以使它们的长度相同,请参阅http://www.cs.ucr.edu/~eamonn/DTW_myths.pdf的神话1

如果多项时间序列是“相关的”,请参见http://www.cs.ucr.edu/~eamonn/Multi-Dimensional_DTW_Journal.pdf的图1,否则这是一个非常糟糕的想法。

“这样,我就可以使用动态时间偏差确定的距离进行聚类。”当然,但是您可以在DTW下使用多项时间序列进行聚类。见一个。

--

一个 Nurjahan Begum,Liudmila Ulanova,Jun Wang,Eamonn Keogh (2015年)。用一种新的容许剪枝策略SIGKDD 2015加速动态时间翘曲聚类

票数 1
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/19153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档