Я применяю функции из пакета flexclust для жесткой конкурентной учебной кластеризации, и у меня возникают проблемы с конвергенцией.
Я использую этот алгоритм, потому что я искал метод для выполнения взвешенной кластеризации , давая различные веса группам переменных. Я выбрал сложное конкурентное обучение на основе ответа на предыдущий вопрос ( Weighted Kmeans R ).
Я пытаюсь найти оптимальное количество кластеров, и для этого я использую Функция stepFlexclust со следующим кодом:
new("flexclustControl") ## check the default values
fc_control <- new("flexclustControl")
fc_control@iter.max <- 500 ### 500 iterations
fc_control@verbose <- 1 # this will set the verbose to TRUE
fc_control@tolerance <- 0.01
### I want to give more weight to the first 24 variables of the dataframe
my_weights <- rep(c(1, 0.064), c(24, 31))
set.seed(1908)
hardcl <- stepFlexclust(x=df, k=c(7:20), nrep=100, verbose=TRUE,
FUN = cclust, dist = "euclidean", method = "hardcl", weights=my_weights, #Parameters for hard competitive learning
control = fc_control,
multicore=TRUE)
Однако алгоритм не сходится даже с 500 итерациями. Буду признателен за любое предложение. Должен ли я увеличить количество итераций? Является ли это индикатором того, что что-то еще идет не так, или я ошибся с командами R?
Заранее спасибо.