2

我真的无法弄清楚为什么我在使用predict(). 我检查了这篇文章,但我仍然收到相同的错误predict()。我将一个数据框分成两部分(1. 训练,2. 测试)。

我在火车上运行了一个逻辑模型并将其应用于测试,但出现错误。这是代码:

train=rteam[which(rteam$season!="A"),]
test=rteam[which(rteam$season=="A"),]
length(train$outcome)
#[1] 163478
#ength(test$outcome)
[1] 8246

logit.1=glm(outcome ~ hometeam + dpoints.diff + opoints.diff + outcome.sma5 + opp.outcome.sma5, data=train,
+             family="binomial", na.action=na.exclude)


test$predict=predict(logit.1, data=test, type="response")
# Error in `$<-.data.frame`(`*tmp*`, "predict", value = c(NA, NA, NA, NA,  : 
#  replacement has 163478 rows, data has 8246

我不断收到此错误。我再次将 predict 语句作为独立向量运行,它返回了一个长度为 train 数据帧的向量。

predict=predict(logit.1, data=test, type="response")
length(predict)
# [1] 163478

关于发生了什么的任何想法?我的代码错了吗?

解决方案

predict()需要newdata=而不是data=,doh!

test$predict=predict(logit.1, newdata=test, type="response")
length(test$predict)
# [1] 8246
4

0 回答 0