Я выполнил кластеризацию, теперь я хочу использовать ее для замены отсутствующих значений. Моя идея состоит в том, чтобы вычислить представителя для каждого кластера, а затем заменить отсутствующие значения в соответствии с этим представителем. Проблема в том... Я действительно не знаю, как это сделать.
Я искал об этом и нашел этот вопрос, который, кажется, почти отвечает на мою проблему (найти представителя мне тоже помогло бы), но я недостаточно понимаю его, чтобы использовать его.
library(data.table)
library(dplyr)
library(tidyr)
library(TSclust)
set.seed(1)
df = data.table(
"Time" = c(1,2,3,4,5),
"1" = runif(5),
"2" = runif(5),
"3" = runif(5),
"4" = runif(5),
"5" = runif(5),
"6" = runif(5))
clusters = hclust(diss(ts(df[,-1]), "EUCL"))
tree = cutree(clusters, 3)
rep = df%>%
gather(key = ID,value = Conso, -Time)%>%
mutate(Cluster = as.vector(sapply(tree, FUN = rep,times = 5)))%>%
group_by(Cluster, Time)%>%
summarise(Conso = mean(Conso))
Вот что-то близкое к моим реальным данным, а вот какой-то наивный способ вычислить некоторых представителей.
Это на самом деле нормальный способ сделать это? Знаете ли вы, как извлечь этих представителей из кластеров?