def _Gram(self, X):
if X is self.X:
if self.Gs_train is None:
kernel_scalar = rbf_kernel(self.X, gamma=self.gamma)[:, :,
newaxis,
newaxis]
delta = subtract(X.T[:, newaxis, :], self.X.T[:, :, newaxis])
self.Gs_train = asarray(transpose(
2 * self.gamma * kernel_scalar *
(eye(self.p)[newaxis, newaxis, :, :] - 2 *
(self.gamma * delta[:, newaxis, :, :] *
delta[newaxis, :, :, :]).transpose((3, 2, 0, 1))),
(0, 2, 1, 3)
)).reshape((self.p * X.shape[0], self.p * self.X.shape[0]))
return self.Gs_train
kernel_scalar = rbf_kernel(X, self.X, gamma=self.gamma)[:, :,
newaxis,
newaxis]
delta = subtract(X.T[:, newaxis, :], self.X.T[:, :, newaxis])
return asarray(transpose(
2 * self.gamma * kernel_scalar *
(eye(self.p)[newaxis, newaxis, :, :] - 2 *
(self.gamma * delta[:, newaxis, :, :] *
delta[newaxis, :, :, :]).transpose((3, 2, 0, 1))),
(0, 2, 1, 3)
)).reshape((self.p * X.shape[0], self.p * self.X.shape[0]))
评论列表
文章目录