Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 树的数量(单位:h2o.gbm)_R_Machine Learning_H2o_Gbm - Fatal编程技术网

R 树的数量(单位:h2o.gbm)

R 树的数量(单位:h2o.gbm),r,machine-learning,h2o,gbm,R,Machine Learning,H2o,Gbm,在传统的gbm中,我们可以使用 gbm(model,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.00714

在传统的gbm中,我们可以使用 gbm(model,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.test.pred我认为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)
库(h2o)
h2o.init()

虹膜从
3.20.0.6
H2O开始。您正在寻找的方法是 . 对于分类模型,它在每次迭代(树)之后,针对测试框架中的每个观察,生成预测的类概率。对于回归模型(即,当响应为数值时),尽管没有真正记录,但它会为测试框架中的每个观察结果生成实际预测

根据这些预测,还可以很容易地计算各种性能指标(AUC、r2等),假设这就是您所追求的

Python API:

staged\u predict\u proba=模型。staged\u predict\u proba(测试)
R API:


staged_predict_proba要预测,您只能使用
h2o.gbm中的模型。模型
n.tree未使用@s.brunel 2.8.1.1非常旧。最新文档:请在否决投票时发表评论,特别是如果存在一些需要纠正的技术错误。(我认为我在第一句话中正确地回答了这个问题。)