我一直在尝试使用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滤波器,它包含了关于图像的最多信息),但我不知道如何从这里开始。
PCA将为您提供特征的线性组合,而不是特征的选择。它将为您提供L2意义上最适合重建的线性组合,也就是捕获最大方差的线性组合。
你的目标是什么?如果你在一张图像上这样做,任何类型的选择都会给你带来一些特征,这些特征可以将图像的某些部分与同一图像的其他部分区分开来。
此外:Garbor滤波器是自然图像的稀疏基础。我不希望发生任何有趣的事情,除非你有非常具体的图像。