
88
|
第
6
章
6.3
PCA
实战
让我们通过在图像数据上应用
PCA
,更好地理解一下
PCA
。
MNIST
数据集中包含了从
0
到
9
这几个数字的手写体的图像,初始图像是
28
像素×
28
像素。
scikit-learn
中有个分辨
率更低的图像子集,每张图像被下采样为
8
像素×
8
像素。
scikit-learn
中的初始数据有
64
个维度。在例
6-1
中,我们要使用
PCA
,并使用前
3
个主成分对数据集进行可视化。
例
6-1
scikit-learn
数字数据集(
MNIST
数据集的一个子集)的主成分分析
>>> from sklearn import datasets
>>> from sklearn.decomposition import PCA
# 载入数据
>>> digits_data = datasets.load_digits()
>>> n = len(digits_data.images)
# 每张图像被表示为一个8×8数组。将数组扁平化,作为PCA的输入
>>> image_data = digits_data.images.reshape((n, -1))
>>> image_data.shape
(1797, 64)
# 数字的真实值标签在每张图片中
>>> labels = digits_data.target
>>> labels
array([0, 1, 2, ..., 8, 9, 8])
# 为这个数据集拟合一个PCA转换器
# 自动选择主成分的数目,使主成分能解释至少80% ...