【发布时间】:2019-09-16 13:51:57
【问题描述】:
我正在研究文本挖掘过程并使用随机森林将文本分类。 我在处理我的文本后使用 caret 包。 我拆分数据进行训练和测试, 下面是相同后的R代码:
traindata <- tdm_df[s,] # training set
testdata <- tdm_df[-s,] # testing set
rf.tfidf <- train(traindata[,c(1:69)], train[,70],
method = "rf", trControl = ctrl) # train random forest
rf.tfidf
当我运行最后一行时,出现以下错误:
Error in `[.data.frame`(train, , c(1:56)) : undefined columns selected
编辑1:更正后的下一个错误:
Error in train[1:5, ] : object of type 'closure' is not subsettable
我看到 term_sparse 给了我一个问题,可能是文本挖掘部分,我该如何改善我的结果?
不确定是什么问题。 请帮忙!
【问题讨论】:
-
dim(train)的结果是什么? -
[1] 693 5,我现在看到了这个问题,但我不明白为什么,我应该得到至少 50 个术语。你能帮帮我吗?我在问题编辑中添加了完整的代码。 @kath
-
可能是因为这个说法:
tdm_sparse <- removeSparseTerms(tdm, 0.90)Columns/ Sparse Words 被删除了。 -
首先,不要给对象和函数同名。所以你的训练数据没有
train。其次,方法rpart不是选择randomForest,而是递归分区。你需要方法rf。检查您的训练数据是否实际上有 57 列。我们无权访问 notes 数据,请使用 tm 附带的原始数据集来制作完全可重现的示例。 -
@phiver,注意到,我会做出必要的改变。我已经在问题中添加了前 20 行作为 dput 输出,它可以帮助您理解我的数据。请帮帮我。
标签: r random-forest text-mining