def test_mds123(save_data=False): Y1 = np.load('examples/123/true1.npy') D1 = distances.coord2dist(Y1) Y2 = np.load('examples/123/true2.npy') D2 = distances.coord2dist(Y2) Y3 = np.load('examples/123/true3.npy') D3 = distances.coord2dist(Y3) D = [D1, D2, D3] Q = np.load('examples/123/params.npy') proj = perspective.Proj() proj.set_params_list(params_list=Q) mv = Multiview(D, persp=proj) mv.setup_visualization('mds') mv.initialize_X(verbose=1) mv.optimize_X(algorithm='cdm', learning_rate=0.005, iterations=300) mv.figureX() mv.figureY() plt.show() if save_data: np.save('examples/123/computed123.npy', mv.X) np.save('examples/123/computed1.npy', mv.Y[0]) np.save('examples/123/computed2.npy', mv.Y[1]) np.save('examples/123/computed3.npy', mv.Y[2])
def noise_all(N=100): noise_levels = [0.001,0.01,0.07,0.15,0.4] stress = [] X = misc.disk(N,dim=3) proj = perspective.Proj(dimX=2,dimY=2) proj.set_params_list(special='identity',number=3) Y = proj.project(X) D = distances.compute(Y) for noise in noise_levels: D_noisy = distances.add_noise(D,noise) mv = Multiview(D_noisy,persp=proj) mv.setup_visualization(visualization='mds') mv.initialize_X(verbose=1) mv.optimize_X(algorithm='gd',learning_rate=1,max_iters=300, verbose=1) stress.append(mv.cost) fig = plt.figure() plt.semilogx(noise_levels,stress) plt.show()
def noisy(N=100): noise_levels = [0.0001, 0.001, 0.01, 0.1, 0.5] stress = [] X = misc.disk(N, dim=3) proj = perspective.Proj() proj.set_params_list(special='standard') Y = proj.project(X) D = distances.compute(Y) for noise in noise_levels: D_noisy = distances.add_noise(D, noise) stress_best = [] for i in range(3): mv = Multiview(D_noisy, persp=proj, verbose=1) mv.setup_visualization(visualization='mds') mv.initialize_X() mv.optimize_X(algorithm='agd') stress_best.append(mv.normalized_cost) stress.append(min(stress_best)) fig = plt.figure() plt.loglog(noise_levels, stress, linestyle='--', marker='o') plt.title('Normalized total stress') plt.xlabel('noise level') plt.ylabel('total stress') plt.show()