Я использую каретку, чтобы соответствовать модели gbm. Когда я вызываю trainedGBM$finalModel$fit
, я получаю правильный вывод.
Но когда я вызываю predict(trainedGBM$finalModel, origData, type="response")
, я получаю очень разные результаты, а predict(trainedGBM$finalModel, type="response")
дает все еще разные результаты, даже если прилагается origData. На мой взгляд, эти вызовы должны давать одинаковый результат. Может ли кто-нибудь помочь мне определить проблему?
library(caret)
library(gbm)
attach(origData)
gbmGrid <- expand.grid(.n.trees = c(2000),
.interaction.depth = c(14:20),
.shrinkage = c(0.005))
trainedGBM <- train(y ~ ., method = "gbm", distribution = "gaussian",
data = origData, tuneGrid = gbmGrid,
trControl = trainControl(method = "repeatedcv", number = 10,
repeats = 3, verboseIter = FALSE,
returnResamp = "all"))
ntrees <- gbm.perf(trainedGBM$finalModel, method="OOB")
data.frame(y,
finalModelFit = trainedGBM$finalModel$fit,
predictDataSpec = predict(trainedGBM$finalModel, origData, type="response", n.trees=ntrees),
predictNoDataSpec = predict(trainedGBM$finalModel, type="response", n.trees=ntrees))
Приведенный выше код дает следующие частичные результаты:
y finalModelFit predictDataSpec predictNoDataSpec
9000 6138.8920 2387.182 2645.993
5000 3850.8817 2767.990 2467.157
3000 3533.1183 2753.551 2044.578
2500 1362.9802 2672.484 1972.361
1500 5080.2112 2449.185 2000.568
750 2284.8188 2728.829 2063.829
1500 2672.0146 2359.566 2344.451
5000 3340.5828 2435.137 2093.939
0 1303.9898 2377.770 2041.871
500 879.9798 2691.886 2034.307
3000 2928.4573 2327.627 1908.876
caret
? Действительно неразумно заставлять людей гадать на такого рода вопрос, когда все, что вам нужно было сделать, это ввестиlibrary(_whatever_package_train_came_from)
- person IRTFM   schedule 14.07.2013attach
является распространенным источником трудных для понимания ошибок. И надо было, конечно, полнее описать origData. - person IRTFM   schedule 14.07.2013