R, hclust: как создать представителя для каждого кластера?

Я выполнил кластеризацию, теперь я хочу использовать ее для замены отсутствующих значений. Моя идея состоит в том, чтобы вычислить представителя для каждого кластера, а затем заменить отсутствующие значения в соответствии с этим представителем. Проблема в том... Я действительно не знаю, как это сделать.

Я искал об этом и нашел этот вопрос, который, кажется, почти отвечает на мою проблему (найти представителя мне тоже помогло бы), но я недостаточно понимаю его, чтобы использовать его.

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))

Вот что-то близкое к моим реальным данным, а вот какой-то наивный способ вычислить некоторых представителей.

Это на самом деле нормальный способ сделать это? Знаете ли вы, как извлечь этих представителей из кластеров?


person FBiggio    schedule 26.08.2019    source источник
comment
Когда дело доходит до временных рядов, многие исследователи утверждают, что средний центроид плохо репрезентативен, но это определенно возможно, и вы правильно его вычисляете. Если вы хотите больше информации.   -  person Alexis    schedule 26.08.2019
comment
В общем, стоит пройтись по этому: cran.r-project.org/ web/views/MissingData.html   -  person Tal Galili    schedule 28.08.2019
comment
Если у вас есть пропущенные значения, насколько хорошей будет ваша кластеризация? Его расстояние основано на расстоянии, и расстояния страдают от пропущенных значений. Итак, вы хотите сначала решить пропущенные значения...   -  person Has QUIT--Anony-Mousse    schedule 01.09.2019