【问题标题】:How to fix "'.' in formula and no 'data' argument" when using randomForest function?怎么修 ”'。'使用 randomForest 函数时,公式中没有“数据”参数?
【发布时间】:2019-02-05 12:38:24
【问题描述】:

我正在尝试用我的数据构建一个随机森林回归模型。对于第一个参数,我编写了公式,然后指定了数据,最后编写了所需树的数量。

rf_model = randomForest(targetVar ~., data = train, ntree = 50)

执行这行代码时遇到的错误是:

Error in terms.formula(formula, data = data) : 
'.' in formula and no 'data' argument

是什么导致了错误?这是随机森林回归模型的一个非常简单直接的实现。此外,阅读有关错误的信息并没有产生任何有效的解决方案。

【问题讨论】:

  • 如何创建train 数据集?发布您创建数据集的行。
  • 我只是将其读取为 csv 文件:train
  • 好吧,colnames(train) 打印什么?
  • 哦,我刚刚注意到它打印了 Null!这是为什么呢?
  • 我明白了,数据框没有正确加载。

标签: r random-forest


【解决方案1】:

问题不在于randomForest 函数。它与 train 数据集以及您如何指示 randomForest 处理它有关。

  1. 您必须指导randomForest() 如何处理NA 值。例如,您必须设置na.action=na.omit
  2. 您的数据集变量太多 - randomForest 抱怨 53 个变量太多。

因此,作为示例,我将向您展示如何使其与 2 个变量一起使用。

train <- read.csv('<path to>/Train.csv', header=TRUE, sep = ",")
sales <- randomForest(Item_Outlet_Sales~Item_MRP+Item_Weight, data = train, ntree=50, na.action=na.omit)
sales

na.omit 不是唯一可用的函数。有关更多 NA 处理功能,请参阅文档。

您必须查看要使用的变量。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-30
    相关资源
    最近更新 更多