diff --git a/R/cpp11.R b/R/cpp11.R index b95f07e6..c36a3cd7 100644 --- a/R/cpp11.R +++ b/R/cpp11.R @@ -332,6 +332,74 @@ set_leaf_vector_forest_container_cpp <- function(forest_samples, leaf_vector) { invisible(.Call(`_stochtree_set_leaf_vector_forest_container_cpp`, forest_samples, leaf_vector)) } +is_leaf_node_forest_container_cpp <- function(forest_samples, forest_num, tree_num, node_id) { + .Call(`_stochtree_is_leaf_node_forest_container_cpp`, forest_samples, forest_num, tree_num, node_id) +} + +is_numeric_split_node_forest_container_cpp <- function(forest_samples, forest_num, tree_num, node_id) { + .Call(`_stochtree_is_numeric_split_node_forest_container_cpp`, forest_samples, forest_num, tree_num, node_id) +} + +is_categorical_split_node_forest_container_cpp <- function(forest_samples, forest_num, tree_num, node_id) { + .Call(`_stochtree_is_categorical_split_node_forest_container_cpp`, forest_samples, forest_num, tree_num, node_id) +} + +parent_node_forest_container_cpp <- function(forest_samples, forest_num, tree_num, node_id) { + .Call(`_stochtree_parent_node_forest_container_cpp`, forest_samples, forest_num, tree_num, node_id) +} + +left_child_node_forest_container_cpp <- function(forest_samples, forest_num, tree_num, node_id) { + .Call(`_stochtree_left_child_node_forest_container_cpp`, forest_samples, forest_num, tree_num, node_id) +} + +right_child_node_forest_container_cpp <- function(forest_samples, forest_num, tree_num, node_id) { + .Call(`_stochtree_right_child_node_forest_container_cpp`, forest_samples, forest_num, tree_num, node_id) +} + +node_depth_forest_container_cpp <- function(forest_samples, forest_num, tree_num, node_id) { + .Call(`_stochtree_node_depth_forest_container_cpp`, forest_samples, forest_num, tree_num, node_id) +} + +split_index_forest_container_cpp <- function(forest_samples, forest_num, tree_num, node_id) { + .Call(`_stochtree_split_index_forest_container_cpp`, forest_samples, forest_num, tree_num, node_id) +} + +split_theshold_forest_container_cpp <- function(forest_samples, forest_num, tree_num, node_id) { + .Call(`_stochtree_split_theshold_forest_container_cpp`, forest_samples, forest_num, tree_num, node_id) +} + +split_categories_forest_container_cpp <- function(forest_samples, forest_num, tree_num, node_id) { + .Call(`_stochtree_split_categories_forest_container_cpp`, forest_samples, forest_num, tree_num, node_id) +} + +leaf_values_forest_container_cpp <- function(forest_samples, forest_num, tree_num, node_id) { + .Call(`_stochtree_leaf_values_forest_container_cpp`, forest_samples, forest_num, tree_num, node_id) +} + +num_nodes_forest_container_cpp <- function(forest_samples, forest_num, tree_num) { + .Call(`_stochtree_num_nodes_forest_container_cpp`, forest_samples, forest_num, tree_num) +} + +num_leaves_forest_container_cpp <- function(forest_samples, forest_num, tree_num) { + .Call(`_stochtree_num_leaves_forest_container_cpp`, forest_samples, forest_num, tree_num) +} + +num_leaf_parents_forest_container_cpp <- function(forest_samples, forest_num, tree_num) { + .Call(`_stochtree_num_leaf_parents_forest_container_cpp`, forest_samples, forest_num, tree_num) +} + +num_split_nodes_forest_container_cpp <- function(forest_samples, forest_num, tree_num) { + .Call(`_stochtree_num_split_nodes_forest_container_cpp`, forest_samples, forest_num, tree_num) +} + +nodes_forest_container_cpp <- function(forest_samples, forest_num, tree_num) { + .Call(`_stochtree_nodes_forest_container_cpp`, forest_samples, forest_num, tree_num) +} + +leaves_forest_container_cpp <- function(forest_samples, forest_num, tree_num) { + .Call(`_stochtree_leaves_forest_container_cpp`, forest_samples, forest_num, tree_num) +} + initialize_forest_model_cpp <- function(data, residual, forest_samples, tracker, init_values, leaf_model_int) { invisible(.Call(`_stochtree_initialize_forest_model_cpp`, data, residual, forest_samples, tracker, init_values, leaf_model_int)) } diff --git a/R/forest.R b/R/forest.R index beee46aa..b799e48a 100644 --- a/R/forest.R +++ b/R/forest.R @@ -297,12 +297,12 @@ ForestSamples <- R6::R6Class( n_samples <- self$num_samples() n_trees <- self$num_trees() output <- get_granular_split_count_array_forest_container_cpp(self$forest_container_ptr, num_features) - dim(output) <- c(n_trees, num_features, n_samples) + dim(output) <- c(n_samples, n_trees, num_features) return(output) }, #' @description - #' Maximum depth of a specific tree in a specific ensemble in a `ForestContainer` object + #' Maximum depth of a specific tree in a specific ensemble in a `ForestSamples` object #' @param ensemble_num Ensemble number #' @param tree_num Tree index within ensemble `ensemble_num` #' @return Maximum leaf depth @@ -311,7 +311,7 @@ ForestSamples <- R6::R6Class( }, #' @description - #' Average the maximum depth of each tree in a given ensemble in a `ForestContainer` object + #' Average the maximum depth of each tree in a given ensemble in a `ForestSamples` object #' @param ensemble_num Ensemble number #' @return Average maximum depth average_ensemble_max_depth = function(ensemble_num) { @@ -326,19 +326,200 @@ ForestSamples <- R6::R6Class( }, #' @description - #' Number of leaves in a given ensemble in a `ForestContainer` object + #' Number of leaves in a given ensemble in a `ForestSamples` object #' @param forest_num Index of the ensemble to be queried #' @return Count of leaves in the ensemble stored at `forest_num` - num_leaves = function(forest_num) { + num_forest_leaves = function(forest_num) { return(num_leaves_ensemble_forest_container_cpp(self$forest_container_ptr, forest_num)) }, #' @description - #' Sum of squared (raw) leaf values in a given ensemble in a `ForestContainer` object + #' Sum of squared (raw) leaf values in a given ensemble in a `ForestSamples` object #' @param forest_num Index of the ensemble to be queried #' @return Average maximum depth sum_leaves_squared = function(forest_num) { return(sum_leaves_squared_ensemble_forest_container_cpp(self$forest_container_ptr, forest_num)) + }, + + #' @description + #' Whether or not a given node of a given tree in a given forest in the `ForestSamples` is a leaf + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @param node_id Index of the node to be queried + #' @return `TRUE` if node is a leaf, `FALSE` otherwise + is_leaf_node = function(forest_num, tree_num, node_id) { + return(is_leaf_node_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num, node_id)) + }, + + #' @description + #' Whether or not a given node of a given tree in a given forest in the `ForestSamples` is a numeric split node + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @param node_id Index of the node to be queried + #' @return `TRUE` if node is a numeric split node, `FALSE` otherwise + is_numeric_split_node = function(forest_num, tree_num, node_id) { + return(is_numeric_split_node_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num, node_id)) + }, + + #' @description + #' Whether or not a given node of a given tree in a given forest in the `ForestSamples` is a categorical split node + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @param node_id Index of the node to be queried + #' @return `TRUE` if node is a categorical split node, `FALSE` otherwise + is_categorical_split_node = function(forest_num, tree_num, node_id) { + return(is_categorical_split_node_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num, node_id)) + }, + + #' @description + #' Parent node of given node of a given tree in a given forest in a `ForestSamples` object + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @param node_id Index of the node to be queried + #' @return Integer ID of the parent node + parent_node = function(forest_num, tree_num, node_id) { + return(parent_node_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num, node_id)) + }, + + #' @description + #' Left child node of given node of a given tree in a given forest in a `ForestSamples` object + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @param node_id Index of the node to be queried + #' @return Integer ID of the left child node + left_child_node = function(forest_num, tree_num, node_id) { + return(left_child_node_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num, node_id)) + }, + + #' @description + #' Right child node of given node of a given tree in a given forest in a `ForestSamples` object + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @param node_id Index of the node to be queried + #' @return Integer ID of the right child node + right_child_node = function(forest_num, tree_num, node_id) { + return(right_child_node_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num, node_id)) + }, + + #' @description + #' Depth of given node of a given tree in a given forest in a `ForestSamples` object, with 0 depth for the root node. + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @param node_id Index of the node to be queried + #' @return Integer valued depth of the node + node_depth = function(forest_num, tree_num, node_id) { + return(node_depth_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num, node_id)) + }, + + #' @description + #' Split index of given node of a given tree in a given forest in a `ForestSamples` object. Returns `-1` is node is a leaf. + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @param node_id Index of the node to be queried + #' @return Integer valued depth of the node + node_split_index = function(forest_num, tree_num, node_id) { + if (self$is_leaf_node(forest_num, tree_num, node_id)) { + return(-1) + } else { + return(split_index_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num, node_id)) + } + }, + + #' @description + #' Threshold that defines a numeric split for a given node of a given tree in a given forest in a `ForestSamples` object. + #' Returns `Inf` if the node is a leaf or a categorical split node. + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @param node_id Index of the node to be queried + #' @return Threshold defining a split for the node + node_split_threshold = function(forest_num, tree_num, node_id) { + if (self$is_leaf_node(forest_num, tree_num, node_id) || + self$is_categorical_split_node(forest_num, tree_num, node_id)) { + return(Inf) + } else { + return(split_theshold_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num, node_id)) + } + }, + + #' @description + #' Array of category indices that define a categorical split for a given node of a given tree in a given forest in a `ForestSamples` object. + #' Returns `c(Inf)` if the node is a leaf or a numeric split node. + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @param node_id Index of the node to be queried + #' @return Categories defining a split for the node + node_split_categories = function(forest_num, tree_num, node_id) { + if (self$is_leaf_node(forest_num, tree_num, node_id) || + self$is_numeric_split_node(forest_num, tree_num, node_id)) { + return(c(Inf)) + } else { + return(split_categories_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num, node_id)) + } + }, + + #' @description + #' Leaf node value(s) for a given node of a given tree in a given forest in a `ForestSamples` object. + #' Values are stale if the node is a split node. + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @param node_id Index of the node to be queried + #' @return Vector (often univariate) of leaf values + node_leaf_values = function(forest_num, tree_num, node_id) { + return(leaf_values_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num, node_id)) + }, + + #' @description + #' Number of nodes in a given tree in a given forest in a `ForestSamples` object. + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @return Count of total tree nodes + num_nodes = function(forest_num, tree_num) { + return(num_nodes_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num)) + }, + + #' @description + #' Number of leaves in a given tree in a given forest in a `ForestSamples` object. + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @return Count of total tree leaves + num_leaves = function(forest_num, tree_num) { + return(num_leaves_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num)) + }, + + #' @description + #' Number of leaf parents (split nodes with two leaves as children) in a given tree in a given forest in a `ForestSamples` object. + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @return Count of total tree leaf parents + num_leaf_parents = function(forest_num, tree_num) { + return(num_leaf_parents_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num)) + }, + + #' @description + #' Number of split nodes in a given tree in a given forest in a `ForestSamples` object. + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @return Count of total tree split nodes + num_split_nodes = function(forest_num, tree_num) { + return(num_split_nodes_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num)) + }, + + #' @description + #' Array of node indices in a given tree in a given forest in a `ForestSamples` object. + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @return Indices of tree nodes + nodes = function(forest_num, tree_num) { + return(nodes_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num)) + }, + + #' @description + #' Array of leaf indices in a given tree in a given forest in a `ForestSamples` object. + #' @param forest_num Index of the forest to be queried + #' @param tree_num Index of the tree to be queried + #' @return Indices of leaf nodes + leaves = function(forest_num, tree_num) { + return(leaves_forest_container_cpp(self$forest_container_ptr, forest_num, tree_num)) } ) ) diff --git a/demo/notebooks/tree_inspection.ipynb b/demo/notebooks/tree_inspection.ipynb index d87e4eb2..ba58fe37 100644 --- a/demo/notebooks/tree_inspection.ipynb +++ b/demo/notebooks/tree_inspection.ipynb @@ -41,7 +41,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Generate sample data where feature 1 is the only \"important\" feature." + "Generate sample data where feature 10 is the only \"important\" feature." ] }, { @@ -135,7 +135,7 @@ "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -160,7 +160,7 @@ "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA8VElEQVR4nO3de3hU1aH//88EciWZCZAm4ZJAFL4IahRBIGhBKxbxBpb2eDieghU9VaFC8XuUWG2/1Z8NSrUqckRrFWulKCpoqUopyE3iBQS52CIgBQoEDMLkRjIx2b8/ODPN7EzmlslcNu/X88zzMHv2zKy9wuz92WutvbbNMAxDAAAAFpEU6wIAAABEEuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYCuEGAABYSudYFyDampubdfjwYWVlZclms8W6OAAAIAiGYai6ulo9e/ZUUpL/tpkzLtwcPnxYBQUFsS4GAAAIw8GDB9W7d2+/65xx4SYrK0vS6cqx2+0xLg0AAAhGVVWVCgoKPMdxf864cOPuirLb7YQbAAASTDBDShhQDAAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALIVwAwAALOWMu/1CR3HWuVRZ41JVfaPs6cnK6ZIiR0ZKrIsFAMAZh3ATAYdPntK9b2zT+t2VnmWj+udozsRi9cxOj2HJAAA489At1U7OOlerYCNJ63ZXavYb2+Ssc8WoZAAAnJkIN+1UWeNqFWzc1u2uVGUN4QYAgGgi3LRTVX2j39erA7wOAAAii3DTTva0ZL+vZwV4HQAARBbhpp1yMlM0qn+Oz9dG9c9RTiZXTAEAEE2Em3ZyZKRozsTiVgFnVP8cPTKxmMvBAQCIMi4Fj4Ce2emaN2mwKmtcqq5vVFZasnIymecGAIBYINxEiCODMAMAQDygWwoAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFgK4QYAAFhKTMPNM888o+LiYtntdtntdpWUlOjdd99tc/2FCxfKZrN5PdLS0qJYYgAAEO86x/LLe/furTlz5qh///4yDEMvvfSSxo8fry1btujcc8/1+R673a5du3Z5nttstmgVFwAAJICYhpvrrrvO6/nDDz+sZ555Rh9++GGb4cZmsyk/Pz/o72hoaFBDQ4PneVVVVXiFBQAACSFuxtw0NTVp8eLFqq2tVUlJSZvr1dTUqE+fPiooKND48eO1c+dOv59bVlYmh8PheRQUFES66AAAII7YDMMwYlmA7du3q6SkRPX19crMzNSiRYt09dVX+1y3vLxcu3fvVnFxsZxOp379619r3bp12rlzp3r37u3zPb5abgoKCuR0OmW32ztkmwAAQGRVVVXJ4XAEdfyOebhxuVw6cOCAnE6nXn/9dT3//PNau3atBg0aFPC9jY2NGjhwoCZNmqSHHnooqO8LpXIAAEB8COX4HdMxN5KUkpKifv36SZKGDBmiTz75RE8++aSeffbZgO9NTk7W4MGDtWfPno4uJgAASBBxM+bGrbm52asbyZ+mpiZt375dPXr06OBSAQCARBHTlpvS0lKNGzdOhYWFqq6u1qJFi7RmzRqtWLFCkjR58mT16tVLZWVlkqQHH3xQI0aMUL9+/XTy5EnNnTtX+/fv16233hrLzQAAAHEkpuHm2LFjmjx5so4cOSKHw6Hi4mKtWLFCV155pSTpwIEDSkr6V+PSiRMndNttt6miokJdu3bVkCFDtHHjxqDG5wAAgDNDzAcURxsDigEASDyhHL/jbswNAABAexBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApRBuAACApcQ03DzzzDMqLi6W3W6X3W5XSUmJ3n33Xb/vWbJkic455xylpaXp/PPP1zvvvBOl0gIAgEQQ03DTu3dvzZkzR5s3b9amTZv0ne98R+PHj9fOnTt9rr9x40ZNmjRJU6dO1ZYtWzRhwgRNmDBBO3bsiHLJAQBAvLIZhmHEuhAtdevWTXPnztXUqVNbvXbjjTeqtrZWy5cv9ywbMWKELrzwQi1YsCCoz6+qqpLD4ZDT6ZTdbo9YuQEAQMcJ5fgdN2NumpqatHjxYtXW1qqkpMTnOuXl5RozZozXsrFjx6q8vLzNz21oaFBVVZXXAwAAWFfMw8327duVmZmp1NRU3X777Vq6dKkGDRrkc92Kigrl5eV5LcvLy1NFRUWbn19WViaHw+F5FBQURLT8AAAgvsQ83AwYMEBbt27VRx99pDvuuENTpkzR559/HrHPLy0tldPp9DwOHjwYsc8GAADxp3OsC5CSkqJ+/fpJkoYMGaJPPvlETz75pJ599tlW6+bn5+vo0aNey44ePar8/Pw2Pz81NVWpqamRLTQAAIhbMW+5MWtublZDQ4PP10pKSrRq1SqvZStXrmxzjA4AADjzxLTlprS0VOPGjVNhYaGqq6u1aNEirVmzRitWrJAkTZ48Wb169VJZWZkkacaMGRo9erQee+wxXXPNNVq8eLE2bdqk5557LpabAQAA4khMw82xY8c0efJkHTlyRA6HQ8XFxVqxYoWuvPJKSdKBAweUlPSvxqWRI0dq0aJFuv/++3Xfffepf//+WrZsmc4777xYbQIAAIgzcTfPTUdjnhsAABJPQs5zAwAAEAmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCmEGwAAYCkxDTdlZWW6+OKLlZWVpdzcXE2YMEG7du3y+56FCxfKZrN5PdLS0qJUYgAAEO9iGm7Wrl2radOm6cMPP9TKlSvV2Nio7373u6qtrfX7PrvdriNHjnge+/fvj1KJAQBAvOscyy9/7733vJ4vXLhQubm52rx5s0aNGtXm+2w2m/Lz84P6joaGBjU0NHieV1VVhVdYAACQEOJqzI3T6ZQkdevWze96NTU16tOnjwoKCjR+/Hjt3LmzzXXLysrkcDg8j4KCgoiWGQAAxBebYRhGrAshSc3Nzbr++ut18uRJbdiwoc31ysvLtXv3bhUXF8vpdOrXv/611q1bp507d6p3796t1vfVclNQUCCn0ym73d4h2wIAACKrqqpKDocjqON33ISbO+64Q++++642bNjgM6S0pbGxUQMHDtSkSZP00EMPBVw/lMoBAADxIZTjd0zH3LhNnz5dy5cv17p160IKNpKUnJyswYMHa8+ePR1UOgAAkEhiOubGMAxNnz5dS5cu1erVq1VUVBTyZzQ1NWn79u3q0aNHB5QQAAAkmpi23EybNk2LFi3SW2+9paysLFVUVEiSHA6H0tPTJUmTJ09Wr169VFZWJkl68MEHNWLECPXr108nT57U3LlztX//ft16660x2w4AABA/YhpunnnmGUnSZZdd5rX8xRdf1M033yxJOnDggJKS/tXAdOLECd12222qqKhQ165dNWTIEG3cuFGDBg2KVrEBAEAci5sBxdHCgGIAABJPKMfvuJrnBgAAoL0INwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFIINwAAwFLaNUPx559/rgMHDsjlcnktv/7669tVKAAAgHCFFW6+/PJL3XDDDdq+fbtsNpvckxzbbDZJp29mCQAAEAthdUvNmDFDRUVFOnbsmDIyMrRz506tW7dOQ4cO1Zo1ayJcRAAAgOCF1XJTXl6u1atXKycnR0lJSUpKStKll16qsrIy3XXXXdqyZUukywkAABCUsFpumpqalJWVJUnKycnR4cOHJUl9+vTRrl27Ilc6AACAEIXVcnPeeefps88+U1FRkYYPH65HH31UKSkpeu6553TWWWdFuowAAABBCyvc3H///aqtrZUkPfjgg7r22mv17W9/W927d9err74a0QICAACEwma4L3Vqp6+//lpdu3b1XDEVr6qqquRwOOR0OmW322NdHAAAEIRQjt/tmuempW7dukXqowAAAMIWVripr6/XvHnz9P777+vYsWNqbm72ev3TTz+NSOEAAABCFVa4mTp1qv7yl7/o+9//voYNGxb3XVEAAODMEVa4Wb58ud555x1dcsklkS4PAABAu4Q1z02vXr0889wAAADEk7DCzWOPPaZ7771X+/fvj3R5AAAA2iWsbqmhQ4eqvr5eZ511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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAjcAAAGwCAYAAABVdURTAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA5CElEQVR4nO3deXhU9aH/8U8CWUkyIeQmYQkQJQ9oBUVRDCguoIgrSu+1XG/FirYoXEH8XQUr7a/604Be7RWvirZVrIpUqqBS1FKQTXEBgyzWBaFChYCgZCWZmJzfH3amM5PJrCezfHm/nifPw8ycGb5zZuacz/muKZZlWQIAADBEarwLAAAAYCfCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUbrGuwCx1tbWpn379ik3N1cpKSnxLg4AAAiBZVmqq6tTr169lJoauG7mmAs3+/btU2lpabyLAQAAIrB371716dMn4DbHXLjJzc2V9P3OycvLi3NpAABAKGpra1VaWuo+jwdyzIUbV1NUXl4e4QYAgCQTSpcSOhQDAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFGOueUXOktNo1OH6p2qbWpRXlaaCruly5GdHu9iAQBwzCHc2GDfkaO646WtWv/5Ifd9o8oLNXfCEPXKz4pjyQAAOPbQLBWlmkZnu2AjSes+P6RZL21VTaMzTiUDAODYRLiJ0qF6Z7tg47Lu80M6VE+4AQAglgg3Uaptagn4eF2QxwEAgL0IN1HKy0wL+HhukMcBAIC9CDdRKsxJ16jyQr+PjSovVGEOI6YAAIglwk2UHNnpmjthSLuAM6q8UPMmDGE4OAAAMcZQcBv0ys/SIxOH6lC9U3VNLcrNTFNhDvPcAAAQD4QbmziyCTMAACQCmqUAAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAocQ03jz/+uIYMGaK8vDzl5eWpoqJCr7/+esDnLFmyRIMGDVJmZqYGDx6sFStWxKi0AAAgGcQ13PTp00dz587V5s2btWnTJp1//vm64oortGPHDr/bv/POO5o4caImT56sqqoqjR8/XuPHj9f27dtjXHIAAJCoUizLsuJdCE8FBQV64IEHNHny5HaPXX311WpoaNDy5cvd95155pk65ZRTtGDBgpBev7a2Vg6HQzU1NcrLy7Ot3AAAoPOEc/5OmD43ra2tWrx4sRoaGlRRUeF3m40bN2rMmDFe940dO1YbN27s8HWbm5tVW1vr9QcAAMwV93Czbds25eTkKCMjQ1OmTNHSpUt14okn+t22urpaxcXFXvcVFxerurq6w9evrKyUw+Fw/5WWltpafgAAkFjiHm4GDhyoLVu26L333tNNN92kSZMm6eOPP7bt9WfPnq2amhr33969e217bQAAkHi6xrsA6enpGjBggCTptNNO0wcffKCHH35YTzzxRLttS0pKdODAAa/7Dhw4oJKSkg5fPyMjQxkZGfYWGgAAJKy419z4amtrU3Nzs9/HKioqtGrVKq/7Vq5c2WEfHQAAcOyJa83N7NmzNW7cOPXt21d1dXVatGiR1qxZozfffFOSdO2116p3796qrKyUJE2fPl3nnHOOHnzwQV1yySVavHixNm3apCeffDKebwMAACSQuIabgwcP6tprr9X+/fvlcDg0ZMgQvfnmm7rgggskSXv27FFq6j8rl0aMGKFFixbprrvu0p133qny8nItW7ZMJ510UrzeAgAASDAJN89NZ2OeGwAAkk9SznMDAABgB8INAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGIdwAAACjEG4AAIBRCDcAAMAohBsAAGAUwg0AADAK4QYAABiFcAMAAIxCuAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwCuEGAAAYhXADAACMQrgBAABGiWu4qays1Omnn67c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uAEAAEYh3AAAAKMQbgAAgFEINwAAwCiEGwAAYBTCDQAAMArhBgAAGIVwAwD/kJKSomXLlsW7GACiRLgBEFNff/21brrpJvXt21cZGRkqKSnR2LFj9fbbb8e7aAAM0TXeBQBwbJkwYYKcTqeeeeYZHXfccTpw4IBWrVqlw4cPx7toAAxBzQ2AmDly5IjWr1+vefPm6bzzzlO/fv10xhlnaPbs2br88sslSQ899JAGDx6sbt26qbS0VDfffLPq6+vdr7Fw4ULl5+dr+fLlGjhwoLKzs/XDH/5QjY2NeuaZZ9S/f391795dt9xyi1pbW93P69+/v+655x5NnDhR3bp1U+/evfXoo48GLO/evXv1b//2b8rPz1dBQYGuuOIK/e1vf+uUfQPAPoQbADGTk5OjnJwcLVu2TM3NzX63SU1N1fz587Vjxw4988wzWr16tW6//XavbRobGzV//nwtXrxYb7zxhtasWaMrr7xSK1as0IoVK/Tss8/qiSee0B//+Eev5z3wwAM6+eSTVVVVpVmzZmn69OlauXKl33K0tLRo7Nixys3N1fr16/X2228rJydHF110kZxOpz07BEDniPey5ACOLX/84x+t7t27W5mZmdaIESOs2bNnWx999FGH2y9ZssTq0aOH+/bTTz9tSbJ27tzpvu9nP/uZlZ2dbdXV1bnvGzt2rPWzn/3Mfbtfv37WRRdd5PXaV199tTVu3Dj3bUnW0qVLLcuyrGeffdYaOHCg1dbW5n68ubnZysrKst58883w3ziAmKHmBkBMTZgwQfv27dOrr76qiy66SGvWrNGpp56qhQsXSpL+8pe/aPTo0erdu7dyc3P14x//WIcPH1ZjY6P7NbKzs3X88ce7bxcXF6t///7Kycnxuu/gwYNe/3dFRUW723/961/9lvOjjz7Szp07lZub665xKigoUFNTk7744otodwOATkSHYgAxl5mZqQsuuEAXXHCB5syZoxtuuEG//OUvde655+rSSy/VTTfdpHvvvVcFBQXasGGDJk+eLKfTqezsbElSWlqa1+ulpKT4va+trS3iMtbX1+u0007T888/3+6xf/mXf4n4dQF0PsINgLg78cQTtWzZMm3evFltbW168MEHlZr6fcXyiy++aNv/8+6777a7fcIJJ/jd9tRTT9Uf/vAHFRUVKS8vz7YyAOh8NEsBiJnDhw/r/PPP13PPPaetW7dq9+7dWrJkie6//35dccUVGjBggFpaWvTII49o165devbZZ7VgwQLb/v+3335b999/vz777DM9+uijWrJkiaZPn+5322uuuUaFhYW64oortH79eu3evVtr1qzRLbfcor///e+2lQmA/ai5ARAzOTk5Gj58uH7961/riy++UEtLi0pLS3XjjTfqzjvvVFZWlh566CHNmzdPs2fP1qhRo1RZWalrr73Wlv//tttu06ZNm/SrX/1KeXl5euihhzR27Fi/22ZnZ2vdunW64447dNVVV6murk69e/fW6NGjqckBElyKZVlWvAsBAJ2tf//+mjFjhmbMmBHvogDoZDRLAQAAoxBuAACAUWiWAgAARqHmBgAAGIVwAwAAjEK4AQAARiHcAAAAoxBuAACAUQg3AADAKIQbAABgFMINAAAwyv8H8NKqM+OzangAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -190,7 +190,7 @@ { "data": { "text/plain": [ - "1.2873862776376062" + "1.2202176097944513" ] }, "execution_count": 7, @@ -217,7 +217,7 @@ { "data": { "text/plain": [ - "array([28, 23, 23, 19, 18, 28, 35, 34, 40, 29], dtype=int32)" + "array([25, 30, 21, 30, 24, 26, 25, 32, 18, 30], dtype=int32)" ] }, "execution_count": 8, @@ -237,7 +237,7 @@ { "data": { "text/plain": [ - "array([3199, 2738, 2626, 2031, 1976, 3262, 2024, 2764, 2891, 3670],\n", + "array([3068, 3063, 2401, 2770, 2372, 2522, 2260, 2606, 2239, 3620],\n", " dtype=int32)" ] }, @@ -301,7 +301,7 @@ { "data": { "text/plain": [ - "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 1], dtype=int32)" + "array([0, 0, 0, 0, 0, 0, 0, 0, 0, 2], dtype=int32)" ] }, "execution_count": 12, @@ -328,7 +328,7 @@ { "data": { "text/plain": [ - "array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int32)" + "array([0, 0, 1, 0, 0, 0, 0, 0, 0, 0], dtype=int32)" ] }, "execution_count": 13, @@ -348,7 +348,7 @@ { "data": { "text/plain": [ - "array([0, 0, 0, 0, 0, 0, 0, 0, 1, 1], dtype=int32)" + "array([0, 1, 0, 0, 0, 0, 0, 0, 0, 0], dtype=int32)" ] }, "execution_count": 14, @@ -393,9 +393,9 @@ "name": "stdout", "output_type": "stream", "text": [ - "node=0 is a split node, which tells us to go to node 1 if X[:, 9] <= 0.49971201341971494 else to node 2.\n", - "\tnode=1 is a leaf node with value=[-0.313].\n", - "\tnode=2 is a leaf node with value=[0.406].\n" + "node=0 is a split node, which tells us to go to node 1 if X[:, 9] <= 0.49719406595027094 else to node 2.\n", + "\tnode=1 is a leaf node with value=[-0.355].\n", + "\tnode=2 is a leaf node with value=[0.464].\n" ] } ], diff --git a/man/ForestSamples.Rd b/man/ForestSamples.Rd index 67810072..bead9332 100644 --- a/man/ForestSamples.Rd +++ b/man/ForestSamples.Rd @@ -43,8 +43,25 @@ Wrapper around a C++ container of tree ensembles \item \href{#method-ForestSamples-ensemble_tree_max_depth}{\code{ForestSamples$ensemble_tree_max_depth()}} \item \href{#method-ForestSamples-average_ensemble_max_depth}{\code{ForestSamples$average_ensemble_max_depth()}} \item \href{#method-ForestSamples-average_max_depth}{\code{ForestSamples$average_max_depth()}} -\item \href{#method-ForestSamples-num_leaves}{\code{ForestSamples$num_leaves()}} +\item \href{#method-ForestSamples-num_forest_leaves}{\code{ForestSamples$num_forest_leaves()}} \item \href{#method-ForestSamples-sum_leaves_squared}{\code{ForestSamples$sum_leaves_squared()}} +\item \href{#method-ForestSamples-is_leaf_node}{\code{ForestSamples$is_leaf_node()}} +\item \href{#method-ForestSamples-is_numeric_split_node}{\code{ForestSamples$is_numeric_split_node()}} +\item \href{#method-ForestSamples-is_categorical_split_node}{\code{ForestSamples$is_categorical_split_node()}} +\item \href{#method-ForestSamples-parent_node}{\code{ForestSamples$parent_node()}} +\item \href{#method-ForestSamples-left_child_node}{\code{ForestSamples$left_child_node()}} +\item \href{#method-ForestSamples-right_child_node}{\code{ForestSamples$right_child_node()}} +\item \href{#method-ForestSamples-node_depth}{\code{ForestSamples$node_depth()}} +\item \href{#method-ForestSamples-node_split_index}{\code{ForestSamples$node_split_index()}} +\item \href{#method-ForestSamples-node_split_threshold}{\code{ForestSamples$node_split_threshold()}} +\item \href{#method-ForestSamples-node_split_categories}{\code{ForestSamples$node_split_categories()}} +\item \href{#method-ForestSamples-node_leaf_values}{\code{ForestSamples$node_leaf_values()}} +\item \href{#method-ForestSamples-num_nodes}{\code{ForestSamples$num_nodes()}} +\item \href{#method-ForestSamples-num_leaves}{\code{ForestSamples$num_leaves()}} +\item \href{#method-ForestSamples-num_leaf_parents}{\code{ForestSamples$num_leaf_parents()}} +\item \href{#method-ForestSamples-num_split_nodes}{\code{ForestSamples$num_split_nodes()}} +\item \href{#method-ForestSamples-nodes}{\code{ForestSamples$nodes()}} +\item \href{#method-ForestSamples-leaves}{\code{ForestSamples$leaves()}} } } \if{html}{\out{
}} @@ -577,7 +594,7 @@ Retrieve a vector of split counts for every training set variable in a given for \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-ForestSamples-ensemble_tree_max_depth}{}}} \subsection{Method \code{ensemble_tree_max_depth()}}{ -Maximum depth of a specific tree in a specific ensemble in a \code{ForestContainer} object +Maximum depth of a specific tree in a specific ensemble in a \code{ForestSamples} object \subsection{Usage}{ \if{html}{\out{
}}\preformatted{ForestSamples$ensemble_tree_max_depth(ensemble_num, tree_num)}\if{html}{\out{
}} } @@ -599,7 +616,7 @@ Maximum leaf depth \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-ForestSamples-average_ensemble_max_depth}{}}} \subsection{Method \code{average_ensemble_max_depth()}}{ -Average the maximum depth of each tree in a given ensemble in a \code{ForestContainer} object +Average the maximum depth of each tree in a given ensemble in a \code{ForestSamples} object \subsection{Usage}{ \if{html}{\out{
}}\preformatted{ForestSamples$average_ensemble_max_depth(ensemble_num)}\if{html}{\out{
}} } @@ -629,12 +646,12 @@ Average maximum depth } } \if{html}{\out{
}} -\if{html}{\out{}} -\if{latex}{\out{\hypertarget{method-ForestSamples-num_leaves}{}}} -\subsection{Method \code{num_leaves()}}{ -Number of leaves in a given ensemble in a \code{ForestContainer} object +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-num_forest_leaves}{}}} +\subsection{Method \code{num_forest_leaves()}}{ +Number of leaves in a given ensemble in a \code{ForestSamples} object \subsection{Usage}{ -\if{html}{\out{
}}\preformatted{ForestSamples$num_leaves(forest_num)}\if{html}{\out{
}} +\if{html}{\out{
}}\preformatted{ForestSamples$num_forest_leaves(forest_num)}\if{html}{\out{
}} } \subsection{Arguments}{ @@ -652,7 +669,7 @@ Count of leaves in the ensemble stored at \code{forest_num} \if{html}{\out{}} \if{latex}{\out{\hypertarget{method-ForestSamples-sum_leaves_squared}{}}} \subsection{Method \code{sum_leaves_squared()}}{ -Sum of squared (raw) leaf values in a given ensemble in a \code{ForestContainer} object +Sum of squared (raw) leaf values in a given ensemble in a \code{ForestSamples} object \subsection{Usage}{ \if{html}{\out{
}}\preformatted{ForestSamples$sum_leaves_squared(forest_num)}\if{html}{\out{
}} } @@ -668,4 +685,403 @@ Sum of squared (raw) leaf values in a given ensemble in a \code{ForestContainer} Average maximum depth } } +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-is_leaf_node}{}}} +\subsection{Method \code{is_leaf_node()}}{ +Whether or not a given node of a given tree in a given forest in the \code{ForestSamples} is a leaf +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$is_leaf_node(forest_num, tree_num, node_id)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} + +\item{\code{node_id}}{Index of the node to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +\code{TRUE} if node is a leaf, \code{FALSE} otherwise +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-is_numeric_split_node}{}}} +\subsection{Method \code{is_numeric_split_node()}}{ +Whether or not a given node of a given tree in a given forest in the \code{ForestSamples} is a numeric split node +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$is_numeric_split_node(forest_num, tree_num, node_id)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} + +\item{\code{node_id}}{Index of the node to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +\code{TRUE} if node is a numeric split node, \code{FALSE} otherwise +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-is_categorical_split_node}{}}} +\subsection{Method \code{is_categorical_split_node()}}{ +Whether or not a given node of a given tree in a given forest in the \code{ForestSamples} is a categorical split node +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$is_categorical_split_node(forest_num, tree_num, node_id)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} + +\item{\code{node_id}}{Index of the node to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +\code{TRUE} if node is a categorical split node, \code{FALSE} otherwise +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-parent_node}{}}} +\subsection{Method \code{parent_node()}}{ +Parent node of given node of a given tree in a given forest in a \code{ForestSamples} object +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$parent_node(forest_num, tree_num, node_id)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} + +\item{\code{node_id}}{Index of the node to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Integer ID of the parent node +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-left_child_node}{}}} +\subsection{Method \code{left_child_node()}}{ +Left child node of given node of a given tree in a given forest in a \code{ForestSamples} object +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$left_child_node(forest_num, tree_num, node_id)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} + +\item{\code{node_id}}{Index of the node to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Integer ID of the left child node +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-right_child_node}{}}} +\subsection{Method \code{right_child_node()}}{ +Right child node of given node of a given tree in a given forest in a \code{ForestSamples} object +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$right_child_node(forest_num, tree_num, node_id)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} + +\item{\code{node_id}}{Index of the node to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Integer ID of the right child node +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-node_depth}{}}} +\subsection{Method \code{node_depth()}}{ +Depth of given node of a given tree in a given forest in a \code{ForestSamples} object, with 0 depth for the root node. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$node_depth(forest_num, tree_num, node_id)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} + +\item{\code{node_id}}{Index of the node to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Integer valued depth of the node +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-node_split_index}{}}} +\subsection{Method \code{node_split_index()}}{ +Split index of given node of a given tree in a given forest in a \code{ForestSamples} object. Returns \code{-1} is node is a leaf. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$node_split_index(forest_num, tree_num, node_id)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} + +\item{\code{node_id}}{Index of the node to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Integer valued depth of the node +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-node_split_threshold}{}}} +\subsection{Method \code{node_split_threshold()}}{ +Threshold that defines a numeric split for a given node of a given tree in a given forest in a \code{ForestSamples} object. +Returns \code{Inf} if the node is a leaf or a categorical split node. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$node_split_threshold(forest_num, tree_num, node_id)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} + +\item{\code{node_id}}{Index of the node to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Threshold defining a split for the node +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-node_split_categories}{}}} +\subsection{Method \code{node_split_categories()}}{ +Array of category indices that define a categorical split for a given node of a given tree in a given forest in a \code{ForestSamples} object. +Returns \code{c(Inf)} if the node is a leaf or a numeric split node. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$node_split_categories(forest_num, tree_num, node_id)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} + +\item{\code{node_id}}{Index of the node to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Categories defining a split for the node +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-node_leaf_values}{}}} +\subsection{Method \code{node_leaf_values()}}{ +Leaf node value(s) for a given node of a given tree in a given forest in a \code{ForestSamples} object. +Values are stale if the node is a split node. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$node_leaf_values(forest_num, tree_num, node_id)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} + +\item{\code{node_id}}{Index of the node to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Vector (often univariate) of leaf values +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-num_nodes}{}}} +\subsection{Method \code{num_nodes()}}{ +Number of nodes in a given tree in a given forest in a \code{ForestSamples} object. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$num_nodes(forest_num, tree_num)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Count of total tree nodes +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-num_leaves}{}}} +\subsection{Method \code{num_leaves()}}{ +Number of leaves in a given tree in a given forest in a \code{ForestSamples} object. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$num_leaves(forest_num, tree_num)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Count of total tree leaves +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-num_leaf_parents}{}}} +\subsection{Method \code{num_leaf_parents()}}{ +Number of leaf parents (split nodes with two leaves as children) in a given tree in a given forest in a \code{ForestSamples} object. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$num_leaf_parents(forest_num, tree_num)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Count of total tree leaf parents +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-num_split_nodes}{}}} +\subsection{Method \code{num_split_nodes()}}{ +Number of split nodes in a given tree in a given forest in a \code{ForestSamples} object. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$num_split_nodes(forest_num, tree_num)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Count of total tree split nodes +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-nodes}{}}} +\subsection{Method \code{nodes()}}{ +Array of node indices in a given tree in a given forest in a \code{ForestSamples} object. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$nodes(forest_num, tree_num)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Indices of tree nodes +} +} +\if{html}{\out{
}} +\if{html}{\out{}} +\if{latex}{\out{\hypertarget{method-ForestSamples-leaves}{}}} +\subsection{Method \code{leaves()}}{ +Array of leaf indices in a given tree in a given forest in a \code{ForestSamples} object. +\subsection{Usage}{ +\if{html}{\out{
}}\preformatted{ForestSamples$leaves(forest_num, tree_num)}\if{html}{\out{
}} +} + +\subsection{Arguments}{ +\if{html}{\out{
}} +\describe{ +\item{\code{forest_num}}{Index of the forest to be queried} + +\item{\code{tree_num}}{Index of the tree to be queried} +} +\if{html}{\out{
}} +} +\subsection{Returns}{ +Indices of leaf nodes +} +} } diff --git a/src/cpp11.cpp b/src/cpp11.cpp index 7d7b3a04..220ddf3b 100644 --- a/src/cpp11.cpp +++ b/src/cpp11.cpp @@ -618,6 +618,125 @@ extern "C" SEXP _stochtree_set_leaf_vector_forest_container_cpp(SEXP forest_samp END_CPP11 } // forest.cpp +bool is_leaf_node_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id); +extern "C" SEXP _stochtree_is_leaf_node_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num, SEXP node_id) { + BEGIN_CPP11 + return cpp11::as_sexp(is_leaf_node_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num), cpp11::as_cpp>(node_id))); + END_CPP11 +} +// forest.cpp +bool is_numeric_split_node_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id); +extern "C" SEXP _stochtree_is_numeric_split_node_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num, SEXP node_id) { + BEGIN_CPP11 + return cpp11::as_sexp(is_numeric_split_node_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num), cpp11::as_cpp>(node_id))); + END_CPP11 +} +// forest.cpp +bool is_categorical_split_node_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id); +extern "C" SEXP _stochtree_is_categorical_split_node_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num, SEXP node_id) { + BEGIN_CPP11 + return cpp11::as_sexp(is_categorical_split_node_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num), cpp11::as_cpp>(node_id))); + END_CPP11 +} +// forest.cpp +int parent_node_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id); +extern "C" SEXP _stochtree_parent_node_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num, SEXP node_id) { + BEGIN_CPP11 + return cpp11::as_sexp(parent_node_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num), cpp11::as_cpp>(node_id))); + END_CPP11 +} +// forest.cpp +int left_child_node_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id); +extern "C" SEXP _stochtree_left_child_node_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num, SEXP node_id) { + BEGIN_CPP11 + return cpp11::as_sexp(left_child_node_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num), cpp11::as_cpp>(node_id))); + END_CPP11 +} +// forest.cpp +int right_child_node_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id); +extern "C" SEXP _stochtree_right_child_node_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num, SEXP node_id) { + BEGIN_CPP11 + return cpp11::as_sexp(right_child_node_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num), cpp11::as_cpp>(node_id))); + END_CPP11 +} +// forest.cpp +int node_depth_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id); +extern "C" SEXP _stochtree_node_depth_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num, SEXP node_id) { + BEGIN_CPP11 + return cpp11::as_sexp(node_depth_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num), cpp11::as_cpp>(node_id))); + END_CPP11 +} +// forest.cpp +int split_index_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id); +extern "C" SEXP _stochtree_split_index_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num, SEXP node_id) { + BEGIN_CPP11 + return cpp11::as_sexp(split_index_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num), cpp11::as_cpp>(node_id))); + END_CPP11 +} +// forest.cpp +double split_theshold_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id); +extern "C" SEXP _stochtree_split_theshold_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num, SEXP node_id) { + BEGIN_CPP11 + return cpp11::as_sexp(split_theshold_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num), cpp11::as_cpp>(node_id))); + END_CPP11 +} +// forest.cpp +cpp11::writable::integers split_categories_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id); +extern "C" SEXP _stochtree_split_categories_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num, SEXP node_id) { + BEGIN_CPP11 + return cpp11::as_sexp(split_categories_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num), cpp11::as_cpp>(node_id))); + END_CPP11 +} +// forest.cpp +cpp11::writable::doubles leaf_values_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id); +extern "C" SEXP _stochtree_leaf_values_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num, SEXP node_id) { + BEGIN_CPP11 + return cpp11::as_sexp(leaf_values_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num), cpp11::as_cpp>(node_id))); + END_CPP11 +} +// forest.cpp +int num_nodes_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num); +extern "C" SEXP _stochtree_num_nodes_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num) { + BEGIN_CPP11 + return cpp11::as_sexp(num_nodes_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num))); + END_CPP11 +} +// forest.cpp +int num_leaves_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num); +extern "C" SEXP _stochtree_num_leaves_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num) { + BEGIN_CPP11 + return cpp11::as_sexp(num_leaves_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num))); + END_CPP11 +} +// forest.cpp +int num_leaf_parents_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num); +extern "C" SEXP _stochtree_num_leaf_parents_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num) { + BEGIN_CPP11 + return cpp11::as_sexp(num_leaf_parents_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num))); + END_CPP11 +} +// forest.cpp +int num_split_nodes_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num); +extern "C" SEXP _stochtree_num_split_nodes_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num) { + BEGIN_CPP11 + return cpp11::as_sexp(num_split_nodes_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num))); + END_CPP11 +} +// forest.cpp +cpp11::writable::integers nodes_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num); +extern "C" SEXP _stochtree_nodes_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num) { + BEGIN_CPP11 + return cpp11::as_sexp(nodes_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num))); + END_CPP11 +} +// forest.cpp +cpp11::writable::integers leaves_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num); +extern "C" SEXP _stochtree_leaves_forest_container_cpp(SEXP forest_samples, SEXP forest_num, SEXP tree_num) { + BEGIN_CPP11 + return cpp11::as_sexp(leaves_forest_container_cpp(cpp11::as_cpp>>(forest_samples), cpp11::as_cpp>(forest_num), cpp11::as_cpp>(tree_num))); + END_CPP11 +} +// forest.cpp void initialize_forest_model_cpp(cpp11::external_pointer data, cpp11::external_pointer residual, cpp11::external_pointer forest_samples, cpp11::external_pointer tracker, cpp11::doubles init_values, int leaf_model_int); extern "C" SEXP _stochtree_initialize_forest_model_cpp(SEXP data, SEXP residual, SEXP forest_samples, SEXP tracker, SEXP init_values, SEXP leaf_model_int) { BEGIN_CPP11 @@ -1015,7 +1134,10 @@ static const R_CallMethodDef CallEntries[] = { {"_stochtree_get_tree_split_counts_forest_container_cpp", (DL_FUNC) &_stochtree_get_tree_split_counts_forest_container_cpp, 4}, {"_stochtree_init_json_cpp", (DL_FUNC) &_stochtree_init_json_cpp, 0}, {"_stochtree_initialize_forest_model_cpp", (DL_FUNC) &_stochtree_initialize_forest_model_cpp, 6}, + {"_stochtree_is_categorical_split_node_forest_container_cpp", (DL_FUNC) &_stochtree_is_categorical_split_node_forest_container_cpp, 4}, {"_stochtree_is_leaf_constant_forest_container_cpp", (DL_FUNC) &_stochtree_is_leaf_constant_forest_container_cpp, 1}, + {"_stochtree_is_leaf_node_forest_container_cpp", (DL_FUNC) &_stochtree_is_leaf_node_forest_container_cpp, 4}, + {"_stochtree_is_numeric_split_node_forest_container_cpp", (DL_FUNC) &_stochtree_is_numeric_split_node_forest_container_cpp, 4}, {"_stochtree_json_add_bool_cpp", (DL_FUNC) &_stochtree_json_add_bool_cpp, 3}, {"_stochtree_json_add_bool_subfolder_cpp", (DL_FUNC) &_stochtree_json_add_bool_subfolder_cpp, 4}, {"_stochtree_json_add_double_cpp", (DL_FUNC) &_stochtree_json_add_double_cpp, 3}, @@ -1048,11 +1170,21 @@ static const R_CallMethodDef CallEntries[] = { {"_stochtree_json_load_string_cpp", (DL_FUNC) &_stochtree_json_load_string_cpp, 2}, {"_stochtree_json_save_file_cpp", (DL_FUNC) &_stochtree_json_save_file_cpp, 2}, {"_stochtree_json_save_forest_container_cpp", (DL_FUNC) &_stochtree_json_save_forest_container_cpp, 2}, + {"_stochtree_leaf_values_forest_container_cpp", (DL_FUNC) &_stochtree_leaf_values_forest_container_cpp, 4}, + {"_stochtree_leaves_forest_container_cpp", (DL_FUNC) &_stochtree_leaves_forest_container_cpp, 3}, + {"_stochtree_left_child_node_forest_container_cpp", (DL_FUNC) &_stochtree_left_child_node_forest_container_cpp, 4}, + {"_stochtree_node_depth_forest_container_cpp", (DL_FUNC) &_stochtree_node_depth_forest_container_cpp, 4}, + {"_stochtree_nodes_forest_container_cpp", (DL_FUNC) &_stochtree_nodes_forest_container_cpp, 3}, + {"_stochtree_num_leaf_parents_forest_container_cpp", (DL_FUNC) &_stochtree_num_leaf_parents_forest_container_cpp, 3}, {"_stochtree_num_leaves_ensemble_forest_container_cpp", (DL_FUNC) &_stochtree_num_leaves_ensemble_forest_container_cpp, 2}, + {"_stochtree_num_leaves_forest_container_cpp", (DL_FUNC) &_stochtree_num_leaves_forest_container_cpp, 3}, + {"_stochtree_num_nodes_forest_container_cpp", (DL_FUNC) &_stochtree_num_nodes_forest_container_cpp, 3}, {"_stochtree_num_samples_forest_container_cpp", (DL_FUNC) &_stochtree_num_samples_forest_container_cpp, 1}, + {"_stochtree_num_split_nodes_forest_container_cpp", (DL_FUNC) &_stochtree_num_split_nodes_forest_container_cpp, 3}, {"_stochtree_num_trees_forest_container_cpp", (DL_FUNC) &_stochtree_num_trees_forest_container_cpp, 1}, {"_stochtree_output_dimension_forest_container_cpp", (DL_FUNC) &_stochtree_output_dimension_forest_container_cpp, 1}, {"_stochtree_overwrite_column_vector_cpp", (DL_FUNC) &_stochtree_overwrite_column_vector_cpp, 2}, + {"_stochtree_parent_node_forest_container_cpp", (DL_FUNC) &_stochtree_parent_node_forest_container_cpp, 4}, {"_stochtree_predict_forest_cpp", (DL_FUNC) &_stochtree_predict_forest_cpp, 2}, {"_stochtree_predict_forest_raw_cpp", (DL_FUNC) &_stochtree_predict_forest_raw_cpp, 2}, {"_stochtree_predict_forest_raw_single_forest_cpp", (DL_FUNC) &_stochtree_predict_forest_raw_single_forest_cpp, 3}, @@ -1096,6 +1228,7 @@ static const R_CallMethodDef CallEntries[] = { {"_stochtree_rfx_model_set_working_parameter_cpp", (DL_FUNC) &_stochtree_rfx_model_set_working_parameter_cpp, 2}, {"_stochtree_rfx_tracker_cpp", (DL_FUNC) &_stochtree_rfx_tracker_cpp, 1}, {"_stochtree_rfx_tracker_get_unique_group_ids_cpp", (DL_FUNC) &_stochtree_rfx_tracker_get_unique_group_ids_cpp, 1}, + {"_stochtree_right_child_node_forest_container_cpp", (DL_FUNC) &_stochtree_right_child_node_forest_container_cpp, 4}, {"_stochtree_rng_cpp", (DL_FUNC) &_stochtree_rng_cpp, 1}, {"_stochtree_sample_gfr_one_iteration_cpp", (DL_FUNC) &_stochtree_sample_gfr_one_iteration_cpp, 15}, {"_stochtree_sample_mcmc_one_iteration_cpp", (DL_FUNC) &_stochtree_sample_mcmc_one_iteration_cpp, 15}, @@ -1103,6 +1236,9 @@ static const R_CallMethodDef CallEntries[] = { {"_stochtree_sample_tau_one_iteration_cpp", (DL_FUNC) &_stochtree_sample_tau_one_iteration_cpp, 5}, {"_stochtree_set_leaf_value_forest_container_cpp", (DL_FUNC) &_stochtree_set_leaf_value_forest_container_cpp, 2}, {"_stochtree_set_leaf_vector_forest_container_cpp", (DL_FUNC) &_stochtree_set_leaf_vector_forest_container_cpp, 2}, + {"_stochtree_split_categories_forest_container_cpp", (DL_FUNC) &_stochtree_split_categories_forest_container_cpp, 4}, + {"_stochtree_split_index_forest_container_cpp", (DL_FUNC) &_stochtree_split_index_forest_container_cpp, 4}, + {"_stochtree_split_theshold_forest_container_cpp", (DL_FUNC) &_stochtree_split_theshold_forest_container_cpp, 4}, {"_stochtree_subtract_from_column_vector_cpp", (DL_FUNC) &_stochtree_subtract_from_column_vector_cpp, 2}, {"_stochtree_sum_leaves_squared_ensemble_forest_container_cpp", (DL_FUNC) &_stochtree_sum_leaves_squared_ensemble_forest_container_cpp, 2}, {"_stochtree_tree_prior_cpp", (DL_FUNC) &_stochtree_tree_prior_cpp, 4}, diff --git a/src/forest.cpp b/src/forest.cpp index d510a16f..ec839785 100644 --- a/src/forest.cpp +++ b/src/forest.cpp @@ -303,6 +303,136 @@ void set_leaf_vector_forest_container_cpp(cpp11::external_pointerInitializeRoot(leaf_vector_converted); } +[[cpp11::register]] +bool is_leaf_node_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->IsLeaf(node_id); +} + +[[cpp11::register]] +bool is_numeric_split_node_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->IsNumericSplitNode(node_id); +} + +[[cpp11::register]] +bool is_categorical_split_node_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->IsCategoricalSplitNode(node_id); +} + +[[cpp11::register]] +int parent_node_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->Parent(node_id); +} + +[[cpp11::register]] +int left_child_node_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->LeftChild(node_id); +} + +[[cpp11::register]] +int right_child_node_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->RightChild(node_id); +} + +[[cpp11::register]] +int node_depth_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->GetDepth(node_id); +} + +[[cpp11::register]] +int split_index_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->SplitIndex(node_id); +} + +[[cpp11::register]] +double split_theshold_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->Threshold(node_id); +} + +[[cpp11::register]] +cpp11::writable::integers split_categories_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + std::vector raw_categories = tree->CategoryList(node_id); + cpp11::writable::integers output(raw_categories.begin(), raw_categories.end()); + return output; +} + +[[cpp11::register]] +cpp11::writable::doubles leaf_values_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num, int node_id) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + int num_outputs = tree->OutputDimension(); + cpp11::writable::doubles output(num_outputs); + for (int i = 0; i < num_outputs; i++) { + output[i] = tree->LeafValue(node_id, i); + } + return output; +} + +[[cpp11::register]] +int num_nodes_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->NumValidNodes(); +} + +[[cpp11::register]] +int num_leaves_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->NumLeaves(); +} + +[[cpp11::register]] +int num_leaf_parents_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->NumLeafParents(); +} + +[[cpp11::register]] +int num_split_nodes_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + return tree->NumSplitNodes(); +} + +[[cpp11::register]] +cpp11::writable::integers nodes_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + std::vector leaves = tree->GetNodes(); + cpp11::writable::integers output(leaves.begin(), leaves.end()); + return output; +} + +[[cpp11::register]] +cpp11::writable::integers leaves_forest_container_cpp(cpp11::external_pointer forest_samples, int forest_num, int tree_num) { + StochTree::TreeEnsemble* ensemble = forest_samples->GetEnsemble(forest_num); + StochTree::Tree* tree = ensemble->GetTree(tree_num); + std::vector leaves = tree->GetLeaves(); + cpp11::writable::integers output(leaves.begin(), leaves.end()); + return output; +} + [[cpp11::register]] void initialize_forest_model_cpp(cpp11::external_pointer data, cpp11::external_pointer residual, diff --git a/stochtree/forest.py b/stochtree/forest.py index 4eefae79..bf434884 100644 --- a/stochtree/forest.py +++ b/stochtree/forest.py @@ -252,7 +252,6 @@ def right_child_node(self, forest_num: int, tree_num: int, node_id: int) -> int: def node_depth(self, forest_num: int, tree_num: int, node_id: int) -> int: """ Depth of given node of a given tree in a given forest in the ``ForestContainer``. - Returns ``-1`` if the node is a leaf. forest_num : :obj:`int` Index of the forest to be queried @@ -352,7 +351,7 @@ def num_leaves(self, forest_num: int, tree_num: int) -> int: def num_leaf_parents(self, forest_num: int, tree_num: int) -> int: """ - Number of leaf parents in a given tree in a given forest in the ``ForestContainer``. + Number of leaf parents (split nodes with two leaves as children) in a given tree in a given forest in the ``ForestContainer``. forest_num : :obj:`int` Index of the forest to be queried diff --git a/vignettes/TreeInspection.Rmd b/vignettes/TreeInspection.Rmd new file mode 100644 index 00000000..c06a3332 --- /dev/null +++ b/vignettes/TreeInspection.Rmd @@ -0,0 +1,147 @@ +--- +title: "Deeper Dive on Sampled Forests in StochTree" +output: rmarkdown::html_vignette +vignette: > + %\VignetteIndexEntry{Bayesian-Supervised-Learning} + %\VignetteEncoding{UTF-8} + %\VignetteEngine{knitr::rmarkdown} +bibliography: vignettes.bib +editor_options: + markdown: + wrap: 72 +--- + +```{r, include = FALSE} +knitr::opts_chunk$set( + collapse = TRUE, + comment = "#>" +) +``` + +While out of sample evaluation and MCMC diagnostics on parametric BART components (i.e. $\sigma^2$, the global error variance) are helpful, it's important to be able to inspect the trees in a BART / BCF model (or a custom tree ensemble model). This vignette walks through some of the features `stochtree` provides to query and understand the forests / trees in a model. + +To begin, we load the `stochtree` package. + +```{r} +library(stochtree) +``` + +# Demo 1: Supervised Learning + +Generate sample data where feature 10 is the only "important" feature. + +```{r} +# Generate the data +n <- 500 +p_x <- 10 +X <- matrix(runif(n*p_x), ncol = p_x) +f_XW <- ( + ((0 <= X[,10]) & (0.25 > X[,10])) * (-7.5) + + ((0.25 <= X[,10]) & (0.5 > X[,10])) * (-2.5) + + ((0.5 <= X[,10]) & (0.75 > X[,10])) * (2.5) + + ((0.75 <= X[,10]) & (1 > X[,10])) * (7.5) +) +noise_sd <- 1 +y <- f_XW + rnorm(n, 0, 1)*noise_sd + +# Split data into test and train sets +test_set_pct <- 0.2 +n_test <- round(test_set_pct*n) +n_train <- n - n_test +test_inds <- sort(sample(1:n, n_test, replace = FALSE)) +train_inds <- (1:n)[!((1:n) %in% test_inds)] +X_test <- as.data.frame(X[test_inds,]) +X_train <- as.data.frame(X[train_inds,]) +W_test <- NULL +W_train <- NULL +y_test <- y[test_inds] +y_train <- y[train_inds] +``` + +## Sampling and Analysis + +Run BART. + +```{r} +num_gfr <- 10 +num_burnin <- 0 +num_mcmc <- 100 +bart_params <- list(keep_gfr = T) +bart_model <- stochtree::bart( + X_train = X_train, y_train = y_train, X_test = X_test, + num_gfr = num_gfr, num_burnin = num_burnin, num_mcmc = num_mcmc, + params = bart_params +) +``` + +Inspect the MCMC samples + +```{r} +plot(bart_model$sigma2_global_samples, ylab="sigma^2") +abline(h=noise_sd^2,col="red",lty=2,lwd=2.5) +plot(rowMeans(bart_model$y_hat_test), y_test, + pch=16, cex=0.75, xlab = "pred", ylab = "actual") +abline(0,1,col="red",lty=2,lwd=2.5) +``` + +Check the variable split count in the last GFR sample + +```{r} +bart_model$mean_forests$get_forest_split_counts(10, p_x) +``` + +```{r} +bart_model$mean_forests$get_aggregate_split_counts(p_x) +``` + +The split counts appear relatively uniform across features, so let's dig deeper and look at individual trees, starting with the first tree in the last "grow-from-root" sample. + +```{r} +splits = bart_model$mean_forests$get_granular_split_counts(p_x) +splits[10,1,] +``` + +This tree has a single split on the only "important" feature. Now, let's look at the second tree. + +```{r} +splits[10,2,] +``` + +This tree also only splits on the important feature. + +```{r} +splits[10,20,] +``` + +```{r} +splits[10,30,] +``` + +We see that "later" trees are splitting on other features, but we also note that these trees are fitting an outcome that is already residualized many "relevant splits" made by trees 1 and 2. + +Now, let's inspect the first tree for this last GFR sample in more depth, following [this scikit-learn vignette](https://scikit-learn.org/stable/auto_examples/tree/plot_unveil_tree_structure.html) + +```{r} +forest_num <- 9 +tree_num <- 0 +nodes <- sort(bart_model$mean_forests$nodes(forest_num, tree_num)) +for (nid in nodes) { + if (bart_model$mean_forests$is_leaf_node(forest_num, tree_num, nid)) { + node_depth <- bart_model$mean_forests$node_depth(forest_num, tree_num, nid) + space_text <- rep("\t", node_depth) + leaf_values <- bart_model$mean_forests$node_leaf_values(forest_num, tree_num, nid) + cat(space_text, "node=", nid, " is a leaf node with value=", + format(leaf_values, digits = 3), "\n", sep = "") + } else { + node_depth <- bart_model$mean_forests$node_depth(forest_num, tree_num, nid) + space_text <- rep("\t", node_depth) + left <- bart_model$mean_forests$left_child_node(forest_num, tree_num, nid) + feature <- bart_model$mean_forests$node_split_index(forest_num, tree_num, nid) + threshold <- bart_model$mean_forests$node_split_threshold(forest_num, tree_num, nid) + right <- bart_model$mean_forests$right_child_node(forest_num, tree_num, nid) + cat(space_text, "node=", nid, " is a split node, which tells us to go to node ", + left, " if X[:, ", feature, "] <= ", format(threshold, digits = 3), + " else to node ", right, "\n", sep = "") + } +} +```