deformation

MuyGPyS.gp.deformation module reference.

class MuyGPyS.gp.deformation.Isotropy(metric, length_scale)[source]

An isotropic deformation model.

Isotropy defines a scaled elementwise distance function \(d_ell(\cdot, \cdot)\), and is paramterized by a scalar \(\ell>0\) length scale hyperparameter.

\[d_\ell(\mathbf{x}, \mathbf{y}) = \sum_{i=0}^d \frac{d(\mathbf{x}_i, \mathbf{y}_i)}{\ell}\]
Parameters:
  • metric (MetricFn) – A MetricFn object defining the behavior of the feature metric space.

  • length_scale (Parameter) – Some scalar nonnegative hyperparameter object.

__call__(dists, length_scale=None, **kwargs)[source]

Apply isotropic deformation to an elementwise difference tensor.

This function is not intended to be invoked directly by a user. It is instead functionally incorporated into some MuyGPyS.gp.kernels.KernelFn in its constructor.

Parameters:
  • dists (ndarray) – A tensor of distances between sets of observables.

  • length_scale (Union[float, ndarray, None]) – A floating point length scale.

Return type:

ndarray

Returns:

A scaled distance matrix of the same shape as shape (data_count, nn_count) or a pairwise distance tensor of shape (data_count, nn_count, nn_count) whose last two dimensions are pairwise distance matrices.

crosswise_tensor(data, nn_data, data_indices, nn_indices, **kwargs)[source]

Compute a crosswise distance tensor between data and their nearest neighbors.

Takes full datasets of records of interest data and neighbor candidates nn_data and produces a scalar distance between each element of data indicated by data_indices and each of the nearest neighbors in nn_data as indicated by the corresponding rows of nn_indices. data and nn_data can refer to the same dataset.

Parameters:
  • data (ndarray) – The data matrix of shape (data_count, feature_count) containing batch elements.

  • nn_data (ndarray) – The data matrix of shape (candidate_count, feature_count) containing the universe of candidate neighbors for the batch elements. Might be the same as data.

  • indices – An integral vector of shape (batch_count,) containing the indices of the batch.

  • nn_indices (ndarray) – An integral matrix of shape (batch_count, nn_count) listing the nearest neighbor indices for the batch of data points.

Return type:

ndarray

Returns:

A tensor of shape (batch_count, nn_count) whose second dimension indicates distance vectors between each batch element and its nearest neighbors.

pairwise_tensor(data, nn_indices, **kwargs)[source]

Compute a pairwise distance tensor among sets of nearest neighbors.

Takes a full dataset of records of interest data and produces the pairwise distances between the elements indicated by each row of nn_indices.

Parameters:
  • data (ndarray) – The data matrix of shape (batch_count, feature_count) containing batch elements.

  • nn_indices (ndarray) – An integral matrix of shape (batch_count, nn_count) listing the nearest neighbor indices for the batch of data points.

Return type:

ndarray

Returns:

A tensor of shape (batch_count, nn_count, nn_count) containing the (nn_count, nn_count)-shaped pairwise nearest neighbor distance tensors corresponding to each of the batch elements.

class MuyGPyS.gp.deformation.Anisotropy(metric, length_scale)[source]

An anisotropic deformation model.

Anisotropy parameterizes a scaled elementwise distance function \(d_\ell(\cdot, \cdot)\), and is paramterized by a vector-valued \(\mathbf{\ell}>0\) length scale hyperparameter.

\[d_\ell(\mathbf{x}, \mathbf{y}) = \sum_{i=0}^d \frac{d(\mathbf{x}_i, \mathbf{y}_i)}{\ell_i}\]
Parameters:
  • metric (MetricFn) – A MetricFn object defining the behavior of the feature metric space.

  • length_scales – Keyword arguments length_scale#, mapping to scalar hyperparameters.

__call__(dists, **length_scales)[source]

Apply anisotropic deformation to an elementwise difference tensor.

This function is not intended to be invoked directly by a user. It is instead functionally incorporated into some MuyGPyS.gp.kernels.KernelFn in its constructor.

Parameters:
  • dists (ndarray) – A tensor of pairwise differences of shape (..., feature_count) representing the difference in feature dimensions between sets of observables.

  • batch_features – A (batch_count, feature_count) matrix of features to be used with a hierarchical hyperparameter. None otherwise.

  • length_scale – A floating point length scale, or a vector of (knot_count,) knot length scales.

Return type:

ndarray

Returns:

A crosswise distance matrix of shape (data_count, nn_count) or a pairwise distance tensor of shape (data_count, nn_count, nn_count) whose last two dimensions are pairwise distance matrices.

crosswise_tensor(data, nn_data, data_indices, nn_indices, **kwargs)[source]

Compute a crosswise difference tensor between data and their nearest neighbors.

Takes full datasets of records of interest data and neighbor candidates nn_data and produces a difference vector between each element of data indicated by data_indices and each of the nearest neighbors in nn_data as indicated by the corresponding rows of nn_indices. data and nn_data can refer to the same dataset.

Parameters:
  • data (ndarray) – The data matrix of shape (data_count, feature_count) containing batch elements.

  • nn_data (ndarray) – The data matrix of shape (candidate_count, feature_count) containing the universe of candidate neighbors for the batch elements. Might be the same as data.

  • indices – An integral vector of shape (batch_count,) containing the indices of the batch.

  • nn_indices (ndarray) – An integral matrix of shape (batch_count, nn_count) listing the nearest neighbor indices for the batch of data points.

Return type:

ndarray

Returns:

A tensor of shape (batch_count, nn_count, feature_count) whose last two dimensions indicate difference vectors between the feature dimensions of each batch element and those of its nearest neighbors.

pairwise_tensor(data, nn_indices, **kwargs)[source]

Compute a pairwise difference tensor among sets of nearest neighbors.

Takes a full dataset of records of interest data and produces the pairwise differences for each feature dimension between the elements indicated by each row of nn_indices.

Parameters:
  • data (ndarray) – The data matrix of shape (batch_count, feature_count) containing batch elements.

  • nn_indices (ndarray) – An integral matrix of shape (batch_count, nn_count) listing the nearest neighbor indices for the batch of data points.

Return type:

ndarray

Returns:

A tensor of shape (batch_count, nn_count, nn_count, feature_count) containing the (nn_count, nn_count, feature_count)-shaped pairwise nearest neighbor difference tensors corresponding to each of the batch elements.