我一直在尝试使用PCA进行一些降维。我目前有一个大小(100,100)的图像,我正在使用140 Gabor滤波器的滤波器组,每个滤波器给我一个响应,这也是(100,100)的图像。现在,我想进行功能选择,我只想选择非冗余功能,并且我读到PCA可能是一个很好的方法。
所以我开始创建一个包含10000行和140列的数据矩阵。因此,每行包含该滤波器组的Gabor滤波器的各种响应。现在,据我所知,我可以使用PCA将此矩阵分解为
from sklearn.decomposition import PCA
pca = pca(n_components = 3)
pca.fit(Q) # Q is my 10000 X 140 matrix
然而,现在我很困惑我如何能够找出这140个特征向量中的哪一个。我猜它应该给我这些140个矢量中的3个(对应于包含图像信息最多的Gabor滤波器),但我不知道如何从这里开始。
答案 0 :(得分:4)
PCA将为您提供线性的功能组合,而不是一系列功能。它将为您提供最适合L2意义重建的线性组合,也就是捕获最多方差的线性组合。
你的目标是什么?如果您在一个图像上执行此操作,任何类型的选择都将为您提供将图像的某些部分与同一图像的其他部分区分开来的功能。
另外:Garbor过滤器是自然图像的稀疏基础。除非你有非常具体的图像,否则我不希望发生任何有趣的事情。