当我与party一起在R中使用cforest命令时,我一直遇到相同的错误。我正在运行的代码过去可以正常工作,所以这是一个新的无法解释的错误。我想看看我的数据是否有问题,所以我将相同的代码应用于了泰坦尼克号数据集,并遇到了相同的错误。这是代码:
CustomJS
我读到的错误:
fit <- cforest(as.factor(Survived) ~ Pclass + Age + SibSp + Parch + Fare,
data = train,
controls=cforest_unbiased(ntree=2000, mtry=3))
Prediction <- predict(fit, test, OOB=TRUE, type = "response")
submit <- data.frame(PassengerId = test$PassengerId, Survived = Prediction)
当然,“测试”数据集具有491行和训练数据集具有891行。 因此,我通过使其尝试预测相同的训练数据集对其进行了测试。这是代码:
Error in data.frame(PassengerId = test$PassengerId, Survived = Prediction) :
arguments imply differing number of rows: 418, 891
那很好。因此,我知道它与行数有关。这是一个全新的问题,只是出现了今天已经实现,即只有几个月前工作正常的代码。有人遇到过同样的问题吗?
这里是通过我的Google驱动器指向这两个文件的链接。
答案 0 :(得分:1)
我知道了!术语已更改。您必须更改预测行才能读取:
Prediction <- predict(object = fit, newdata = test, OOB=TRUE, type = "response")
代替原来的方式:
Prediction <- predict(fit, test, OOB=TRUE, type = "response")
希望其他有此问题的人会发现此帮助。谢谢大家谁看到这篇文章和试图解决这个问题!