Просто скажите, что у меня есть некоторые немаркированные данные, которые, как я знаю, должны быть сгруппированы в шесть категорий, как, например, этот набор данных:
library(tidyverse)
ts <- read_table(url("http://kdd.ics.uci.edu/databases/synthetic_control/synthetic_control.data"), col_names = FALSE)
Если я создаю hclust
объект с выборкой 60 изисходный набор данных, например, так:
n <- 10
s <- sample(1:100, n)
idx <- c(s, 100+s, 200+s, 300+s, 400+s, 500+s)
ts.samp <- ts[idx,]
observedLabels <- c(rep(1,n), rep(2,n), rep(3,n), rep(4,n), rep(5,n), rep(6,n))
# compute DTW distances
library(dtw)#Dynamic Time Warping (DTW)
distMatrix <- dist(ts.samp, method= 'DTW')
# hierarchical clustering
hc <- hclust(distMatrix, method='average')
Я знаю, что затем я могу добавить метки в дендрограмму для просмотра следующим образом:
observedLabels <- c(rep(1,), rep(2,n), rep(3,n), rep(4,n), rep(5,n), rep(6,n))
plot(hc, labels=observedLabels, main="")
Однако я бы хотел, чтобы правильные меткиначальный кадр данных, который был кластеризован.Поэтому для ts.samp
я хотел бы добавить дополнительный столбец с правильной меткой, в которую было кластеризовано каждое наблюдение.
Казалось бы, ts.samp$cluster <- hc$label
должен добавить кластер к фрейму данных, однако hc$label
возвращает NULL
.
Может ли кто-нибудь помочь с извлечением этой информации?