在传统的gbm中,我们可以使用
Forecast.gbm(模型,newsdata = ...,n.tree = ...)
这样我就可以将测试结果与不同数量的树进行比较。
在h2o.gbm中,尽管要设置n.tree,但似乎对结果没有任何影响。与默认模型相同:
h2o.test.pred <- as.vector(h2o.predict(h2o.gbm.model, newdata=test.frame, n.tree=100))
R2(h2o.test.pred, test.mat$y)
[1] -0.00714109
h2o.test.pred <- as.vector(h2o.predict(h2o.gbm.model, newdata=test.frame, n.tree=10))
> R2(h2o.test.pred, test.mat$y)
[1] -0.00714109
有没有类似的问题?怎么解决呢? h2o.gbm比gbm快得多,因此,如果它可以获得每棵树的详细结果,那将是很好的。
最佳答案
我认为H2O不支持您所描述的内容。
但是,如果要获得的性能是相对于使用的树木数量而言,则可以在模型构建时完成。
library(h2o)
h2o.init()
iris <- as.h2o(iris)
parts <- h2o.splitFrame(iris,c(0.8,0.1))
train <- parts[[1]]
valid <- parts[[2]]
test <- parts[[3]]
m <- h2o.gbm(1:4, 5, train,
validation_frame = valid,
ntrees = 100, #Max desired
score_tree_interval = 1)
h2o.scoreHistory(m)
plot(m)
分数历史记录将在添加每棵新树后显示评估。
plot(m)
将显示一个图表。看起来20足够虹膜了!顺便说一句,如果您的真正目的是找出要使用的最佳树木数量,那么请尽早打开并停止运行,它将为您自动完成。 (只需确保您同时使用了验证和测试数据框。)
关于r - h2o.gbm中的树数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45953884/