В h2o.gbm()
можно использовать stopping_rounds
, чтобы прекратить обучение, когда происходит улучшение в stopping_metric
; Тем не менее, я бы хотел, чтобы обучение прекратилось при достижении определенного порога, независимо от улучшения.
Например, (взято из https://github.com/h2oai/h2o-3/blob/master/h2o-docs/src/product/tutorials/gbm/gbmTuning.Rmd)
library(h2o)
h2o.init(nthreads = 1)
df <- h2o.importFile(path = "http://s3.amazonaws.com/h2o-public-test-data/smalldata/gbm_test/titanic.csv")
## pick a response for the supervised problem
response <- "survived"
## the response variable is an integer, we will turn it into a categorical/factor for binary classification
df[[response]] <- as.factor(df[[response]])
## use all other columns (except for the name) as predictors
predictors <- setdiff(names(df), c(response, "name"))
splits <- h2o.splitFrame(
data = df,
ratios = c(0.6,0.2), ## only need to specify 2 fractions, the 3rd is implied
destination_frames = c("train.hex", "valid.hex", "test.hex"), seed = 1234
)
train <- splits[[1]]
valid <- splits[[2]]
test <- splits[[3]]
Предположим, мне нужен только AU C из 90% (или у меня есть модель что уже достигло 90%). Как я могу использовать аргументы stopping_
, чтобы прекратить обучение, когда AU C (из набора проверки) превышает 90%? Кажется, я могу остановиться только на улучшении.
gbm_a <- h2o.gbm(x = predictors, y = response, training_frame = train)
h2o.auc(h2o.performance(gbm_a, newdata = valid))
#> 0.9480135