Source code for pyssaBSS.kernels

from .utils import (gaussian_kernel_local_sample_covariance, scaled_local_sample_covariance,
                   ball_kernel_local_sample_covariance, ring_kernel_local_sample_covariance)
[docs] class BaseKernel(object):
[docs] def global_covariance(self, data, coords): raise NotImplementedError()
[docs] def local_covariance(self, data, coords, segment): raise NotImplementedError()
[docs] class BallKernel(BaseKernel): def __init__(self, radius): self.radius = radius
[docs] def global_covariance(self, data, coords): return ball_kernel_local_sample_covariance(data, coords, self.radius)
[docs] def local_covariance(self, data, coords, segment): return ball_kernel_local_sample_covariance(data, coords, self.radius, segment)
[docs] class ScaledBallKernel(BaseKernel): def __init__(self, radius): self.radius = radius
[docs] def global_covariance(self, data, coords): return scaled_local_sample_covariance(data, coords, self.radius)
[docs] def local_covariance(self, data, coords, segment): return scaled_local_sample_covariance(data, coords, self.radius, segment)
[docs] class RingKernel(BaseKernel): def __init__(self, inner_radius, outer_radius): self.inner_radius = inner_radius self.outer_radius = outer_radius
[docs] def global_covariance(self, data, coords): return ring_kernel_local_sample_covariance(data, coords, self.inner_radius, self.outer_radius)
[docs] def local_covariance(self, data, coords, segment): return ring_kernel_local_sample_covariance(data, coords, self.inner_radius, self.outer_radius, segment)
[docs] class GaussianKernel(BaseKernel): def __init__(self, radius): self.radius = radius
[docs] def global_covariance(self, data, coords): return gaussian_kernel_local_sample_covariance(data, coords, self.radius)
[docs] def local_covariance(self, data, coords, segment): return gaussian_kernel_local_sample_covariance(data, coords, self.radius, segment=segment)