In [9]:
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from ipywidgets import interact
from sklearn.datasets import load_digits
from sklearn.preprocessing import StandardScaler
from sklearn.decomposition import PCA as SKPCA
In [10]:
dataset = load_digits()

images, labels = dataset.data, dataset.target
print(images.shape)
(1797, 64)
In [11]:
%matplotlib inline
plt.figure(figsize=(4,4))
plt.imshow(images[15].reshape(8,8), cmap='gray');
In [12]:
scaler               = StandardScaler()
images_norm          = scaler.fit_transform(images)
print(images_norm.shape)
(1797, 64)
In [13]:
%matplotlib inline
plt.figure(figsize=(4,4))
plt.imshow(images_norm[15].reshape(8,8), cmap='gray');
In [14]:
num_component        = 10
pca                  = SKPCA(n_components=num_component)
reduced_data         = pca.fit_transform(images_norm)
print(reduced_data.shape)

inv_pca              = pca.inverse_transform(reduced_data)
print(inv_pca.shape)
(1797, 10)
(1797, 64)
In [15]:
%matplotlib inline
plt.figure(figsize=(4,4))
plt.imshow(inv_pca[15].reshape(8,8), cmap='gray');