treelite
Functions
C API: Functions to build model objects

Functions

int TreeliteGetModelBuilder (char const *json_str, TreeliteModelBuilderHandle *out)
 Initialize a model builder object from a JSON string. More...
 
int TreeliteDeleteModelBuilder (TreeliteModelBuilderHandle model_builder)
 Delete model builder object from memory. More...
 
int TreeliteModelBuilderStartTree (TreeliteModelBuilderHandle model_builder)
 Start a new tree. More...
 
int TreeliteModelBuilderEndTree (TreeliteModelBuilderHandle model_builder)
 End the current tree. More...
 
int TreeliteModelBuilderStartNode (TreeliteModelBuilderHandle model_builder, int node_key)
 Start a new node. More...
 
int TreeliteModelBuilderEndNode (TreeliteModelBuilderHandle model_builder)
 End the current node. More...
 
int TreeliteModelBuilderNumericalTest (TreeliteModelBuilderHandle model_builder, int32_t split_index, double threshold, int default_left, char const *cmp, int left_child_key, int right_child_key)
 Declare the current node as a numerical test node, where the test is of form [feature value] [cmp] [threshold]. Data points for which the test evaluates to True will be mapped to the left child node; all other data points (for which the test evaluates to False) will be mapped to the right child node. More...
 
int TreeliteModelBuilderCategoricalTest (TreeliteModelBuilderHandle model_builder, int32_t split_index, int default_left, uint32_t const *category_list, size_t category_list_len, int category_list_right_child, int left_child_key, int right_child_key)
 Declare the current node as a categorical test node, where the test is of form [feature value] \in [category list]. More...
 
int TreeliteModelBuilderLeafScalar (TreeliteModelBuilderHandle model_builder, double leaf_value)
 Declare the current node as a leaf node with a scalar output. More...
 
int TreeliteModelBuilderLeafVectorFloat32 (TreeliteModelBuilderHandle model_builder, float const *leaf_vector, size_t leaf_vector_len)
 Declare the current node as a leaf node with a vector output (float32) More...
 
int TreeliteModelBuilderLeafVectorFloat64 (TreeliteModelBuilderHandle model_builder, double const *leaf_vector, size_t leaf_vector_len)
 Declare the current node as a leaf node with a vector output (float64) More...
 
int TreeliteModelBuilderGain (TreeliteModelBuilderHandle model_builder, double gain)
 Specify the gain (loss reduction) that's resulted from the current split. More...
 
int TreeliteModelBuilderDataCount (TreeliteModelBuilderHandle model_builder, uint64_t data_count)
 Specify the number of data points (samples) that are mapped to the current node. More...
 
int TreeliteModelBuilderSumHess (TreeliteModelBuilderHandle model_builder, double sum_hess)
 Specify the weighted sample count or the sum of Hessians for the data points that are mapped to the current node. More...
 
int TreeliteModelBuilderCommitModel (TreeliteModelBuilderHandle model_builder, TreeliteModelHandle *out)
 Conclude model building and obtain the final model object. More...
 

Detailed Description

Function Documentation

◆ TreeliteDeleteModelBuilder()

int TreeliteDeleteModelBuilder ( TreeliteModelBuilderHandle  model_builder)

Delete model builder object from memory.

Parameters
model_builderModel builder object to be deleted
Returns
0 for success, -1 for failure

◆ TreeliteGetModelBuilder()

int TreeliteGetModelBuilder ( char const *  json_str,
TreeliteModelBuilderHandle out 
)

Initialize a model builder object from a JSON string.

The JSON string must contain all relevant metadata, including:

  • threshold_type: Type of thresholds in the tree model
  • leaf_output_type: Type of leaf outputs in the tree model
  • metadata: Model metadata, consisting of following subfields:
    • num_feature: Number of features
    • task_type: Task type
    • average_tree_output: Whether to average outputs of trees
    • num_target: Number of targets
    • num_class: Number of classes. num_class[i] is the number of classes of target i.
    • leaf_vector_shape: Shape of the output from each leaf node
  • tree_annotation: Annotation for individual trees, consisting of following subfields:
    • num_tree: Number of trees
    • target_id: target_id Target that each tree is associated with
    • class_id: Class that each tree is associated with
  • postprocessor: Postprocessor for prediction outputs, consisting of following subfields:
    • name: Name of postprocessor
    • config_json: Optional JSON string to configure the postprocessor
  • base_scores: Baseline scores for targets and classes, before adding tree outputs. Also known as the intercept.
  • attributes: Arbitrary JSON object, to be stored in the "attributes" field in the model object.
Parameters
json_strJSON string containing relevant metadata.
outModel builder object
Returns
0 for success, -1 for failure

◆ TreeliteModelBuilderCategoricalTest()

int TreeliteModelBuilderCategoricalTest ( TreeliteModelBuilderHandle  model_builder,
int32_t  split_index,
int  default_left,
uint32_t const *  category_list,
size_t  category_list_len,
int  category_list_right_child,
int  left_child_key,
int  right_child_key 
)

Declare the current node as a categorical test node, where the test is of form [feature value] \in [category list].

Parameters
model_builderModel builder object
split_indexFeature ID
default_leftWhether the missing value should be mapped to the left child
category_listList of categories to be tested for match
category_list_lenLength of category_list
category_list_right_childWhether the data points for which the test evaluates to True should be mapped to the right child or the left child.
left_child_keyInteger key that unique identifies the left child node.
right_child_keyInteger key that unique identifies the right child node.
Returns
0 for success, -1 for failure

◆ TreeliteModelBuilderCommitModel()

int TreeliteModelBuilderCommitModel ( TreeliteModelBuilderHandle  model_builder,
TreeliteModelHandle out 
)

Conclude model building and obtain the final model object.

Parameters
model_builderModel builder object
outFinal model object

◆ TreeliteModelBuilderDataCount()

int TreeliteModelBuilderDataCount ( TreeliteModelBuilderHandle  model_builder,
uint64_t  data_count 
)

Specify the number of data points (samples) that are mapped to the current node.

Parameters
model_builderModel builder object
data_countNumber of data points
Returns
0 for success, -1 for failure

◆ TreeliteModelBuilderEndNode()

int TreeliteModelBuilderEndNode ( TreeliteModelBuilderHandle  model_builder)

End the current node.

Parameters
model_builderModel builder object
Returns
0 for success, -1 for failure

◆ TreeliteModelBuilderEndTree()

int TreeliteModelBuilderEndTree ( TreeliteModelBuilderHandle  model_builder)

End the current tree.

Parameters
model_builderModel builder object
Returns
0 for success, -1 for failure

◆ TreeliteModelBuilderGain()

int TreeliteModelBuilderGain ( TreeliteModelBuilderHandle  model_builder,
double  gain 
)

Specify the gain (loss reduction) that's resulted from the current split.

Parameters
model_builderModel builder object
gainGain (loss reduction)
Returns
0 for success, -1 for failure

◆ TreeliteModelBuilderLeafScalar()

int TreeliteModelBuilderLeafScalar ( TreeliteModelBuilderHandle  model_builder,
double  leaf_value 
)

Declare the current node as a leaf node with a scalar output.

Parameters
model_builderModel builder object
leaf_valueValue of leaf output
Returns
0 for success, -1 for failure

◆ TreeliteModelBuilderLeafVectorFloat32()

int TreeliteModelBuilderLeafVectorFloat32 ( TreeliteModelBuilderHandle  model_builder,
float const *  leaf_vector,
size_t  leaf_vector_len 
)

Declare the current node as a leaf node with a vector output (float32)

Parameters
model_builderModel builder object
leaf_vectorValue of leaf output
leaf_vector_lenLength of leaf_vector
Returns
0 for success, -1 for failure

◆ TreeliteModelBuilderLeafVectorFloat64()

int TreeliteModelBuilderLeafVectorFloat64 ( TreeliteModelBuilderHandle  model_builder,
double const *  leaf_vector,
size_t  leaf_vector_len 
)

Declare the current node as a leaf node with a vector output (float64)

Parameters
model_builderModel builder object
leaf_vectorValue of leaf output
leaf_vector_lenLength of leaf_vector
Returns
0 for success, -1 for failure

◆ TreeliteModelBuilderNumericalTest()

int TreeliteModelBuilderNumericalTest ( TreeliteModelBuilderHandle  model_builder,
int32_t  split_index,
double  threshold,
int  default_left,
char const *  cmp,
int  left_child_key,
int  right_child_key 
)

Declare the current node as a numerical test node, where the test is of form [feature value] [cmp] [threshold]. Data points for which the test evaluates to True will be mapped to the left child node; all other data points (for which the test evaluates to False) will be mapped to the right child node.

Parameters
model_builderModel builder object
split_indexFeature ID
thresholdThreshold
default_leftWhether the missing value should be mapped to the left child
cmpComparison operator
left_child_keyInteger key that unique identifies the left child node.
right_child_keyInteger key that unique identifies the right child node.
Returns
0 for success, -1 for failure

◆ TreeliteModelBuilderStartNode()

int TreeliteModelBuilderStartNode ( TreeliteModelBuilderHandle  model_builder,
int  node_key 
)

Start a new node.

Parameters
model_builderModel builder object
node_keyInteger key that unique identifies the node.
Returns
0 for success, -1 for failure

◆ TreeliteModelBuilderStartTree()

int TreeliteModelBuilderStartTree ( TreeliteModelBuilderHandle  model_builder)

Start a new tree.

Parameters
model_builderModel builder object
Returns
0 for success, -1 for failure

◆ TreeliteModelBuilderSumHess()

int TreeliteModelBuilderSumHess ( TreeliteModelBuilderHandle  model_builder,
double  sum_hess 
)

Specify the weighted sample count or the sum of Hessians for the data points that are mapped to the current node.

Parameters
model_builderModel builder object
sum_hessWeighted sample count or the sum of Hessians
Returns
0 for success, -1 for failure