diff options
author | David Luevano Alvarado <55825613+luevano@users.noreply.github.com> | 2020-02-25 20:52:08 -0700 |
---|---|---|
committer | David Luevano Alvarado <55825613+luevano@users.noreply.github.com> | 2020-02-25 20:52:08 -0700 |
commit | d1b84b91f4b94b717de477e47b22946fd42be0db (patch) | |
tree | cb3138a779d6e5f6cc2a07b4d9dd9c90d3cdac80 /ml_exp/kernels.py | |
parent | 2bdd175a6eb1f6edd8689987fef1a29fc1043da1 (diff) |
Refactor gauss kernel, more natural syntax
Diffstat (limited to 'ml_exp/kernels.py')
-rw-r--r-- | ml_exp/kernels.py | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/ml_exp/kernels.py b/ml_exp/kernels.py index 834d62408..7a61a1e1e 100644 --- a/ml_exp/kernels.py +++ b/ml_exp/kernels.py @@ -22,27 +22,23 @@ SOFTWARE. """ import math import numpy as np -from ml_exp.frob_norm import frob_norm -def gauss_kernel(X_1, X_2, sigma): +def gaussian_kernel(X1, + X2, + sigma): """ Calculates the Gaussian Kernel. - X_1: first representations. - X_2: second representations. + X1: first representations. + X2: second representations. sigma: kernel width. """ - x1_l = len(X_1) - x1_range = range(x1_l) - x2_l = len(X_2) - x2_range = range(x2_l) - inv_sigma = -0.5 / (sigma*sigma) - K = np.zeros((x1_l, x2_l)) - for i in x1_range: - for j in x2_range: - f_norm = frob_norm(X_1[i] - X_2[j]) + K = np.zeros((X1.shape[0], X2.shape[0]), dtype=float) + for i in X1: + for j in X2: + f_norm = np.linalg.norm(i - j) # print(f_norm) K[i, j] = math.exp(inv_sigma * f_norm) |