【问题标题】:Train a random forest algorithm using various columns使用各种列训练随机森林算法
【发布时间】:2017-08-06 13:09:51
【问题描述】:

我之前在这里问过这个问题:Creating a loop for different random forest training algoritms 但还没有得到正确的答案。因此,特此再次尝试使用更具重现性的示例。

我有以下数据集:

train <- read.csv(url("http://s3.amazonaws.com/assets.datacamp.com/course/Kaggle/train.csv"))
test <- read.csv(url("http://s3.amazonaws.com/assets.datacamp.com/course/Kaggle/test.csv"))
train <- train[complete.cases(train), ]

我想运行几个随机森林算法,看看哪一个表现最好。所以我基本上想做的是:

#predict based on Pclass
fit <- randomForest(as.factor(Survived) ~ Pclass, data=train, importance=TRUE, ntree=2000)
Prediction <- predict(fit, test)
#fetch accuracy


#predict based on Pclass and Sex
fit <- randomForest(as.factor(Survived) ~ Pclass + Sex, data=train, importance=TRUE, ntree=2000)
Prediction <- predict(fit, test)
#fetch accuracy

我想创建某种循环,以便我可以将所有值存储在一个列表中,然后循环遍历它。像这样:

list <- c(Pclass, Pclass + Sex)


for (R in list) {
  modfit <- paste0("won ~ ", R, ", data=training, method=\"rf\", prox=\"TRUE")
  modfit <- as.formula(modfit)
 train(modfit)
 }

但上面的代码不起作用。它给了我以下错误:

Error in parse(text = x, keep.source = FALSE) : 
<text>:1:13: unexpected ','
1: won ~ Pclass,

有什么想法可以让这个工作吗?

【问题讨论】:

    标签: r random-forest


    【解决方案1】:
    for (R in list) {
     modfit <- paste0("won ~ ", R, "data=training, method=\"rf\", prox=\"TRUE")
     modfit <- as.formula(modfit)
     train(modfit)
     }
    

    你可能在 data=training 之前有一个逗号,不需要在那里

    【讨论】:

      猜你喜欢
      • 2017-01-22
      • 2018-06-13
      • 2012-10-25
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 2018-12-06
      • 2016-04-10
      相关资源
      最近更新 更多