好的,我有一个数据框,包含对9个变量的250个观测值 . 为简单起见,我们只标记它们A - I.
我已经完成了所有标准的东西(将事物转换为int或factor,创建数据分区,测试和训练集等) .
我想要做的是使用A列和B列,并预测列E.我不想使用整个九列,只有这三列才能进行预测 .
我只尝试使用预测中的有限列,如下所示:
myPred <- predict(rfModel, newdata=myData)
其中rfModel是我的模型,myData只包含我想要使用的两个字段,作为数据帧 . 不幸的是,我收到以下错误:
predict.randomForest(rfModel,newdata = myData)中的错误:newdata中缺少训练数据中的变量
老实说,我对R很新,我甚至不确定这是否可行 . 我认为我正在收集的数据(九个字段)对于“训练”非常重要,但我无法弄清楚如何仅使用“结果”字段(在本例中为字段E)进行预测,另外两个字段(A和B),并保留其他重要数据 .
任何意见是极大的赞赏 . 如有必要,我可以发布一些代码 .
我只是想了解更多关于这样的事情 .
2 回答
假设您使用随机森林方法:
正如您在此示例中所看到的,只有A和B列用于构建模型,其他列将从模型构建中删除(但不会从数据集中删除) . 如果你想要包括所有这些(E~ . ) . 这也意味着如果您基于所有列构建模型,您需要在测试集中包含这些列,如果没有它们,预测将无法工作 . 如果测试数据只有A和B列,则必须根据它们构建模型 .
希望它有所帮助
正如我在上面的评论中提到的,也许您应该仅使用
A
和B
列来构建模型 . 如果你不想这样做,那么一个解决方法可能就是在调用predict
时简单地使用其他列的中值 . 像这样的东西:这将允许您使用当前模型,使用9个预测变量构建 . 当然,除了
A
和B
之外,您将假设所有预测变量的平均行为,这可能与仅在A
和B
上构建的模型的行为不同 .