随机森林文本分类在预测中给出额外的行

时间:2018-03-16 14:41:52

标签: r machine-learning random-forest text-classification

我使用随机森林进行文本分类。我的输入数据有17197行。

> nrow(sparse_4testing)
[1] 17197

我正在使用

set.seed(123)
tweetRand = randomForest(label ~ ., data = train_sparse, importance=TRUE, nTree=500)

predicrRand_test=predict(tweetRand, data=sparse_4testing)
q1=data.frame(ifelse(predicrRand_test>0.5,1,0))

问题是当我进行健全性检查时,我在q1

中获得额外的行
> nrow(q1)
[1] 22373  

我不明白这个问题。我是机器学习的新手。请帮帮我。 我多次运行模型。仍然遇到同样的问题。

> nrow(predicrRand_test)

NULL
> head(predicrRand_test)
            1             3             6             7             9            10 
 1.858321e-01 -8.326673e-17  1.321640e-01  2.222222e-04  2.345304e-02  1.651133e-01 
> head(q1)
   ifelse.predicrRand_test...0.05..1..0.
1                                      1
3                                      0
6                                      1
7                                      0
9                                      0
10                                     1

> length(predicrRand_test)
[1] 22373

1 个答案:

答案 0 :(得分:0)

问题是由于predict中的参数名称错误 - 它应该是newdata,而不是datadocs):

predicrRand_test=predict(tweetRand, newdata=sparse_4testing)

就像现在一样,您的代码会忽略data参数,只返回predicrRand_test数据框中训练集的预测。