Как назначить новые кластеры с помощью kkmeans (пакет kernlab) - PullRequest
0 голосов
/ 29 мая 2018

Функция kkmeans из пакета kernlab формирует K-средства Kernl в определенном наборе данных.Однако, когда я запускаю функцию, она возвращает мне только центры, размер кластера и сумму квадратов внутри кластера.Вот пример

library(kernlab)
test<-kkmeans(as.matrix(iris[,-5]),3)
test

Но меня интересует классификация кластеров членов каждого наблюдения.Кто-то знает, как хранить эти значения в векторе?

1 Ответ

0 голосов
/ 29 мая 2018

Если вы посмотрите на переменную test, вы увидите, что членство в кластере хранится в компоненте .Data.Вы можете получить к нему доступ с помощью следующего:

cluster_membership <- test@.Data
print(cluster_membership)

Вывод:

[1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 3 2 2 2 3 2 3 3 2 3 2 3 2 2 3 2 3 2 2 2 2
[75] 2 2 2 2 2 3 3 3 3 2 3 2 2 2 3 3 3 2 3 3 3 3 3 2 3 3 3 2 3 3 3 3 3 3 3 3 3 3 3 2 3 3 3 3 3 2 3 3 3 2 3 3 2 2 3 3 3 3 3 2 3 3 3 3 2 3 3 3 3 3 3 3 2 3
[149] 3 2

Однако вы можете использовать саму тестовую переменную для построения графиков, если хотите, поскольку она расширяет vector класс как specc объект:

plot(iris, col=test)

kkmeans plot

...