在R中使用mclust函数运行聚类分析时出错

时间:2019-02-18 17:26:21

标签: mclust

在测试数据集上运行mclust时,出现以下错误:

cdensEEV中的错误(数据=数据,对数= TRUE,参数=参数,:   外部函数调用中的NA / NaN / Inf(arg 1) 另外:警告消息: 在cdensEEV(data = data,logarithm = TRUE,parameters = parameters,:   强制引入的NAs

我的代码如下:

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值,而当我之前在“每周”数据集中进行此操作时,我没有任何问题。

有人可以帮忙吗?预先谢谢你。

亚当

1 个答案:

答案 0 :(得分:0)

因此,与其说是解决方法,不如说是一个答案。数据集中的变量之一是车辆的名称,因此当我删除该变量时,它实际上与分析没有关系,并相应地调整了火车和测试符号(例如X.train <-Auto [,- 9]),摘要适用于以上代码中的MclustDA,也适用于您添加modelType =“ EDDA”的情况。