Tree Class in H2O¶
H2O Tree Class
¶
-
class
h2o.tree.
H2OTree
(model, tree_number, tree_class=None, plain_language_rules='AUTO')[source]¶ Bases:
object
Represents a model of a Tree built by one of H2O’s tree algorithms (GBM, Random Forest, XGBoost, Isolation Forest).
The internal structure mimics the behavior of Scikit’s internal tree representation and contains all the information available about every node in the graph (https://scikit-learn.org/stable/auto_examples/tree/plot_unveil_tree_structure.html). It provides both human-readable output and formatting suitable for machine processing.
In the fetched object, there are two representations of the graph contained:
graph-oriented representation, starting with a root node with edges
array/vector representation, useful for quick machine processing of the tree’s structure
Every graph starts with a root node. This is an instance of H2OSplitNode and is naturally the very beginning of all decision paths in the graph. It points to its children, which again point to their children (unless an H2OLeafNode is hit). Nodes are always numbered from the top of the tree down to the lowest level and from left to right.
At the tree level, the following information is provided:
Number of nodes in the tree
Model the tree belongs to
Tree class (if applicable)
Pointer to a root node for tree traversal (breadth-first, depth-first) and manual tree walking
Each node in the tree is uniquely identified by an ID, regardless of its type. Each node type also has a human-readable description available. There are two types of nodes that are distinguished:
Split node
Leaf node
Split Node: A split node is a single, non-terminal node with either a numerical or categorical feature split. The root node is guaranteed to be a split node, as a zero-depth tree \(t\) of cardinality \(|t| = 1\) contains no decisions at all. Every split node consists of:
An ID or H2O-specific node identifier
Left child node & right child node
Split feature name (split column name)
Split threshold (mainly for numerical splits)
Categorical features split (categorical splits only)
Direction of NA values (i.e. which way NA values go: left child, right child, or nowhere)
Leaf Node: A leaf node is a single node with no children, thus being a terminal node at the end of the decision path in a tree. A leaf node consists of:
An ID or H2O-specific node identifier
Prediction value (floating point number)
- Parameters
model – The model this tree is related to.
tree_number – An integer representing the order in which the tree has been built in the model.
tree_class – A string representing the name of the tree’s class. Specifies the class of the tree requested. Required for multi-class classification. The number of tree classes equals the number of levels in the categorical response column. As there is exactly one class per categorical level, the name of the tree’s class is equal to the corresponding categorical level of the response column. For regression and binomial models, the name of the categorical level is ignored and can be omitted.
plain_language_rules – (Optional) Whether to generate plain language rules. “AUTO” by default, meaning False for big trees and True for small trees.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> # Obtaining a tree is a matter of a single call >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.model_id >>> tree.tree_number >>> tree.tree_class
-
property
decision_paths
¶
-
property
descriptions
¶ Deprecated please use
decision_paths
andtree_decision_path
instead. Descriptions for each node to be found in the tree, in human-readable format. Provides a human-readable summary of each node. Contains split threshold if the split is based on numerical column. For categorical splits, it contains a list of categorical levels for transition from the parent node.Use the node’s ID to access the description for a given node in the underlying array.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.descriptions
-
property
features
¶ Names of the feature/column used for the split. The array tells which feature is used for the split on a given node.
Use the node’s ID to access the split feature for a given node in the underlying array.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.features
-
property
left_cat_split
¶ - Returns
Categorical levels leading to the left child node. Only present when split is categorical, otherwise none.
-
property
left_children
¶ An array with left child nodes of tree’s nodes. Holds indices of each node’s left child.
Use the node’s ID to obtain the index of the left child for a given node in the underlying array.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.left_children
-
property
levels
¶ Categorical levels on the split from the parent’s node belonging into this node. None for root node or non-categorical splits. Show list of categorical levels inherited by each node from the parent.
Use the node’s ID to access inherited categorical levels for a given node in the underlying array.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.levels
-
property
model_id
¶ Name (identification) of the model this tree is related to.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.model_id
-
property
nas
¶ NA value direction on split. Shows whether NA values go to the left node or the right node. The value may be None if the node is a leaf or if there is no possibility of an NA value occuring during a split, typically due to filtering all NAs out to a different path in the graph.
Use the node’s ID to access NA direction for a given node in the underlying array.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.nas
-
property
node_ids
¶ Array with identification numbers of nodes. Node IDs are generated by H2O. Serves as the node’s unique identifier inside H2O. (May differ from index.) Nodes are always numbered from the top of the tree down to the lowest level, from left to right.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.node_ids
-
property
predictions
¶ Values predicted on tree’s nodes.
Use the node’s ID to access predictions for a given node in the underlying array.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.predictions
-
property
right_cat_split
¶ - Returns
Categorical levels leading to the right child node. Only present when split is categorical, otherwise none.
-
property
right_children
¶ An array with right child nodes of tree’s nodes. Holds indices of each node’s right child.
Use node’s ID to obtain index of the right child for given node in the underlying array.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.right_children
-
property
root_node
¶ An instance of H2ONode representing the beginning of the tree behind the model. Allows further tree traversal.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.root_node
-
show
()[source]¶ Summarizes the H2OTree.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.show()
-
property
thresholds
¶ Node split thresholds. Split thresholds are not only related to numerical splits but might be present in case of categorical split as well.
Use the node’s ID to access the threshold for a given node in the underlying array.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.thresholds
-
property
tree_class
¶ The name of a tree’s class.
The number of tree classes equals the number of levels in the categorical response column. As there is exactly one class per categorical level, the name of tree’s class is equal to the corresponding categorical level of the response column.
For regression and binomial models, the name of the categorical level is ignored and can be omitted, as there is exactly one tree built in both cases.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.tree_class
-
property
tree_decision_path
¶
-
property
tree_number
¶ The order in which the tree has been built in the model.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.tree_number
H2O Node Class
¶
-
class
h2o.tree.
H2ONode
(node_id)[source]¶ Bases:
object
Represents a single abstract node in an H2OTree.
- Parameters
id – Node’s unique identifier (integer). Generated by H2O.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.tree import H2ONode >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines= h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/allyears2k_headers.zip") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.node_ids
-
property
id
¶ Node’s unique identifier (integer). Generated by H2O.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.tree import H2ONode >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines= h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/allyears2k_headers.zip") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.node_ids >>> node0 = H2ONode(0) >>> node0
H2O Leaf Node Class
¶
-
class
h2o.tree.
H2OLeafNode
(node_id, prediction)[source]¶ Bases:
h2o.tree.tree.H2ONode
Represents a single terminal node in an H2OTree with final prediction.
- Parameters
id – Node’s unique identifier (integer). Generated by H2O.
prediction – The prediction value in the terminal node (numeric floating point).
- Examples
>>> from h2o.estimators import H2OGradientBoostingEstimator >>> from h2o.tree import H2OTree >>> from h2o.tree import H2OLeafNode >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) # Retrieve the node ids >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.node_ids # Retrieve the predictions >>> tree.predictions # Set the id and prediction >>> H2OLeafNode(0, -0.23001842)
-
property
id
¶ Node’s unique identifier (integer). Generated by H2O.
- Examples
>>> from h2o.estimators import H2OGradientBoostingEstimator >>> from h2o.tree import H2OTree >>> from h2o.tree import H2OLeafNode >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) # Retrieve the node ids >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.node_ids # Retrieve the predictions >>> tree.predictions # Set the id and prediction >>> leaf_node = H2OLeafNode(0, -0.23001842) # Retrieve the node id >>> leaf_node.id
-
property
prediction
¶ Prediction value in the terminal node (numeric floating point).
- Examples
>>> from h2o.estimators import H2OGradientBoostingEstimator >>> from h2o.tree import H2OTree >>> from h2o.tree import H2OLeafNode >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) # Retrieve the node ids >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.node_ids # Retrieve the predictions >>> tree.predictions # Set the id and prediction >>> leaf_node = H2OLeafNode(0, -0.23001842) # Retrieve the node prediction >>> leaf_node.prediction
-
show
()[source]¶ - Examples
>>> from h2o.estimators import H2OGradientBoostingEstimator >>> from h2o.tree import H2OTree >>> from h2o.tree import H2OLeafNode >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin", "Dest"], ... y="IsDepDelayed", ... training_frame=airlines) # Retrieve the predictions >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> tree.predictions # Retrieve predicted value for a node >>> leaf_node = H2OLeafNode(0, -0.23001842) >>> leaf_node.show()
H2O Split Node Class
¶
-
class
h2o.tree.
H2OSplitNode
(node_id, threshold, left_child, right_child, split_feature, na_direction, left_levels, right_levels)[source]¶ Bases:
h2o.tree.tree.H2ONode
Represents a single node with either numerical or categorical split in an H2OTree with all its attributes.
- Parameters
id – Node’s unique identifier (integer). Generated by H2O.
threshold – Split threshold, typically when the split column is numerical.
left_child – Integer identifier of the left child node, if there is any. Otherwise None.
right_child – Integer identifier of the right child node, if there is any. Otherwise None.
split_feature – The name of the column this node splits on.
na_direction – The direction of NA values.
LEFT
means NA values go to the left child node;RIGHT
means NA values go to the right child node. A value of None means occurence of NA for the given split column is not possible on this node due to an earlier split on the very same feature.left_levels – Categorical levels on the edge from this node to the left child node. None for non-categorical splits.
right_levels – Categorical levels on the edge from this node to the right child node. None for non-categorical splits.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.tree import H2OSplitNode >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin","Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> threshold = 'nan' >>> left_child = 9 >>> right_child = 10 >>> split_feature = "DepTime" >>> na_direction = "Left" >>> left_levels = ['FAT', 'LAS', 'PSP'] >>> right_levels = ['BWI', 'CLT', 'IND', 'MCO', ... 'PHL', 'PHX', 'RIC', 'TPA'] >>> H2OSplitNode(5, threshold, left_child, ... right_child, split_feature, ... na_direction, left_levels, ... right_levels)
-
property
id
¶ Node’s unique identifier (integer). Generated by H2O.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.tree import H2OSplitNode >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin","Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> threshold = 'nan' >>> left_child = 9 >>> right_child = 10 >>> split_feature = "DepTime" >>> na_direction = "Left" >>> left_levels = ['FAT', 'LAS', 'PSP'] >>> right_levels = ['BWI', 'CLT', 'IND', 'MCO', ... 'PHL', 'PHX', 'RIC', 'TPA'] >>> split_node = H2OSplitNode(5, threshold, left_child, ... right_child, split_feature, ... na_direction, left_levels, ... right_levels) >>> split_node.id
-
property
left_child
¶ Integer identifier of the left child node, if there is any. Otherwise None.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.tree import H2OSplitNode >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin","Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> threshold = 'nan' >>> left_child = 9 >>> right_child = 10 >>> split_feature = "DepTime" >>> na_direction = "Left" >>> left_levels = ['FAT', 'LAS', 'PSP'] >>> right_levels = ['BWI', 'CLT', 'IND', 'MCO', ... 'PHL', 'PHX', 'RIC', 'TPA'] >>> split_node = H2OSplitNode(5, threshold, left_child, ... right_child, split_feature, ... na_direction, left_levels, ... right_levels) >>> split_node.left_child
-
property
left_levels
¶ Categorical levels on the edge from this node to the left child node. None for non-categorical splits.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.tree import H2OSplitNode >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin","Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> threshold = 'nan' >>> left_child = 9 >>> right_child = 10 >>> split_feature = "DepTime" >>> na_direction = "Left" >>> left_levels = ['FAT', 'LAS', 'PSP'] >>> right_levels = ['BWI', 'CLT', 'IND', 'MCO', ... 'PHL', 'PHX', 'RIC', 'TPA'] >>> split_node = H2OSplitNode(5, threshold, left_child, ... right_child, split_feature, ... na_direction, left_levels, ... right_levels) >>> split_node.left_levels
-
property
na_direction
¶ The direction of NA values.
LEFT
means NA values go to the left child node;RIGHT
means NA values go to the right child node. A value of None means occurance of NA for the given split column is not possible on this node due to an earlier split on the very same feature.- Examples
>>> from h2o.tree import H2OTree >>> from h2o.tree import H2OSplitNode >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin","Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> threshold = 'nan' >>> left_child = 9 >>> right_child = 10 >>> split_feature = "DepTime" >>> na_direction = "Left" >>> left_levels = ['FAT', 'LAS', 'PSP'] >>> right_levels = ['BWI', 'CLT', 'IND', 'MCO', ... 'PHL', 'PHX', 'RIC', 'TPA'] >>> split_node = H2OSplitNode(5, threshold, left_child, ... right_child, split_feature, ... na_direction, left_levels, ... right_levels) >>> split_node.na_direction
-
property
right_child
¶ Integer identifier of the right child node, if there is any. Otherwise None.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.tree import H2OSplitNode >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin","Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> threshold = 'nan' >>> left_child = 9 >>> right_child = 10 >>> split_feature = "DepTime" >>> na_direction = "Left" >>> left_levels = ['FAT', 'LAS', 'PSP'] >>> right_levels = ['BWI', 'CLT', 'IND', 'MCO', ... 'PHL', 'PHX', 'RIC', 'TPA'] >>> split_node = H2OSplitNode(5, threshold, left_child, ... right_child, split_feature, ... na_direction, left_levels, ... right_levels) >>> split_node.right_child
-
property
right_levels
¶ Categorical levels on the edge from this node to the right child node. None for non-categorical splits.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.tree import H2OSplitNode >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin","Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> threshold = 'nan' >>> left_child = 9 >>> right_child = 10 >>> split_feature = "DepTime" >>> na_direction = "Left" >>> left_levels = ['FAT', 'LAS', 'PSP'] >>> right_levels = ['BWI', 'CLT', 'IND', 'MCO', ... 'PHL', 'PHX', 'RIC', 'TPA'] >>> split_node = H2OSplitNode(5, threshold, left_child, ... right_child, split_feature, ... na_direction, left_levels, ... right_levels) >>> split_node.right_levels
-
show
()[source]¶ - Examples
>>> from h2o.tree import H2OTree >>> from h2o.tree import H2OSplitNode >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin","Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> threshold = 'nan' >>> left_child = 9 >>> right_child = 10 >>> split_feature = "DepTime" >>> na_direction = "Left" >>> left_levels = ['FAT', 'LAS', 'PSP'] >>> right_levels = ['BWI', 'CLT', 'IND', 'MCO', ... 'PHL', 'PHX', 'RIC', 'TPA'] >>> split_node = H2OSplitNode(5, threshold, left_child, ... right_child, split_feature, ... na_direction, left_levels, ... right_levels) >>> split_node.show
-
property
split_feature
¶ The name of the column this node splits on.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.tree import H2OSplitNode >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin","Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> threshold = 'nan' >>> left_child = 9 >>> right_child = 10 >>> split_feature = "DepTime" >>> na_direction = "Left" >>> left_levels = ['FAT', 'LAS', 'PSP'] >>> right_levels = ['BWI', 'CLT', 'IND', 'MCO', ... 'PHL', 'PHX', 'RIC', 'TPA'] >>> split_node = H2OSplitNode(5, threshold, left_child, ... right_child, split_feature, ... na_direction, left_levels, ... right_levels) >>> split_node.split_feature
-
property
threshold
¶ Split threshold for each node. Not only numerical features have numerical split. For splits on categorical features, the numerical split threshold represents an index in the categorical feature’s domain.
- Examples
>>> from h2o.tree import H2OTree >>> from h2o.tree import H2OSplitNode >>> from h2o.estimators import H2OGradientBoostingEstimator >>> airlines = h2o.import_file("https://s3.amazonaws.com/h2o-public-test-data/smalldata/airlines/AirlinesTrain.csv") >>> gbm = H2OGradientBoostingEstimator(ntrees=1) >>> gbm.train(x=["Origin","Dest"], ... y="IsDepDelayed", ... training_frame=airlines) >>> tree = H2OTree(model = gbm, tree_number = 0 , tree_class = "NO") >>> threshold = 'nan' >>> left_child = 9 >>> right_child = 10 >>> split_feature = "DepTime" >>> na_direction = "Left" >>> left_levels = ['FAT', 'LAS', 'PSP'] >>> right_levels = ['BWI', 'CLT', 'IND', 'MCO', ... 'PHL', 'PHX', 'RIC', 'TPA'] >>> split_node = H2OSplitNode(5, threshold, left_child, ... right_child, split_feature, ... na_direction, left_levels, ... right_levels) >>> split_node.threshold