如何在 R 中的 DTWCLUST 库中计算质心
How to calculate Centroid at DTWCLUST library in R
我在 r 中使用 DTWCLUST 包。这是我的代码。
library(dtwclust)
sc1 <- read.table("D:/handling data/confirm4.csv", header=T, sep="," )
hc_sbd <- dtwclust(sc1, type = 'h', k=5L, method = 'ward.D', preproc = zscore,
distance = 'dtw', control = list(trace=TRUE) )
clusters <- cutree(hc_sbd,6)
head(clusters)
result <- cbind.data.frame(sc1,clusters)
plot(hc_sbd, type='centroids', clus=1) + ylim(-3, 3) + scale_x_continuous( breaks = c(1,6,12,18,24,30,36,42), labels= real_label )
当我运行plot(hc_sbd, type='centroids', clus=1) + ylim(-3, 3) + scale_x_continuous( breaks = c(1,6,12,18,24,30,36,42), labels= real_label )
时,绘制了原型。
但是我不知道 PAM 是如何计算质心的,这是默认选项。任何人都可以帮助我理解 PAM 的概念以获得质心吗?
提前致谢。
在包中包含的实现中,
来自数据的 k 系列被随机选择作为初始质心。
然后计算所有系列和质心之间的距离
(如果预先计算,则从整个距离矩阵中检索),
并且每个系列都被分配到其最近的质心的集群。
对于每个创建的集群,
计算所有成员系列之间的距离(如有必要),
并且选择具有最小距离和的系列作为新的质心。
这将继续迭代,直到没有系列更改集群,
或已超过允许的最大迭代次数。
(如果您使用的是 dtwclust 版本 4.0.0 或更高版本,您应该使用 tsclust
函数)
我在 r 中使用 DTWCLUST 包。这是我的代码。
library(dtwclust)
sc1 <- read.table("D:/handling data/confirm4.csv", header=T, sep="," )
hc_sbd <- dtwclust(sc1, type = 'h', k=5L, method = 'ward.D', preproc = zscore,
distance = 'dtw', control = list(trace=TRUE) )
clusters <- cutree(hc_sbd,6)
head(clusters)
result <- cbind.data.frame(sc1,clusters)
plot(hc_sbd, type='centroids', clus=1) + ylim(-3, 3) + scale_x_continuous( breaks = c(1,6,12,18,24,30,36,42), labels= real_label )
当我运行plot(hc_sbd, type='centroids', clus=1) + ylim(-3, 3) + scale_x_continuous( breaks = c(1,6,12,18,24,30,36,42), labels= real_label )
时,绘制了原型。
但是我不知道 PAM 是如何计算质心的,这是默认选项。任何人都可以帮助我理解 PAM 的概念以获得质心吗?
提前致谢。
在包中包含的实现中, 来自数据的 k 系列被随机选择作为初始质心。 然后计算所有系列和质心之间的距离 (如果预先计算,则从整个距离矩阵中检索), 并且每个系列都被分配到其最近的质心的集群。 对于每个创建的集群, 计算所有成员系列之间的距离(如有必要), 并且选择具有最小距离和的系列作为新的质心。 这将继续迭代,直到没有系列更改集群, 或已超过允许的最大迭代次数。
(如果您使用的是 dtwclust 版本 4.0.0 或更高版本,您应该使用 tsclust
函数)