我有一个相当小的数据集(162,000 个观察值,13 个属性) 我正在尝试使用 h2o.GBM 进行建模。响应变量是具有大量级别的分类变量(~ 20,000 个级别) 该模型没有耗尽内存或给出任何错误,但它已经运行了近 24 小时而没有任何进展(H2o.GBM 报告中显示 0%) 我终于屈服并停止了。 我想知道我的超参数是否有问题,因为数据不是特别大。
这是我的代码:
library(h2o)
localH2O <- h2o.init(nthreads = -1, max_mem_size = "12g")
train.h20 <- as.h2o(analdata_train)
gbm1 <- h2o.gbm(
y = response_var
, x = independ_vars
, training_frame = train.h20
, ntrees = 3
, max_depth = 5
, min_rows = 10
, stopping_tolerance = 0.001
, learn_rate = 0.1
, distribution = "multinomial"
)
最佳答案
H2O GBM 多项式分类的工作方式是,当您要求一棵树作为参数时,它实际上会在引擎盖下的响应列中为每个级别构建一棵树。
因此,在您的情况下,1 棵树实际上意味着 20,000 棵树。
2 棵树实际上意味着 40,000 棵树,依此类推......
(请注意,二项式分类案例采用捷径,仅为两个类构建一棵树。)
所以...它可能会完成,但可能需要相当长的时间!
关于r - h2o.GBM 在小数据集上花费太长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44558411/