Ошибка R в if (nrow(emobj $ Mu) != nclass || ncol(emobj $ Mu) != p || nrow(emobj $ LTSigma) != : отсутствует значение, где требуется TRUE / FALSE

#r #cluster-analysis #expectation-maximization

#r #кластерный анализ #ожидание-максимизация

Вопрос:

Я получаю следующую ошибку при использовании библиотеки EMCluster в R:

 Error in if (nrow(emobj$Mu) != nclass || ncol(emobj$Mu) != p || nrow(emobj$LTSigma) !=  : 
missing value where TRUE/FALSE needed
 

Это код, который я написал:

 emcluster(iris[,-5], pi = NULL, Mu = NULL, LTSigma = NULL,
      lab = NULL, EMC = .EMC, assign.class = FALSE)
 

Я использую набор данных Iris.

Моя цель — запустить алгоритм кластеризации EM и описать мои наблюдения с помощью графиков и т.д.

Ответ №1:

Вам необходимо указать параметры, или вы можете инициализировать EM и указать, что:

 library(EMCluster)

emobj <- simple.init(iris[,-5], nclass = 3)
mdl <- emcluster(iris[,-5], emobj = emobj, assign.class = TRUE)

table(mdl$class,iris$Species)
   
    setosa versicolor virginica
  1      0          0        15
  2      0         50        35
  3     50          0         0