Иерархическая кластеризация с R

Учтите несколько моментов:

A = (1, 2.5), B = (5, 10), C = (23, 34), D = (45, 47), E = (4, 17), F = (18, 4)

Как я могу выполнить для них иерархическую кластеризацию с помощью R?
Я прочитал этот пример Cluster Analysis но я не уверен, как вводить эти значения в виде точек, а не просто чисел.

Когда я делаю

x <- c(...) #x values
y <- c(...) #y values

Я могу построить их, используя

plot(x,y)

Но как я могу указать эти значения, как в примере:

mydata <- scale(mydata)

Делает

mydata <- scale(x,y)

Я получаю следующую ошибку

Error in scale.default(x, y) : 
  length of 'center' must equal the number of columns of 'x'

person Evgenij Reznik    schedule 08.11.2014    source источник


Ответы (1)


Что-то вроде этого??

A = c(1, 2.5); B = c(5, 10); C = c(23, 34)
D = c(45, 47); E = c(4, 17); F = c(18, 4)
df <- data.frame(rbind(A,B,C,D,E,F))
colnames(df) <- c("x","y")
hc <- hclust(dist(df))
plot(hc)

Это помещает точки во фрейм данных с двумя столбцами, x и y, затем вычисляет матрицу расстояний (попарное расстояние между каждой точкой и каждой другой точкой) и выполняет иерархический кластерный анализ.

Затем мы можем построить данные с раскраской по кластерам.

df$cluster <- cutree(hc,k=2)    # identify 2 clusters
plot(y~x,df,col=cluster)

введите описание изображения здесь

person jlhoward    schedule 08.11.2014
comment
Можно ли указать критерии привязки, такие как одиночная или полная связь? - person Evgenij Reznik; 09.11.2014
comment
Прочтите документацию по hclust(...), уделяя особое внимание аргументу method=... (введите ?hclust в командной строке R). - person jlhoward; 09.11.2014