In [22]:
%matplotlib inline
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
def PlotHeatmap(X):
c = 3.
plt.figure(figsize=(X.shape[1]/c,X.shape[0]/c))
plt.imshow(X, interpolation='nearest',vmax=1,vmin=0)
plt.set_cmap('gray_r')
plt.gca().set_xticks([])
plt.gca().set_yticks([])
plt.show()
N = 8
M = 10
R = 1
A = np.random.rand(N,R)**2
A = A/np.sum(A,axis=0)
B = np.random.rand(R,M)**2
B = B/np.sum(B,axis=1).reshape((R,1))
Y = A.dot(B)
PlotHeatmap(A)
PlotHeatmap(B)
PlotHeatmap(Y)
In [8]:
%matplotlib inline
import matplotlib.pyplot as plt
import numpy as np
import scipy as sc
import scipy.linalg as la
import scipy.misc
X = sc.misc.ascent()
fig = plt.figure(figsize=(7,7))
plt.gray()
plt.imshow(X)
plt.show()
In [9]:
U,S,Vt = la.svd(X)
M,N = X.shape
for rnk in range(1,20,2):
Sr = np.zeros_like(S)
Sr[0:rnk] = S[0:rnk]
Sig = la.diagsvd(Sr, M, N)
A2 = np.dot(np.dot(U, Sig), Vt)
fig = plt.figure(figsize=(5,5))
plt.gray()
plt.imshow(A2)
plt.show()