聚类和决策树

Posted

技术标签:

【中文标题】聚类和决策树【英文标题】:Cluster and Decision Tree 【发布时间】:2021-12-31 23:26:45 【问题描述】:

我正在努力使用 R 进行一些分析:到目前为止,我已经完成了一些。

我想只使用一个变量来构建树,但mclust::Mclust() 似乎不可能。理论上应该问题不大。

这是一个使用 altitude 内置数据集的可重现示例:

library(mclust)
#> Package 'mclust' version 5.4.8
#> Type 'citation("mclust")' for citing this R package in publications.
# Using 2 variables it works as expected
ModelloT1 <- Mclust(attitude[1:2],modelNames = c("EII", "VII"))
ModelloT1$BIC
#> Bayesian Information Criterion (BIC): 
#>         EII       VII
#> 1 -483.9666 -483.9666
#> 2 -472.9461 -471.5116
#> 3 -462.3355 -467.6628
#> 4 -472.5525 -478.1093
#> 5 -481.2430 -485.7124
#> 6 -478.3516 -489.8570
#> 7 -485.2181        NA
#> 8 -488.2741        NA
#> 9 -492.2669        NA
#> 
#> Top 3 models based on the BIC criterion: 
#>     EII,3     VII,3     VII,2 
#> -462.3355 -467.6628 -471.5116

# But I can't use a single variable
ModelloT1 <- Mclust(attitude[2],modelNames = c("EII", "VII"))
#> Error in `[<-`(`*tmp*`, "1", mdl, value = bic(modelName = mdl, loglik = out$loglik, : subscript out of bounds

由reprex package (v2.0.1) 于 2021 年 11 月 22 日创建

之后,我通常会做一个信息增益,然后是带有 J48 函数的决策树。

我可以使用mclust::Mclust() 或类似工具来构建具有单个变量的树吗?

【问题讨论】:

通过提供重现此错误的代码,使用所有人都可以使用的数据集,您将提高获得高质量答案的机会。 嗨!而不是实际的代码,我很想知道是否可以将 Mclust 与一个变量一起使用,或者是否应该使用另一个包或方法...... 我明白,但我向你保证,如果你提供可重现的代码,你会得到一个很好的答案,因为现在你可能不会(我希望你会!)。您当前的代码甚至在语法上都无效(缺少括号),并且您没有提及您正在使用哪个包。这往往会赶走可能知道如何帮助您的用户。这可能会有所帮助:***.com/questions/5963269/… 我试着照你说的做……你可以吗? 非常感谢!! 【参考方案1】:

如果您有 1 列,则您的数据是单变量而不是多变量。您不能使用 EIIVII,因为它们是用于多变量的。

?mclustModelNames 查看所有型号的列表。如果你这样做,你会看到:

‘"E"’ equal variance (one-dimensional)
‘"V"’ variable/unqual variance (one-dimensional)

因此,如果您执行以下操作,它将起作用:

df = data.frame(x = runif(100),y=runif(100))
Mclust(df,modelNames = c("EII", "VII"))
Mclust(df[['x']],modelNames = c("E","V"))

【讨论】:

非常感谢!!!

以上是关于聚类和决策树的主要内容,如果未能解决你的问题,请参考以下文章

决策树系列决策树基础

Lesson 8.1 决策树的核心思想与建模流程

通俗理解决策树

sklearn实践:决策树

决策树——ID3算法

从决策树学习谈到贝叶斯分类算法EMHMM(第一篇)