R中的时间序列层次聚类按列
Time Series Hierarchical Clustering in R column-wise
我正在尝试使用 tsclust 进行时间序列聚类,我的数据集如下所示:
我有超过 500 个时间序列,每个时间序列有八个观测值,每个观测值都在同一时间线上。我对它应用了 tsclust 但按时间而不是按系列获得了集群(如下所示):
后来我发现tsclust只能按行工作。(来自www.rdocumentation.org/packages/dtwclust/versions/3.1.1/topics/tsclust)
是否还有其他类似的函数可以用来完成聚类分析?或者我怎样才能改变我的数据格式来做到这一点?
我的原始代码如下所示:
tst<-read.csv("data.csv", stringsAsFactors = TRUE)
tst<-xts(tst[,-1], order.by = as.Date(paste0(tst[,1])))
par(mar=c(1,1,1,1))
plot.xts(tst)
series <- zscore(tst)
hc.sbd <- tsclust(series, type = "h", k = 6L,
preproc = zscore, seed = 233,
distance = "sbd", centroid = shape_extraction,
control = hierarchical_control(method = "average"))
plot(hc.sbd)
plot(hc.sbd, type = "sc")
感谢任何帮助。提前谢谢你。
使用 t
转置您的数据。
将列转换为行。
我正在尝试使用 tsclust 进行时间序列聚类,我的数据集如下所示:
我有超过 500 个时间序列,每个时间序列有八个观测值,每个观测值都在同一时间线上。我对它应用了 tsclust 但按时间而不是按系列获得了集群(如下所示):
后来我发现tsclust只能按行工作。(来自www.rdocumentation.org/packages/dtwclust/versions/3.1.1/topics/tsclust)
是否还有其他类似的函数可以用来完成聚类分析?或者我怎样才能改变我的数据格式来做到这一点?
我的原始代码如下所示:
tst<-read.csv("data.csv", stringsAsFactors = TRUE)
tst<-xts(tst[,-1], order.by = as.Date(paste0(tst[,1])))
par(mar=c(1,1,1,1))
plot.xts(tst)
series <- zscore(tst)
hc.sbd <- tsclust(series, type = "h", k = 6L,
preproc = zscore, seed = 233,
distance = "sbd", centroid = shape_extraction,
control = hierarchical_control(method = "average"))
plot(hc.sbd)
plot(hc.sbd, type = "sc")
感谢任何帮助。提前谢谢你。
使用 t
转置您的数据。
将列转换为行。