如何使用 rpart 中的所有功能?

Posted

技术标签:

【中文标题】如何使用 rpart 中的所有功能?【英文标题】:How to use all features in rpart? 【发布时间】:2014-11-18 03:13:11 【问题描述】:

我正在使用 rpart 包进行决策树分类。我有一个包含大约 4000 个特征(列)的数据框。我想为我的模型使用rpart() 中的所有功能。我怎样才能做到这一点?基本上rpart()会要求我这样使用函数:

dt <- rpart(class ~ feature1 + feature2 + ....)

我的特征是文档中的单词,所以我有超过 4k 个特征。每个特征都用一个词来表示。有没有可能在不编写它们的情况下使用所有功能?

【问题讨论】:

【参考方案1】:

caret 库非常有用,因为您可以轻松应用不同的模型并比较它们的性能。它可以调用rpart,但使用稍微不同的语法来包含所有功能。

library(caret)

library(data.table)

mt <- data.table(mtcars)

tr <- train(x=mt[,-'hp', with=FALSE], y = mt[, hp], method='rpart')

plot(tr$finalModel)
text(tr$finalModel)

将所有 4000 个特征用于决策树可能会导致过度拟合,尤其是在您的观察数量不多的情况下。 Caret 提供内置的交叉验证。您可能还想查看 model='rf' 的随机森林。

【讨论】:

【参考方案2】:

我想通了:

dt <- rpart(class ~ ., data)

“。”代表所有特征。

【讨论】:

以上是关于如何使用 rpart 中的所有功能?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用rpart或party包过滤R中决策树中的自变量

如何处理“rpart”中的连续和离散变量 - 使用 R 的决策树?

rpart中的Minbucket和权重

如何从回归树 rpart 对象生成预测区间?

如何让 rpart 处理更多的因素?

如何在 R 中返回库的多个对象?