bayeso.trees.trees_common

It defines a common function for tree-based surrogates.

bayeso.trees.trees_common._mse(Y: ndarray) float

It returns a mean squared loss over Y.

Parameters:

Y (numpy.ndarray) – outputs in a leaf.

Returns:

a loss value.

Return type:

float

Raises:

AssertionError

bayeso.trees.trees_common._predict_by_tree(bx: ndarray, tree: dict) Tuple[float, float]

It predicts a posterior distribution over bx, given tree.

Parameters:
  • bx (numpy.ndarray) – an input. Shape: (d, ).

  • tree (dict.) – a decision tree.

Returns:

posterior mean and standard devitation estimates.

Return type:

(float, float)

Raises:

AssertionError

bayeso.trees.trees_common._predict_by_trees(bx: ndarray, list_trees: list) Tuple[float, float]

It predicts a posterior distribution over bx, given list_trees.

Parameters:
  • bx (numpy.ndarray) – an input. Shape: (d, ).

  • list_trees (list) – a list of decision trees.

Returns:

posterior mean and standard devitation estimates.

Return type:

(float, float)

Raises:

AssertionError

bayeso.trees.trees_common._split(X: ndarray, Y: ndarray, num_features: int, split_random_location: bool) dict

It splits X and Y to left and right leaves as a dictionary including split dimension and split location.

Parameters:
  • X (numpy.ndarray) – inputs. Shape: (n, d).

  • Y (numpy.ndarray) – outputs. Shape: (n, 1).

  • num_features (int.) – the number of features to split.

  • split_random_location (bool.) – flag for setting a split location randomly or not.

Returns:

a dictionary of left and right leaves, spilt dimension, and split location.

Return type:

dict.

Raises:

AssertionError

bayeso.trees.trees_common._split_deterministic(X: ndarray, Y: ndarray, dim_to_split: int) Tuple[int, float, Tuple]
bayeso.trees.trees_common._split_left_right(X: ndarray, Y: ndarray, dim_to_split: int, val_to_split: float) tuple

It splits X and Y to left and right leaves.

Parameters:
  • X (numpy.ndarray) – inputs. Shape: (n, d).

  • Y (numpy.ndarray) – outputs. Shape: (n, 1).

  • dim_to_split (int.) – a dimension to split.

  • val_to_split (float) – a value to split.

Returns:

a tuple of left and right leaves.

Return type:

tuple

Raises:

AssertionError

bayeso.trees.trees_common._split_random(X: ndarray, Y: ndarray, dim_to_split: int) Tuple[int, float, Tuple]
bayeso.trees.trees_common.compute_sigma(preds_mu_leaf: ndarray, preds_sigma_leaf: ndarray, min_sigma: float = 0.0) ndarray

It computes predictive standard deviation estimates.

Parameters:
  • preds_mu_leaf (numpy.ndarray) – predictive mean estimates of leaf. Shape: (n, ).

  • preds_sigma_leaf (numpy.ndarray) – predictive standard deviation estimates of leaf. Shape: (n, ).

  • min_sigma (float) – threshold for minimum standard deviation.

Returns:

predictive standard deviation estimates. Shape: (n, ).

Return type:

numpy.ndarray

Raises:

AssertionError

bayeso.trees.trees_common.get_inputs_from_leaf(leaf: list) ndarray

It returns an input from a leaf.

Parameters:

leaf (list) – pairs of input and output in a leaf.

Returns:

an input. Shape: (n, d).

Return type:

numpy.ndarray

Raises:

AssertionError

bayeso.trees.trees_common.get_outputs_from_leaf(leaf: list) ndarray

It returns an output from a leaf.

Parameters:

leaf (list) – pairs of input and output in a leaf.

Returns:

an output. Shape: (n, 1).

Return type:

numpy.ndarray

Raises:

AssertionError

bayeso.trees.trees_common.mse(left_right: tuple) float

It returns a mean squared loss over left_right.

Parameters:

left_right (tuple) – a tuple of left and right leaves.

Returns:

a loss value.

Return type:

float

Raises:

AssertionError

bayeso.trees.trees_common.predict_by_trees(X: ndarray, list_trees: list) Tuple[ndarray, ndarray]

It predicts a posterior distribution over X, given list_trees, using multiprocessing.

Parameters:
  • X (numpy.ndarray) – inputs. Shape: (n, d).

  • list_trees (list) – a list of decision trees.

Returns:

posterior mean and standard devitation estimates. Shape: ((n, 1), (n, 1)).

Return type:

(numpy.ndarray, numpy.ndarray)

Raises:

AssertionError

bayeso.trees.trees_common.split(node: dict, depth_max: int, size_min_leaf: int, num_features: int, split_random_location: bool, cur_depth: int) None

It splits a root node to construct a tree.

Parameters:
  • node (dict.) – a root node.

  • depth_max (int.) – maximum depth of tree.

  • size_min_leaf (int.) – minimum size of leaf.

  • num_features (int.) – the number of split features.

  • split_random_location (bool.) – flag for setting a split location randomly or not.

  • cur_depth (int.) – depth of the current node.

Returns:

None.

Return type:

NoneType

Raises:

AssertionError

bayeso.trees.trees_common.subsample(X: ndarray, Y: ndarray, ratio_sampling: float, replace_samples: bool) Tuple[ndarray, ndarray]

It subsamples a bootstrap sample.

Parameters:
  • X (numpy.ndarray) – inputs. Shape: (n, d).

  • Y (numpy.ndarray) – outputs. Shape: (n, 1).

  • ratio_sampling (float) – ratio of sampling.

  • replace_samples (bool.) – a flag for sampling with replacement or without replacement.

Returns:

a tuple of bootstrap sample. Shape: ((m, d), (m, 1)).

Return type:

(numpy.ndarray, numpy.ndarray)

Raises:

AssertionError

bayeso.trees.trees_common.unit_predict_by_trees(X: ndarray, list_trees: list) Tuple[ndarray, ndarray]

It predicts a posterior distribution over X, given list_trees.

Parameters:
  • X (numpy.ndarray) – inputs. Shape: (n, d).

  • list_trees (list) – a list of decision trees.

Returns:

posterior mean and standard devitation estimates. Shape: ((n, 1), (n, 1)).

Return type:

(numpy.ndarray, numpy.ndarray)

Raises:

AssertionError