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]:
In [40]:
mds = MDS()
X_ = mds.fit_transform(X)
In [41]:
plt.scatter(X_[:,0],X_[:,1],c=Y,linewidths=0)
Out[41]:
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]:
In [37]:
d_sorted = d_[ind]
d_sorted = d_sorted[:,ind]
In [38]:
plt.imshow(d_sorted[ind],cmap='Blues')
Out[38]:
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]:
In [ ]: