| @@ -0,0 +1,48 @@ | |||||
| #!/usr/bin/env python3 | |||||
| # -*- coding: utf-8 -*- | |||||
| """ | |||||
| Check basic properties of gram matrices. | |||||
| Created on Wed Sep 19 15:32:29 2018 | |||||
| @author: ljia | |||||
| """ | |||||
| import numpy as np | |||||
| import matplotlib.pyplot as plt | |||||
| from numpy.linalg import eig | |||||
| # read gram matrices from file. | |||||
| results_dir = '../results/marginalizedkernel/myria' | |||||
| ds_name = 'ENZYMES' | |||||
| gmfile = np.load(results_dir + '/' + ds_name + '.gm.npz') | |||||
| #print('gm time: ', gmfile['gmtime']) | |||||
| # a list to store gram matrices for all param_grid_precomputed | |||||
| gram_matrices = gmfile['gms'] | |||||
| # param_list_pre_revised = gmfile['params'] # list to store param grids precomputed ignoring the useless ones | |||||
| #y = gmfile['y'].tolist() | |||||
| #x = gram_matrices[0] | |||||
| for idx, x in enumerate(gram_matrices): | |||||
| print() | |||||
| print(idx) | |||||
| plt.imshow(x) | |||||
| plt.colorbar() | |||||
| plt.savefig('../check_gm/' + ds_name + '.gm.eps', format='eps', dpi=300) | |||||
| # print(np.transpose(x)) | |||||
| print('if symmetric: ', np.array_equal(x, np.transpose(x))) | |||||
| print('diag: ', np.diag(x)) | |||||
| print('sum diag < 0.1: ', np.sum(np.diag(x) < 0.1)) | |||||
| print('min, max diag: ', min(np.diag(x)), max(np.diag(x))) | |||||
| print('min, max matrix: ', np.min(x), np.max(x)) | |||||
| for i in range(len(x)): | |||||
| for j in range(len(x)): | |||||
| if x[i][j] > 1 + 1e-9: | |||||
| print(i, j) | |||||
| raise Exception('value bigger than 1 with index', i, j) | |||||
| print('mean x: ', np.mean(np.mean(x))) | |||||
| [lamnda, v] = eig(x) | |||||
| print('min, max lambda: ', min(lamnda), max(lamnda)) | |||||
| if -1e-10 > min(lamnda): | |||||
| raise Exception('wrong eigen values.') | |||||