def estimate_ls_temp(self, X):
Ntrain = X.shape[0]
if Ntrain < 10000:
X1 = np.copy(X)
else:
randind = np.random.permutation(Ntrain)
X1 = X[randind[0:(5*self.no_pseudos[0])], :]
dist = cdist(X1, X1, 'euclidean')
# diff = X1[:, None, :] - X1[None, :, :]
# dist = np.sum(abs(diff), axis=2)
D = X1.shape[1]
N = X1.shape[0]
triu_ind = np.triu_indices(N)
ls = np.zeros((D, ))
d2imed = np.median(dist[triu_ind])
for i in range(D):
ls[i] = np.log(d2imed + 1e-16)
return ls
评论列表
文章目录