аргументы подразумевают различное количество строк;Ошибка в R cforest - PullRequest
0 голосов
/ 03 февраля 2019

Я продолжаю сталкиваться с этой же ошибкой, когда использую команду cforest в R с party.Код, который я использую, работал нормально, поэтому это новая необъяснимая ошибка.Я хотел посмотреть, была ли это проблема с моими данными, поэтому я применил тот же код к титановому набору данных и получил ту же ошибку.Вот код:

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)

Я получаю сообщение об ошибке:

Error in data.frame(PassengerId = test$PassengerId, Survived = Prediction) : 
arguments imply differing number of rows: 418, 891

Конечно, набор данных 'test' содержит 491 строку, а набор обучающих данных имеет 891 строку.Таким образом, я проверил его, пытаясь предсказать тот же набор данных обучения.Вот этот код:

submit <- data.frame(PassengerId = train$PassengerId, Survived = Prediction)

Это прекрасно работает.Итак, я знаю, что это связано с количеством строк.Это совершенно новая проблема, которая только что появилась сегодня и повлияла на работу кода, который работал нормально всего пару месяцев назад.Кто-нибудь сталкивался с такой же проблемой?

Вот ссылки на 2 файла через мой гугл-диск.

test

поезд

1 Ответ

0 голосов
/ 03 февраля 2019

Я понял это!Номенклатура изменилась.Вы должны изменить строку прогноза следующим образом:

Prediction <- predict(object = fit, newdata = test, OOB=TRUE, type = "response")

вместо старого способа, который был:

Prediction <- predict(fit, test, OOB=TRUE, type = "response")

Надеемся, что другие, у кого есть эта проблема, найдут это полезным.Спасибо всем, кто прочитал этот пост и попытался решить проблему!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...