【发布时间】:2015-08-21 18:39:53
【问题描述】:
我使用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)
dtest 包含 1296 个观测值,因此我希望 testRpart 生成长度为 1296 的向量。相反,它长 1077,即短 219。
当我对dtest 的前 220 行运行预测时,我得到的预测结果为 1,因此它始终短 219。
任何解释为什么会这样,以及我可以做些什么来获得一致的输入输出?
编辑: d 可以从 here 加载以重现上述内容。
【问题讨论】:
-
你能让你的例子可重现吗?
-
已编辑提供链接以加载上述
d(2.3 MB)。当要复制的数据相当大时,不确定 SO 上的协议是什么:我将它放在我的 Dropbox 中,这可能不是永久性的。有没有更好的办法? -
最好的方法是使用一个小的数据集,这样就可以发布了。您看到的行为应该很容易通过一小部分数据或一些模拟数据产生。