ai.onnx.ml - TreeEnsembleClassifier#

TreeEnsembleClassifier - 3 (ai.onnx.ml)#

Version

This version of the operator has been available since version 3 of domain ai.onnx.ml.

Summary

Tree Ensemble classifier. Returns the top class for each of N inputs.

The attributes named ‘nodes_X’ form a sequence of tuples, associated by index into the sequences, which must all be of equal length. These tuples define the nodes.

Similarly, all fields prefixed with ‘class_’ are tuples of votes at the leaves. A leaf may have multiple votes, where each vote is weighted by the associated class_weights index.

One and only one of classlabels_strings or classlabels_int64s will be defined. The class_ids are indices into this list. All fields ending with <i>_as_tensor</i> can be used instead of the same parameter without the suffix if the element type is double and not float.

Attributes

  • base_values: Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)

  • base_values_as_tensor: Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)

  • class_ids: The index of the class list that each weight is for.

  • class_nodeids: node id that this weight is for.

  • class_treeids: The id of the tree that this node is in.

  • class_weights: The weight for the class in class_id.

  • class_weights_as_tensor: The weight for the class in class_id.

  • classlabels_int64s: Class labels if using integer labels.<br>One and only one of the ‘classlabels_*’ attributes must be defined.

  • classlabels_strings: Class labels if using string labels.<br>One and only one of the ‘classlabels_*’ attributes must be defined.

  • nodes_falsenodeids: Child node if expression is false.

  • nodes_featureids: Feature id for each node.

  • nodes_hitrates: Popularity of each node, used for performance and may be omitted.

  • nodes_hitrates_as_tensor: Popularity of each node, used for performance and may be omitted.

  • nodes_missing_value_tracks_true: For each node, define what to do in the presence of a missing value: if a value is missing (NaN), use the ‘true’ or ‘false’ branch based on the value in this array.<br>This attribute may be left undefined, and the defalt value is false (0) for all nodes.

  • nodes_modes: The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf node.<br>One of ‘BRANCH_LEQ’, ‘BRANCH_LT’, ‘BRANCH_GTE’, ‘BRANCH_GT’, ‘BRANCH_EQ’, ‘BRANCH_NEQ’, ‘LEAF’

  • nodes_nodeids: Node id for each node. Ids may restart at zero for each tree, but it not required to.

  • nodes_treeids: Tree id for each node.

  • nodes_truenodeids: Child node if expression is true.

  • nodes_values: Thresholds to do the splitting on for each node.

  • nodes_values_as_tensor: Thresholds to do the splitting on for each node.

  • post_transform: Indicates the transform to apply to the score. <br> One of ‘NONE,’ ‘SOFTMAX,’ ‘LOGISTIC,’ ‘SOFTMAX_ZERO,’ or ‘PROBIT.’ Default value is 'NONE'.

Inputs

  • X (heterogeneous) - T1: Input of shape [N,F]

Outputs

  • Y (heterogeneous) - T2: N, Top class for each point

  • Z (heterogeneous) - tensor(float): The class score for each class, for each point, a tensor of shape [N,E].

Type Constraints

  • T1 in ( tensor(double), tensor(float), tensor(int32), tensor(int64) ): The input type must be a tensor of a numeric type.

  • T2 in ( tensor(int64), tensor(string) ): The output type will be a tensor of strings or integers, depending on which of the the classlabels_* attributes is used.

Examples

Differences

00Tree Ensemble classifier. Returns the top class for each of N inputs.Tree Ensemble classifier. Returns the top class for each of N inputs.
11
22The attributes named 'nodes_X' form a sequence of tuples, associated byThe attributes named 'nodes_X' form a sequence of tuples, associated by
33index into the sequences, which must all be of equal length. These tuplesindex into the sequences, which must all be of equal length. These tuples
44define the nodes.define the nodes.
55
66Similarly, all fields prefixed with 'class_' are tuples of votes at the leaves.Similarly, all fields prefixed with 'class_' are tuples of votes at the leaves.
77A leaf may have multiple votes, where each vote is weighted byA leaf may have multiple votes, where each vote is weighted by
88the associated class_weights index.the associated class_weights index.
99
1010One and only one of classlabels_strings or classlabels_int64sOne and only one of classlabels_strings or classlabels_int64s
1111will be defined. The class_ids are indices into this list.will be defined. The class_ids are indices into this list.
12All fields ending with _as_tensor can be used instead of the
13same parameter without the suffix if the element type is double and not float.
1214
1315**Attributes****Attributes**
1416
1517* **base_values**:* **base_values**:
1618 Base values for classification, added to final class score; the size Base values for classification, added to final class score; the size
1719 must be the same as the classes or can be left unassigned (assumed must be the same as the classes or can be left unassigned (assumed
1820 0) 0)
21* **base_values_as_tensor**:
22 Base values for classification, added to final class score; the size
23 must be the same as the classes or can be left unassigned (assumed
24 0)
1925* **class_ids**:* **class_ids**:
2026 The index of the class list that each weight is for. The index of the class list that each weight is for.
2127* **class_nodeids**:* **class_nodeids**:
2228 node id that this weight is for. node id that this weight is for.
2329* **class_treeids**:* **class_treeids**:
2430 The id of the tree that this node is in. The id of the tree that this node is in.
2531* **class_weights**:* **class_weights**:
2632 The weight for the class in class_id. The weight for the class in class_id.
33* **class_weights_as_tensor**:
34 The weight for the class in class_id.
2735* **classlabels_int64s**:* **classlabels_int64s**:
2836 Class labels if using integer labels.
One and only one of the
Class labels if using integer labels.
One and only one of the
2937 'classlabels_*' attributes must be defined. 'classlabels_*' attributes must be defined.
3038* **classlabels_strings**:* **classlabels_strings**:
3139 Class labels if using string labels.
One and only one of the
Class labels if using string labels.
One and only one of the
3240 'classlabels_*' attributes must be defined. 'classlabels_*' attributes must be defined.
3341* **nodes_falsenodeids**:* **nodes_falsenodeids**:
3442 Child node if expression is false. Child node if expression is false.
3543* **nodes_featureids**:* **nodes_featureids**:
3644 Feature id for each node. Feature id for each node.
3745* **nodes_hitrates**:* **nodes_hitrates**:
3846 Popularity of each node, used for performance and may be omitted. Popularity of each node, used for performance and may be omitted.
47* **nodes_hitrates_as_tensor**:
48 Popularity of each node, used for performance and may be omitted.
3949* **nodes_missing_value_tracks_true**:* **nodes_missing_value_tracks_true**:
4050 For each node, define what to do in the presence of a missing value: For each node, define what to do in the presence of a missing value:
4151 if a value is missing (NaN), use the 'true' or 'false' branch based if a value is missing (NaN), use the 'true' or 'false' branch based
4252 on the value in this array.
This attribute may be left undefined,
on the value in this array.
This attribute may be left undefined,
4353 and the defalt value is false (0) for all nodes. and the defalt value is false (0) for all nodes.
4454* **nodes_modes**:* **nodes_modes**:
4555 The node kind, that is, the comparison to make at the node. There is The node kind, that is, the comparison to make at the node. There is
4656 no comparison to make at a leaf node.
One of 'BRANCH_LEQ',
no comparison to make at a leaf node.
One of 'BRANCH_LEQ',
4757 'BRANCH_LT', 'BRANCH_GTE', 'BRANCH_GT', 'BRANCH_EQ', 'BRANCH_NEQ', 'BRANCH_LT', 'BRANCH_GTE', 'BRANCH_GT', 'BRANCH_EQ', 'BRANCH_NEQ',
4858 'LEAF' 'LEAF'
4959* **nodes_nodeids**:* **nodes_nodeids**:
5060 Node id for each node. Ids may restart at zero for each tree, but it Node id for each node. Ids may restart at zero for each tree, but it
5161 not required to. not required to.
5262* **nodes_treeids**:* **nodes_treeids**:
5363 Tree id for each node. Tree id for each node.
5464* **nodes_truenodeids**:* **nodes_truenodeids**:
5565 Child node if expression is true. Child node if expression is true.
5666* **nodes_values**:* **nodes_values**:
5767 Thresholds to do the splitting on for each node. Thresholds to do the splitting on for each node.
68* **nodes_values_as_tensor**:
69 Thresholds to do the splitting on for each node.
5870* **post_transform**:* **post_transform**:
5971 Indicates the transform to apply to the score.
One of 'NONE,'
Indicates the transform to apply to the score.
One of 'NONE,'
6072 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT.' Default value is 'NONE'. 'SOFTMAX,' 'LOGISTIC,' 'SOFTMAX_ZERO,' or 'PROBIT.' Default value is 'NONE'.
6173
6274**Inputs****Inputs**
6375
6476* **X** (heterogeneous) - **T1**:* **X** (heterogeneous) - **T1**:
6577 Input of shape [N,F] Input of shape [N,F]
6678
6779**Outputs****Outputs**
6880
6981* **Y** (heterogeneous) - **T2**:* **Y** (heterogeneous) - **T2**:
7082 N, Top class for each point N, Top class for each point
7183* **Z** (heterogeneous) - **tensor(float)**:* **Z** (heterogeneous) - **tensor(float)**:
7284 The class score for each class, for each point, a tensor of shape The class score for each class, for each point, a tensor of shape
7385 [N,E]. [N,E].
7486
7587**Type Constraints****Type Constraints**
7688
7789* **T1** in (* **T1** in (
7890 tensor(double), tensor(double),
7991 tensor(float), tensor(float),
8092 tensor(int32), tensor(int32),
8193 tensor(int64) tensor(int64)
8294 ): ):
8395 The input type must be a tensor of a numeric type. The input type must be a tensor of a numeric type.
8496* **T2** in (* **T2** in (
8597 tensor(int64), tensor(int64),
8698 tensor(string) tensor(string)
8799 ): ):
88100 The output type will be a tensor of strings or integers, depending The output type will be a tensor of strings or integers, depending
89101 on which of the the classlabels_* attributes is used. on which of the the classlabels_* attributes is used.

TreeEnsembleClassifier - 1 (ai.onnx.ml)#

Version

This version of the operator has been available since version 1 of domain ai.onnx.ml.

Summary

Tree Ensemble classifier. Returns the top class for each of N inputs.

The attributes named ‘nodes_X’ form a sequence of tuples, associated by index into the sequences, which must all be of equal length. These tuples define the nodes.

Similarly, all fields prefixed with ‘class_’ are tuples of votes at the leaves. A leaf may have multiple votes, where each vote is weighted by the associated class_weights index.

One and only one of classlabels_strings or classlabels_int64s will be defined. The class_ids are indices into this list.

Attributes

  • base_values: Base values for classification, added to final class score; the size must be the same as the classes or can be left unassigned (assumed 0)

  • class_ids: The index of the class list that each weight is for.

  • class_nodeids: node id that this weight is for.

  • class_treeids: The id of the tree that this node is in.

  • class_weights: The weight for the class in class_id.

  • classlabels_int64s: Class labels if using integer labels.<br>One and only one of the ‘classlabels_*’ attributes must be defined.

  • classlabels_strings: Class labels if using string labels.<br>One and only one of the ‘classlabels_*’ attributes must be defined.

  • nodes_falsenodeids: Child node if expression is false.

  • nodes_featureids: Feature id for each node.

  • nodes_hitrates: Popularity of each node, used for performance and may be omitted.

  • nodes_missing_value_tracks_true: For each node, define what to do in the presence of a missing value: if a value is missing (NaN), use the ‘true’ or ‘false’ branch based on the value in this array.<br>This attribute may be left undefined, and the defalt value is false (0) for all nodes.

  • nodes_modes: The node kind, that is, the comparison to make at the node. There is no comparison to make at a leaf node.<br>One of ‘BRANCH_LEQ’, ‘BRANCH_LT’, ‘BRANCH_GTE’, ‘BRANCH_GT’, ‘BRANCH_EQ’, ‘BRANCH_NEQ’, ‘LEAF’

  • nodes_nodeids: Node id for each node. Ids may restart at zero for each tree, but it not required to.

  • nodes_treeids: Tree id for each node.

  • nodes_truenodeids: Child node if expression is true.

  • nodes_values: Thresholds to do the splitting on for each node.

  • post_transform: Indicates the transform to apply to the score. <br> One of ‘NONE,’ ‘SOFTMAX,’ ‘LOGISTIC,’ ‘SOFTMAX_ZERO,’ or ‘PROBIT.’ Default value is 'NONE'.

Inputs

  • X (heterogeneous) - T1: Input of shape [N,F]

Outputs

  • Y (heterogeneous) - T2: N, Top class for each point

  • Z (heterogeneous) - tensor(float): The class score for each class, for each point, a tensor of shape [N,E].

Type Constraints

  • T1 in ( tensor(double), tensor(float), tensor(int32), tensor(int64) ): The input type must be a tensor of a numeric type.

  • T2 in ( tensor(int64), tensor(string) ): The output type will be a tensor of strings or integers, depending on which of the the classlabels_* attributes is used.