def _compute(self, data_1, data_2): if self._gamma is None: # libSVM heuristics self._gamma = 1. / data_1.shape[1] dists_sq = euclidean_dist_matrix(data_1, data_2) return np.exp(-self._gamma * dists_sq)
def _compute(self, data_1, data_2): if self._sigma is None: # modification of libSVM heuristics self._sigma = float(data_1.shape[1]) dists_sq = euclidean_dist_matrix(data_1, data_2) return np.exp(-np.sqrt(dists_sq) / self._sigma)
def _compute(self, data_1, data_2): if self._sigma is None: self._sigma = float(data_1.shape[1]) dists_sq = euclidean_dist_matrix(data_1, data_2) return 1 / (1 + dists_sq / self._sigma)
def _compute(self, data_1, data_2): return -euclidean_dist_matrix(data_1, data_2)**self._d / 2.
def _compute(self, data_1, data_2): dists = np.sqrt(euclidean_dist_matrix(data_1, data_2)) return 1 / (1 + dists**self._d)
def _compute(self, data_1, data_2): dists_sq = euclidean_dist_matrix(data_1, data_2) return 1. / np.sqrt(dists_sq + self._c)