在H2O XGBoost模型中可视化树木

时间:2018-09-27 17:54:59

标签: machine-learning h2o xgboost

我正在看这个答案以可视化H2O中的梯度提升树模型,它说GBM上的方法也可以应用于XGBoost:
Finding contribution by each feature into making particular prediction by h2o ensemble model

http://docs.h2o.ai/h2o/latest-stable/h2o-docs/productionizing.html

但是当我尝试使用H2O XGBoost MOJO上提到的方法时,它会失败。

我检查了hex.genmodel.tools.PrintMojo的源代码:https://github.com/h2oai/h2o-3/blob/master/h2o-genmodel/src/main/java/hex/genmodel/tools/PrintMojo.java

似乎只能在randomforest和GBM模型上使用,而不能在XGBoost模型上使用。

有人知道如何在H2O XGBoost模型中可视化树木吗?谢谢!

2 个答案:

答案 0 :(得分:0)

这是H2O当前添加的功能,您可以在此处跟踪其进度:https://0xdata.atlassian.net/browse/PUBDEV-5743

请注意,在故障单中,注释中建议如何使用本地xgboost可视化树木。

答案 1 :(得分:0)

我终于找到了解决方案,该解决方案似乎没有针对XGBoost进行记录,但确实与其他与树相关的算法相同。

只需运行以下命令即可从模型中生成前50棵树:

for tn in {1..50}
do
   java -cp h2o-3.24.0.1/h2o.jar hex.genmodel.tools.PrintMojo --tree $tn -i <your mojo model> -o XGBOOST_$tn.gv
   dot -Tpng  XGBOOST_$tn.gv -o xgboost_$tn.png
done