Ошибка кластеризации K-средних: только 0 могут быть смешаны с отрицательными индексами - PullRequest
2 голосов
/ 26 февраля 2020

Я пытаюсь выполнить кластеризацию kmeans на данных IRIS в R. Я хочу использовать опцию KKZ для выбора начальных значений (начальные точки кластеров).

Если я не стандартизирую данные, у меня нет проблем с команда KKZ:

library(inaparc)
res<- kkz(x=iris[,1:4], k=3) 
seed <- res$v        # this gives me the cluster seeds based on KKZ method
k1 <- kmeans(iris[,1:4], seed, iter.max=1000)

Однако, когда я сначала масштабирую данные, команда kkz выдает ошибку:

library(ClusterR)
dat <- center_scale(iris[1:4], mean_center = TRUE, sd_scale = TRUE)  # scale iris data
res2 <- kkz(x=dat, k=3)
**Error in x[-x[i, ], ] : only 0's may be mixed with negative subscripts**

Я думаю, что это вещь индексации массива, но я не уверен что это такое и как это решить.

1 Ответ

1 голос
/ 15 марта 2020

По какой-то причине kkz не может принимать что-либо со смесью положительных и отрицательных значений. У меня много проблем с его запуском, например:

#ok
set.seed(1000)
kkz(matrix(rnorm(1000,5,1),100,10),3)
# not ok
kkz(matrix(rnorm(1000,0,1),100,10),3)
Error in x[-x[i, ], ] : only 0's may be mixed with negative subscripts

Вам не нужно центрировать ваши значения, поэтому вы можете сделать:

dat <- center_scale(iris[1:4], mean_center = FALSE, sd_scale = TRUE)
res2 <- kkz(x=dat, k=3)

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...