#matrixA = np.loadtxt('./data/jester.txt', dtype=float).T[:4096,:]
print(matrixA.shape)

U, S, V = np.linalg.svd(matrixA,full_matrices=False)
matrixA = np.dot(U[:,:rank]*S[:rank],V[:rank,:])
print('The matrix A has', matrixA.shape[0], 'rows and', matrixA.shape[1], 'columns.')
print('rank =',LA.matrix_rank(matrixA))

maxcvalue = math.log10(n)/math.log10(math.log10(n))
print(maxcvalue)
cvalues = np.linspace(0.05,maxcvalue, 5)
GRHTsketch = []
for c in cvalues:
	print('c=',c)
	GRHTerror = []
	while 
	for i in range (repeat):
		GCLASS = GRHT(inputdim, sketchsize)
		matrixC = GCLASS.Apply(matrixA, applyLeft)
		GRHTerror.append(get_distortion(matrixA, matrixC)) 
	GRHTsketch.append(np.mean(GRHTerror))
		
#labelname = 'GHRT_c='+str(c)
plt.plot(cvalues, GRHTsketch, label='GRHT')
plt.legend()
plt.xlabel("sparsity(larger number->dense)")
plt.ylabel("distorsion")
#plt.title('Comparison of different sketching methods')
#fig.savefig("plot.png")
plt.show()
Example #2
0
for k in range(2, 20, 4):
    sindex = []
    Magicsketch = []
    MS_std = []
    sketchsize = 30
    while sketchsize <= M:
        print(sketchsize)
        sindex.append(sketchsize)
        Magic_error = []

        for i in range(repeat):
            print('repeat =', i)
            MagicClass = MagicGraph(inputdim, sketchsize)
            matrixC = MagicClass.Apply(matrixA, applyLeft, num_randmatch=k)
            Magic_error.append(get_distortion(matrixA, matrixC))

        Magicsketch.append(np.mean(Magic_error))
        MS_std.append(np.std(Magic_error))

        sketchsize += increment

    plt.plot(sindex, Magicsketch, label='_k=' + str(k))

plt.legend()
plt.xlabel("sketching size s", fontsize=15)
plt.ylabel(
    r'$||(A^TA)^{\dagger/2}\tilde{A}^T\tilde{A}(A^TA)^{\dagger/2}-P_{A^TA}||_2$',
    fontsize=15)
#plt.ylabel(r'$\frac{||SAx||_2-||Ax||_2}{||Ax||_2}$',fontsize=15)
plt.title('MagicGraph SKETCHING on A with size ' + str(m) + ' by ' + str(n) +
increment = 40
while sketchsize <= M:
	print(sketchsize)
	sindex.append(sketchsize)
	Gerror 		= []
	Cerror 		= []	
	Magic_error = []
	e1			= []
	e2			= []
	e3			= []
	
	for i in range (repeat):
		print('repeat =',i)
		Gclass 		= GaussianSketch(inputdim, sketchsize)
		matrixC 	= Gclass.Apply(matrixA, applyLeft)
		Gerror.append(get_distortion(matrixA, matrixC))

		Cclass 		= countSketch(inputdim, sketchsize)
		matrixC 	= Cclass.Apply(matrixA, applyLeft)
		Cerror.append(get_distortion(matrixA, matrixC))

#		MagicClass 	= MagicGraph(inputdim, sketchsize)
#		matrixC 	= MagicClass.Apply(matrixA, applyLeft, num_randmatch = 2)
#		Magic_error.append(get_distortion(matrixA, matrixC))
#		print('m',MagicClass.Matricize())
		
		expander1	= ExpanderGraph(inputdim, sketchsize)
		matrixC		= expander1.Apply(matrixA, applyLeft, sparsity = 1)
		e1.append(get_distortion(matrixA, matrixC))
		
		expander2	= ExpanderGraph(inputdim, sketchsize)
while sketchsize <= M:
    print(sketchsize)
    sindex.append(sketchsize)
    Gerror = []
    Cerror = []
    SRHTerror = []
    SRFTerror = []
    GRHTerror = []
    Magic_error = []

    for i in range(repeat):
        print('repeat =', i)
        Gclass = GaussianSketch(inputdim, sketchsize)
        matrixC = Gclass.Apply(matrixA, applyLeft)
        #		Gclass.Sanitycheck()
        Gerror.append(get_distortion(matrixA, matrixC))
        Cclass = countSketch(inputdim, sketchsize)
        matrixC = Cclass.Apply(matrixA, applyLeft)
        Cerror.append(get_distortion(matrixA, matrixC))

        SRHTclass = SRHT(inputdim, sketchsize)
        matrixC = SRHTclass.Apply(matrixA, applyLeft)
        SRHTerror.append(get_distortion(matrixA, matrixC))

        GRHTclass = GRHT(inputdim, sketchsize)
        matrixC = GRHTclass.Apply(matrixA, applyLeft)
        GRHTerror.append(get_distortion(matrixA, matrixC))

        SRFTclass = SRFT(inputdim, sketchsize)
        matrixC = SRFTclass.Apply(matrixA, applyLeft)
        SRFTerror.append(get_distortion(matrixA, matrixC))