我caret以前训练过一个rpart模型.
trainIndex <- createDataPartition(d$Happiness, p=.8, list=FALSE)
dtrain <- d[trainIndex, ]
dtest <- d[-trainIndex, ]
fitControl <- trainControl(## 10-fold CV
method = "repeatedcv", number=10, repeats=10)
fitRpart <- train(Happiness ~ ., data=dtrain, method="rpart",
trControl = fitControl)
testRpart <- predict(fitRpart, newdata=dtest)
Run Code Online (Sandbox Code Playgroud)
dtest包含1296个观测值,所以我希望testRpart产生一个长度为1296的向量.相反,它长1077,即219短.
当我在前220行上运行预测时dtest,我得到的预测结果为1,因此它始终为219短.
有关为什么会出现这种情况的任何解释,以及我可以做些什么来获得输入的一致输出?
编辑: d可以从这里加载以重现上述内容.
Jos*_* W. 12
我下载了您的数据并找到了解释差异的原因.
如果只是从数据集中删除缺失值,则输出的长度匹配:
testRpart <- predict(fitRpart, newdata = na.omit(dtest))
Run Code Online (Sandbox Code Playgroud)
注意nrow(na.omit(dtest))是1103,并且length(testRpart)是1103.因此,您需要一种策略来解决缺失值.请参阅?predict.rpartna.action参数的选项以选择所需内容.
| 归档时间: |
|
| 查看次数: |
5110 次 |
| 最近记录: |