Ошибка при запуске кластерного анализа с использованием функции mclust в R
При запуске mclust для моего тестового набора данных я получаю следующую ошибку:
Ошибка в cdensEEV(данные = данные, логарифм = ИСТИНА, параметры = параметры,: NA/NaN/Inf при вызове сторонней функции (аргумент 1) Дополнительно: Предупреждение: В cdensEEV(данные = данные, логарифм = ИСТИНА, параметры = параметры),: НС введены по принуждению
Мой код ниже:
library(ISLR)
attach(Auto)
library(mclust)
library(MASS)
library(class)
attach(Weekly)
Auto$mpg01 <- ifelse(Auto$mpg > median(Auto$mpg),1,0)
odd <- seq(from = 1, to = nrow(Auto), by = 2)
even <- seq(from = 2, to = nrow(Auto), by = 2)
X.train <- Auto[odd, -10]
Class.train <- Auto[odd, 10]
X.test <- Auto[even, -10]
Class.test <- Auto[even, 10]
AutoMclustDA <- MclustDA(X.train, Class.train)
summary(AutoMclustDA, parameters = TRUE)
summary(AutoMclustDA, newdata = X.test, newclass = Class.test)
При запуске первоначальной сводки все работает нормально, но когда я запускаю вторую сводку, а именно часть newclass = Class.test, я получаю эту ошибку. У меня нет значений NA в наборе данных, и когда я делал это ранее для набора данных Weekly, у меня не было проблем.
Кто-нибудь может помочь? Заранее спасибо.
Адам
1 ответ
Таким образом, не столько ответ, сколько обходной путь. Одной из переменных в наборе данных является название транспортного средства, поэтому, когда я удалил эту переменную, которая действительно не имеет отношения к анализу, и соответственно скорректировал обозначения поезда и теста (например, X.train <- Auto [, - 9]), резюме работает, как для MclustDA, как в приведенном выше коде, а также при добавлении в modelType = "EDDA".