Source code for statinf.nonparametrics.kernels

import numpy as np

[docs]def gaussian(X, mu, cov): """ Returns the pdf of a Gaussian kernel :param X: Input data. :type X: :obj:`numpy.ndarray` :param mu: Mean of the gaussian distribution. :type mu: :obj:`numpy.ndarray` :param cov: Covariance matrix. :type cov: :obj:`numpy.ndarray` :formula: .. math:: \\dfrac{1}{(2 \\pi)^{\\frac{n}{2}} \\sqrt{\\det{\\sigma}}} e^{-\\dfrac{1}{2} \\dfrac{X'X}{\\sigma^{2}}} :references: * Murphy, K. P. (2012). Machine learning: a probabilistic perspective. MIT press. """ X_centered = X - mu n = X.shape[1] _a = (1 / ((2 * np.pi) ** (n / 2) * np.linalg.det(cov) ** 0.5)) _b = np.exp(-0.5 * np.dot(np.dot(X_centered, np.linalg.inv(cov)), X_centered.T)) return np.diagonal(_a * _b).reshape(-1, 1)