我正在看这个答案以可视化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模型中可视化树木吗?谢谢!
答案 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