聚类和决策树
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 列,则您的数据是单变量而不是多变量。您不能使用 EII
或 VII
,因为它们是用于多变量的。
?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"))
【讨论】:
非常感谢!!!以上是关于聚类和决策树的主要内容,如果未能解决你的问题,请参考以下文章