在sklearn中通过PCA减少维度

时间:2017-08-31 18:46:29

标签: scikit-learn computer-vision pca

我希望通过PCA在sklearn中将图像的尺寸从(480,640,3)缩小到(1,512)。所以我将图像重塑为(1,921600)。之后,我执行pca来减小尺寸。但它改为(1,1)而不是(1,512)

>>> img.shape
(1, 921600)
>>> pca = PCA(n_components=512)
>>> pca.fit_transform(img).shape
(1, 1)

有人能告诉我如何减少单个图像的尺寸吗?感谢

1 个答案:

答案 0 :(得分:2)

这是预料之中的。 Wiki says (bold annotation by me)

  

PCA是一种统计程序,它使用正交变换将可能相关变量的观察值转换为一组称为主成分的线性不相关变量的值(或者有时,主要的变异模式)

在形状(1, 921600)上拟合PCA意味着它是具有921600个特征的一个样本。

sklearn's docs:

  

n_components == min(n_samples,n_features)