如何使用mclust::Mclust()基于单变量实现聚类与决策树构建
报错原因
报错是因为mclust包的模型命名规则存在维度适配要求:指定的EII、VII是2维及以上多元数据的球形协方差结构对应的模型名,无法适配单变量场景。
单变量高斯混合模型在mclust中有专用的模型名:
E:对应混合成分等方差的场景,等价于多元场景EII在1维下的表现V:对应混合成分异方差的场景,等价于多元场景VII在1维下的表现
修复方案
将模型名替换为单变量适配的取值即可正常运行:
library(mclust) # 单变量聚类改用对应单变量模型名 ModelloT1 <- Mclust(attitude[2], modelNames = c("E", "V")) # 输出BIC结果 ModelloT1$BIC
如果不确定当前数据维度适配的模型范围,也可以省略modelNames参数,Mclust()会自动匹配当前维度可用的所有模型计算择优。
同类工具选项
如果需要其他单变量聚类/混合模型工具,可选择:
mixtools::normalmixEM():专门针对单变量高斯混合模型的实现,参数配置更灵活stats::kmeans():可实现单变量硬聚类,适合不需要概率输出的场景Ckmeans.1d.dp包:专门优化的1维动态规划聚类算法,聚类结果稳定性更高
内容的提问来源于stack exchange,提问作者Filippo
相关产品推荐
相关产品推荐

