R中的错误 - model.frame.default中的错误(条款(重新制定(属性(条款)$ term.labels))

时间:2018-03-31 13:07:51

标签: r machine-learning random-forest

我遇到了随机森林抛出错误的问题。

我有这个数据框,其中包含已经是矩阵形式的推文数据,其中包含我想要预测的情感列。

'data.frame':   1000 obs. of  2155 variables:
 $ anoth                          : num  1 0 0 0 0 0 0 0 0 0 ...
 $ cancel                         : num  1 0 0 0 0 0 0 0 0 0 ...
 $ flight                         : num  2 1 0 0 0 0 0 0 1 0 ...
 $ hold                           : num  1 0 0 0 0 0 0 0 0 0 ...
 $ hour                           : num  2 0 0 0 0 0 0 0 0 0 ...
 $ ive                            : num  1 0 0 0 0 0 0 0 0 0 ...

这是我的randomForest抛出错误。

# convert to factor
dtm.df$sentiment <- as.factor(dtm.df$sentiment)

# create a decision tree model
model_rf <- randomForest(formula = sentiment ~ .,
                         data = dtm.df[train,],
                         importance = T, do.trace = F)

Factor w/ 2 levels "negative","positive": 1 1 1 1 1 1 1 1 1 1 ...

[1] negative negative negative negative negative negative negative negative
   [9] negative negative negative negative negative negative negative negative

我得到的错误是以下

Error in model.frame.default(terms(reformulate(attributes(Terms)$term.labels)),  : 
  type (special) incorrect variable 'next'

如果有人能帮我解决这个问题,我真的很感激

2 个答案:

答案 0 :(得分:1)

尝试使用querySelectorAll代替b。由于不需要复制数据,因此效率更高且更不易出错。

更多信息:https://stats.stackexchange.com/questions/37370/random-forest-computing-time-in-r

答案 1 :(得分:0)

我找到了适合我的解决方案。

基本上,我必须更改每个属性/功能的名称,并在末尾添加“_c”。这已经解决了错误,随机林工作得很好。

colnames(dtm.df) <- paste(colnames(dtm.df), "_c", sep = "")