我正在做高斯混合模型。我已经在数据集上完成了 kmeans,我想使用 R 中 em 算法的初始参数的均值、方差和大小。我发现参数是 3 个列表,我尝试做同样的事情,但它给我以下错误:
数组(x,c(长度(x),1L)中的错误,如果(!is.null(名称(x)))列表(名称(x),:“数据”必须是向量类型,为“空” '
我的代码
l <- kmeans(iris[,-5],centers=3)
pi <- l$size/length(iris[,1])
my <- t(l$centers)
sig <- vector("list", 3)
new <- as.data.frame(cbind(iris[,-5],l$cluster))
for (i in 1:3) {
subdata<-subset(new[,1:4],new[,5]==i);
sig[[i]]<-cov(subdata)
}
par <- vector("list",3)
par[[1]] <- pi; par[[2]] <- my; par[[3]] <- sig
kk <- em(modelName = msEst$modelName, data = iris[,-5],parameters = par)
有人可以告诉我应该如何将 kmeans 结果分配为初始参数吗?