首页 > 解决方案 > 以 json 格式可视化 H2o XGBoost 树,找不到丢失的孩子

问题描述

我正在尝试使用以下命令以 JSON 格式可视化我的 H2O XGBoost 模型: java -cp h2o-genmodel.jar hex.genmodel.tools.PrintMojo -i XGBoost_model_R_1597776279050_3.zip --tree 1 --format json

上述命令以 JSON 格式输出树结构,如下所示:

"rightChild": {
      "nodeNumber": 2,
      "weight": 0.0,
      "colId": 382,
      "colName": "var_2",
      "leftward": false,
      "isCategorical": false,
      "inclusiveNa": false,
      "splitValue": 0.195,
      "rightChild": {
        "nodeNumber": 6,
        "weight": 0.0,
        "colId": 340,
        "colName": "var_6",
        "leftward": false,
        "isCategorical": false,
        "inclusiveNa": true,
        "splitValue": 1.0,
        "rightChild": {
          "nodeNumber": 10,
          "weight": 0.0,
          "predValue": 0.011794609
        },
        "leftChild": {
          "nodeNumber": 9,
          "weight": 0.0,
          "predValue": 0.011531689
        }

我试图了解如何使用上面的 JSON 为每个节点计算丢失的孩子。可以以 png 格式查看相同的结构,并且节点 var_6 的缺失节点作为左子节点出现。有没有办法通过查看 JSON 来找出丢失的节点?

标签: xgboosth2o

解决方案


查看leftward属性 - 这是所谓的“多数方式”,这意味着所有无法明确评估的数据记录(例如,具有缺失值的数据记录)将被发送到那里。

在当前情况下,"leftward": false应该会导致将缺失值发送到右子节点(节点号 10)。


推荐阅读