Предоставляет ли функцияgnest.H2OModel () из пакета h2o в R предсказания OOB для моделей h2o.randomForest ()? - PullRequest
0 голосов
/ 22 мая 2018

Я не могу сказать из документации, дает ли функция predict.H2OModel() из пакета h2o в R предсказания OOB для моделей случайных лесов, построенных с использованием h2o.randomForest().

Фактически, из 3-4 примеров, которые я пробовал, кажется, что результаты predict.H2OModel() ближе к прогнозам не-OOB из predict.randomForest() из пакета randomForest, чем к OOB,

Кто-нибудь знает, являются ли они предсказаниями OOB?Если нет, знаете ли вы, как получить прогнозы OOB для h2o.randomForest() моделей?

Пример:

set.seed(123)
library(randomForest)
library(h2o)

data(mtcars)
d = mtcars[,c('mpg', 'cyl', 'disp', 'hp', 'wt' )]

## define some common settings for both random forests
n.trees=1000
mtry = 3  
min.node = 3

## prep for h2o.randomForest
h2o.init()  
d.h2o= as.h2o(d) 
x.names = colnames(d)[2:5] ## predictors

## fit both models
set.seed(123); 
rf  =     randomForest(mpg ~ .,                      data = d    ,  ntree=n.trees,   mtry = mtry, nodesize=min.node)
h2o = h2o.randomForest(y='mpg', x=x.names, training_frame = d.h2o, ntrees=n.trees, mtries = mtry, min_rows=min.node)

## Correct way and incorrect way of getting OOB predictions for a randomForest model. Not sure about h2o model. 
d$rf.oob.pred =           predict(rf)                  ## Gives OOB predictions
d$rf.pred     =           predict(rf , newdata=d    )  ## Doesn't give OOB predictions.
d$h2o.pred    = as.vector(predict(h2o, newdata=d.h2o)) ## Not sure if this is OOB or not.  

## d$h2o.pred seems more similar to d$rf.pred than d$rf.oob.pred, 
## suggesting that predict.H2OModel() might not give OOB predictions.
mean((d$rf.pred     - d$h2o.pred)^2)
mean((d$rf.oob.pred - d$h2o.pred)^2)

1 Ответ

0 голосов
/ 01 августа 2018

H2O h2o.predict () не предоставляет прогнозы для данных OOB.Вы должны указать, какой набор данных вы хотите предсказать, с помощью параметра newdata =.Поэтому, когда у вас есть newdata=d.h2o, вы получаете прогнозы для указанного d.h2o фрейма данных.

В настоящее время нет способа получить прогноз для данных oob.Тем не менее, существует jira билет , чтобы указать, хотите ли вы, чтобы oob метрики (обратите внимание, что этот билет также ссылается на другой билет, который помогает прояснить, как метрики обучения в настоящее время сообщаются для Случайного леса).

...