Example #1
0
Note that we use equal aspect ratio otherwise it is hard
to determine what the actual distortion is.
'''
from covar_plotter import plot_cov_ellipse

n_plot = 50
rng = np.random.RandomState(8675309)
sample_points = rng.choice(range(N), n_plot, replace = False)

f, ax = plt.subplots()
ax.scatter(embed_isomap[:, 0], embed_isomap[:, 1], s = 1)
ax.set_aspect('equal') # if an ellipse is a circle no distortion occured. 
for i in range(n_plot):
    ii = sample_points[i]
    cov = H_isomap[ii, :, :]
    plot_cov_ellipse(cov*0.05, embed_isomap[ii, :] ,ax=ax, edgecolor='none', alpha = 0.5)
plt.savefig("tutorial_isomap_plot.png", format='png', bbox_inches='tight')
plt.close()

'''
we can also do this with the spectral embedding:
'''
f, ax = plt.subplots()
ax.scatter(embed_spectral[:, 0], embed_spectral[:, 1], s = 1)
ax.set_aspect('equal') # if an ellipse is a circle no distortion occured. 
for i in range(n_plot):
    ii = sample_points[i]
    cov = H_spectral[ii,:,:]
    plot_cov_ellipse(cov*0.01, embed_spectral[ii,:] ,ax=ax, edgecolor='none', alpha = 0.5)
plt.savefig("tutorial_spectral_plot.png", format='png', bbox_inches='tight')
plt.close()
Example #2
0
# Rmetric now
from scipy.sparse.linalg.eigen.lobpcg.lobpcg import symeig
from sklearn.utils.arpack import eigsh
#lambdas, diffusion_map = eigsh(-laplacian, k=n_components,
#                                           sigma=1.0, which='LM',
#                                           tol=eigen_tol)
            
A = model.get_affinity_matrix()
#la, va = eigsh(A,k=5,which='LM')
#print( la )
L = graph_laplacian( A, scaling_epps=rad)
#ll, vl = eigsh(L,k=5,which='LM')
#print( ll )
h,g, dum1, dum2, dum3 = riemann_metric(Y, laplacian=L, n_dim = 2 )

print( "h.shape=", h.shape )
print( h[:4,:,:] )

print( "....Plotting the dual rmetric...." )

from covar_plotter import plot_cov_ellipse

ax = plt.gca()
for i in range(n_samplot):
    ii = iisamples[i]
    cov = h[ ii, :, : ].squeeze()
    plot_cov_ellipse( cov/1000, Y[ii,:], nstd=2, ax=ax, edgecolor='none', facecolor=(thet[ii],0,1-thet[ii]))

plt.show(block=True)
Example #3
0
#plt.show()

ax0 = 1
ax1 = 3
iax = [ax0, ax1]
ax = plt.gca()
plt.plot( Y[iisamples,ax0], Y[ iisamples, ax1], marker='.', markersize=2,linestyle='None',label='Y' )
#plt.show()

if compute_H:
    degrees = np.asarray(similarity_matrix.sum(axis=1)).squeeze()
    degmax = np.max( degrees )
    cov0 = np.eye(2)/1.e4
    for i in range(n_samplot):
        ii = iisamples[i]
        cov = H[ ii, (1,3), (1,3) ].squeeze()
        if i in [0,3,100]:
            print( cov )
        if np.linalg.det(cov)>0:
            plot_cov_ellipse( cov*rad*5, Y[ii,(1,3)], nstd=2, ax=ax, edgecolor='none', facecolor=[ 0, degrees[ii]/degmax, 0])
#        plot_cov_ellipse( cov0, Y[ii,:2], nstd=2, ax=ax, edgecolor='none', facecolor='pink')
#    print( cov, np.linalg.det( cov ) )
    if save_fig:
        plt.savefig( "spectra-emb"+".png", format='png' )
    plt.show()