Source code for apax.bal.kernel

import einops
import numpy as np


[docs] class KernelMatrix: """ Matrix representation of a kernel defined by a feature map g K_{ij} = \\sum_{k} g_{ik} g_{jk} """ def __init__(self, g: np.ndarray, n_train: int): self.num_columns = g.shape[0] self.g = g self.diagonal = einops.einsum(g, g, "s feature, s feature -> s") self.n_train = n_train def compute_column(self, idx: int) -> np.ndarray: return einops.einsum(self.g, self.g[idx, :], "s feature, feature -> s")
[docs] def score(self, idx: int) -> np.ndarray: """Computes the distance of sample i from all other samples j as K_{ii} + K_{jj} - 2 K_{ij} """ return self.diagonal[idx] + self.diagonal - 2 * self.compute_column(idx)