我在H2O R中运行分类模型。我想为我的训练数据集提取拟合的模型预测。
代码:
train <- as.h2o(train)
test <- as.h2o(test)
y <- "class"
x <- setdiff(names(train), y)
family <- "multinomial"
nfolds <- 5
gbm1 <- h2o.gbm(x = x, y = y, distribution = family,
training_frame = train,
seed = 1,
nfolds = nfolds,
fold_assignment = "Modulo",
keep_cross_validation_predictions = TRUE)
h2o.getFrame(gbm1@model$cross_validation_predictions[[gbm1@allparameters$nfolds]]$name)[,2:4]
答案 0 :(得分:4)
以下是如何从R中训练的H2O模型中提取交叉验证预测的简单示例(使用Iris数据集)。
library(h2o)
h2o.init(nthreads = -1)
data(iris)
train <- as.h2o(iris)
y <- "Species"
x <- setdiff(names(train), y)
family <- "multinomial"
nfolds <- 5
gbm1 <- h2o.gbm(x = x, y = y,
distribution = family,
training_frame = train,
seed = 1,
nfolds = nfolds,
fold_assignment = "Modulo",
keep_cross_validation_predictions = TRUE)
cvpreds_id <- gbm1@model$cross_validation_holdout_predictions_frame_id$name
cvpreds <- h2o.getFrame(cvpreds_id)
cvpreds
对象是一个H2OFrame,如下所示:
> cvpreds
predict setosa versicolor virginica
1 setosa 0.9986012 0.0008965135 0.0005022631
2 setosa 0.9985695 0.0004486762 0.0009818434
3 setosa 0.9981387 0.0004777671 0.0013835724
4 setosa 0.9985246 0.0006259377 0.0008494549
5 setosa 0.9989924 0.0005033832 0.0005042294
6 setosa 0.9981410 0.0013581692 0.0005008536
[150 rows x 4 columns]