R: Parse a LightGBM model json dump

lgb.model.dt.tree {lightgbm} | R Documentation

## Parse a LightGBM model json dump

### Description

Parse a LightGBM model json dump into a `data.table` structure.

### Usage

    lgb.model.dt.tree(model, num_iteration = NULL)

### Arguments

`model` | object of class `lgb.Booster`
`num_iteration` | number of iterations you want to predict with. NULL or <= 0 means use best iteration

### Value

A `data.table` with detailed information about model trees' nodes and leafs.

The columns of the `data.table` are:

- `tree_index`: ID of a tree in a model (integer)

- `split_index`: ID of a node in a tree (integer)

- `split_feature`: for a node, it's a feature name (character); for a leaf, it simply labels it as `"NA"`

- `node_parent`: ID of the parent node for current node (integer)

- `leaf_index`: ID of a leaf in a tree (integer)

- `leaf_parent`: ID of the parent node for current leaf (integer)

- `split_gain`: Split gain of a node

- `threshold`: Splitting threshold value of a node

- `decision_type`: Decision type of a node

- `default_left`: Determine how to handle NA value, TRUE -> Left, FALSE -> Right

- `internal_value`: Node value

- `internal_count`: The number of observation collected by a node

- `leaf_value`: Leaf value

- `leaf_count`: The number of observation collected by a leaf

### Examples

    data(agaricus.train, package = "lightgbm")
    train <- agaricus.train
    dtrain <- lgb.Dataset(train$data, label = train$label)

    params <- list(objective = "binary",
                  learning_rate = 0.01, num_leaves = 63, max_depth = -1,
                  min_data_in_leaf = 1, min_sum_hessian_in_leaf = 1)
                  model <- lgb.train(params, dtrain, 20)
    model <- lgb.train(params, dtrain, 20)

    tree_dt <- lgb.model.dt.tree(model)

[Package lightgbm version 2.2.2 Index]