def log_pdf(self, X): assert (len(shape(X)) == 2) assert (shape(X)[1] == self.dimension) # compute all norms norms = array([norm(x) for x in X]) # compute angles (second component first first) angles = arctan2(X[:, 1], X[:, 0]) # gaussian parameters mu = self.radius + self.amplitude * cos(self.frequency * angles) log_pdf2d = zeros(len(X)) gaussian = Gaussian(array([mu[0]]), array([[self.variance]])) for i in range(len(X)): gaussian.mu = mu[i] log_pdf2d[i] = gaussian.log_pdf(array([[norms[i]]])) if self.dimension > 2: remain_dims = Gaussian(zeros([self.dimension - 2]), eye(self.dimension - 2)) log_pdfoverall = log_pdf2d + remain_dims.log_pdf( X[:, 2:self.dimension]) else: log_pdfoverall = log_pdf2d return log_pdfoverall
def log_pdf(self, X): assert (len(shape(X)) == 2) assert (shape(X)[1] == self.dimension) transformed = X.copy() transformed[:, 1] = X[:, 1] - self.bananicity * ((X[:, 0]**2) - self.V) transformed[:, 0] = X[:, 0] / sqrt(self.V) phi = Gaussian(zeros([self.dimension]), eye(self.dimension)) return phi.log_pdf(transformed)
def log_pdf(self, X): assert(len(shape(X)) == 2) assert(shape(X)[1] == self.dimension) transformed = X.copy() transformed[:, 1] = X[:, 1] - self.bananicity * ((X[:, 0] ** 2) - self.V) transformed[:, 0] = X[:, 0] / sqrt(self.V) phi = Gaussian(zeros([self.dimension]), eye(self.dimension)) return phi.log_pdf(transformed)
def log_pdf(self, X): assert(len(shape(X)) == 2) assert(shape(X)[1] == self.dimension) # compute all norms norms = array([norm(x) for x in X]) # compute angles (second component first first) angles = arctan2(X[:, 1], X[:, 0]) # gaussian parameters mu = self.radius + self.amplitude * cos(self.frequency * angles) log_pdf2d = zeros(len(X)) gaussian = Gaussian(array([mu[0]]), array([[self.variance]])) for i in range(len(X)): gaussian.mu = mu[i] log_pdf2d[i] = gaussian.log_pdf(array([[norms[i]]])) if self.dimension>2: remain_dims=Gaussian(zeros([self.dimension-2]), eye(self.dimension-2)) log_pdfoverall=log_pdf2d+remain_dims.log_pdf(X[:,2:self.dimension]) else: log_pdfoverall=log_pdf2d return log_pdfoverall