我正在使用rpart包进行决策树分类。我有一个包含大约 4000 个特征(列)的数据框。我想rpart()
为我的模型使用所有功能。我怎样才能做到这一点?基本上,rpart()
会要求我以这种方式使用该功能:
dt <- rpart(class ~ feature1 + feature2 + ....)
我的特征是文档中的单词,所以我有超过 4k 的特征。每个特征都用一个词来表示。有没有可能在不编写它们的情况下使用所有功能?
我正在使用rpart包进行决策树分类。我有一个包含大约 4000 个特征(列)的数据框。我想rpart()
为我的模型使用所有功能。我怎样才能做到这一点?基本上,rpart()
会要求我以这种方式使用该功能:
dt <- rpart(class ~ feature1 + feature2 + ....)
我的特征是文档中的单词,所以我有超过 4k 的特征。每个特征都用一个词来表示。有没有可能在不编写它们的情况下使用所有功能?
我想到了:
dt <- rpart(class ~ ., data)
“。” 代表所有特征。
该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'
随机森林。