In [3]:
import numpy as np
import pylab as plt
from scipy.spatial.distance import pdist,squareform
plt.rcParams['font.family']='Serif'
%matplotlib inline

from sklearn import datasets
data = datasets.load_digits()
n = 1000
X = data.data[:n]
Y = data.target[:n]

In [4]:
from sklearn.manifold import MDS
mds = MDS(dissimilarity='precomputed')
d = squareform(pdist(X))
X_ = mds.fit_transform(d)

In [7]:
plt.scatter(X_[:,0],X_[:,1],c=Y,linewidths=0)


Out[7]:
<matplotlib.collections.PathCollection at 0x10455d908>

In [40]:
mds = MDS()
X_ = mds.fit_transform(X)

In [41]:
plt.scatter(X_[:,0],X_[:,1],c=Y,linewidths=0)


Out[41]:
<matplotlib.collections.PathCollection at 0x11e5b8f98>

In [42]:
# rearrange indices by class label
ind = sorted(np.arange(len(X)),key=lambda i:Y[i])

In [43]:
pd = pdist(X[ind])
d_ = squareform(sorted(np.arange(len(pd)),key=lambda i:-pd[i]))

In [44]:
plt.imshow(d_,cmap='Blues')


Out[44]:
<matplotlib.image.AxesImage at 0x111ac3d68>

In [37]:
d_sorted = d_[ind]
d_sorted = d_sorted[:,ind]

In [38]:
plt.imshow(d_sorted[ind],cmap='Blues')


Out[38]:
<matplotlib.image.AxesImage at 0x11e8a9be0>

In [20]:
mds = MDS(dissimilarity='precomputed')
X_ = mds.fit_transform(d_)

In [21]:
plt.scatter(X_[:,0],X_[:,1],c=Y,linewidths=0)


Out[21]:
<matplotlib.collections.PathCollection at 0x108755160>

In [ ]: