r - R dtw 包:二进制数据的查询和参考向量以将其传递给 dtw 函数
问题描述
我有两个看起来像这样的时间序列表。
我计算了二进制列来计算特定的分类值,如果这个值 = “x”,则分配 1,否则分配 0。我使用 ggplot 像这样绘制它,
p <-ggplot(x1,aes(Time, binary))
p + geom_line()+
xlab("Time in seconds (s)")+
scale_y_continuous(name="x = 1, anything else = 0", breaks=c(0, 1))+
labs(title = "Example of the duration")
我得到了我想要的,
现在是时候使用dtw 函数来计算距离了。我不确定如何将这个二进制数据存储到进位或矩阵中以通过 dtw 函数在这里传递,
dtw(
x,
y = NULL,
dist.method = "Euclidean",
step.pattern = symmetric2,
window.type = "none",
keep.internals = FALSE,
distance.only = FALSE,
open.end = FALSE,
open.begin = FALSE,
...
)
其中 x 是查询向量或本地成本矩阵,y 是参考向量,如果 x 作为本地成本矩阵给出,则为 NULL
我做的是这个,
i<-c(x1$binary)
j<-c(x2$binary)
dtw1 <-dtw(i, j, dist.method="Euclidean", keep.internals = T, step.pattern= symmetric)
plot(dtw1)
但这是不正确的。每一个的图表都不相同,如下所示。矩阵成本为空。它只计算每列的 0,1 的数量。我知道这是不正确的,但我不知道如何获取查询和参考向量来计算 dtw。如何将其应用于此二进制数据?
解决方案
我所做的是,我没有将二进制值分配给 dtw 函数,而是使用了时间。
i<-c(x1$Time)
j<-c(x2$Time)
dtw1 <-dtw(i, j, dist.method="Euclidean", keep.internals = T, step.pattern= asymmetric)
plot(dtw1)
推荐阅读
- python - FastAPI jsonencoder 总是返回 camelCase 而不是 snake_case
- java - Java 变量值变化监听器
- f# - 但它是:“EntryPointAttribute”属性必须是最后一个文件中的最后一个声明
- javascript - “null”类型的参数不能分配给角度 11 上“HttpClient”类型的参数
- prolog - 序言:无向图问题:一个方向的路径有效,但另一个方向的无限循环
- ruby-on-rails - jsonapi::Serializer 在 Association belongs_to / has_many 中指定外键
- laravel - 未定义类型 'Spatie\Translatable\HasTranslations'
- java - java.lang.IndexOutOfBoundsException:索引:1,大小:1 在 java.util.ArrayList.get(ArrayList.java:437)
- python - 如何创建一个组合框来保存用户输入小部件的输入?
- javascript - 动态更改 Javascript 文件的子资源完整性?