首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >时间序列与连续数据和分类数据的比对

时间序列与连续数据和分类数据的比对
EN

Stack Overflow用户
提问于 2015-05-22 18:28:42
回答 1查看 279关注 0票数 1

我有一系列的时间测量,我想对齐。我有注解器在信号中判断和标记模棱两可的事件,并希望最佳地匹配它们的时间和事件。输入是四列:一个注释器的事件开始时间和标签,另一个注释器的时间和标签。例如(作为行):

代码语言:javascript
复制
annotator_1_times: .34, .39, .50, .68, .88

annotator_1_label:   A,   X,   Q,   L,   Z

annotator_2_times: .33, .41, .67, .90

annotator_2_label:   A,   X,   L,   X

注释器在解释相同的信号时不一定有相同数量的事件。注解器一般都有相似但不相同的标签,相似但不相同的时间。

如何做到这一点取决于某种成本函数--这将决定一段时间离开一定数量的情况有多“糟糕”,而两个标签则不同意。

在我的示例中,有一个理想的输出:

代码语言:javascript
复制
   annotator_1_times: .34, .39, .50, .68, .88

   annotator_1_label:   A,   X,   Q,   L,   Z

   annotator_2_times: .33, .41,  [], .67, .90    <-note gap inserted

   annotator_2_label:   A,   X,  [],   L,   X

然后我会做一些临时的事情:

代码语言:javascript
复制
time_mismatch_dif: .01, .02,  XX, .01, .02    <- for computing agreemt

label_mismatches_:   0,   0, ADD,   0, SUBST  <- for computing agreemt

最难的部分是知道在哪里插入缺口。

如果需要,我可以做数字对齐和单独只是标签对齐,然后以某种方式合并它们。我知道有字符对齐算法(例如在遗传学中),而且必须有时间序列对齐算法。

欢迎任何建议。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-22 18:38:14

您的问题非常类似于Levenshtein距离问题,您可以在那里适应相同的算法。

首先定义你的成本函数。

然后,在二次表上运行动态规划:对于每个ij计算ans[i][j],即第一个注释器中的第一个i事件和第二个注释器中的第一个j事件的“对齐成本”。这可以通过三种方式实现:

  • 要么你把ij对齐,然后ans[i][j]变成ans[i-1][j-1] + costAlignment(a[i],b[j])
  • 要么你对齐i和'gap',然后ans[i][j]变成ans[i-1][j] + costGap(a[i])
  • 要么你对齐j和'gap',然后ans[i][j]变成ans[i][j-1] + costGap(b[j])

您应该至少选择三个选项。

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

https://stackoverflow.com/questions/30403544

复制
相关文章

相似问题

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