在部署PCA的gabor过滤器库中减少功能

时间:2014-10-31 18:18:14

标签: matlab image-processing pattern-matching feature-extraction feature-selection

使用Matlab,我正在使用Gabor滤波器组,具有不同的方向和比例,我通过使用过滤器的数量获得了巨大的功能。根据培训数据的总数,我想部署PCA以减少功能数量,但我不知道如何开始使用和使用哪种功能,请帮助。

1 个答案:

答案 0 :(得分:0)

如果您想使用PCA以减少功能数量Matlab makes everything available to you

更基本的版本:

%% some data points for 2 features
X = [1,1,1, 2,2,2, 3,3,3 ; 1,2,3, 2,3,4, 3,4,5];
numX = size(X,2);

%% PCA
covX = zeros(2,2); % sample covariance
meanX = mean(X,2); % sample mean
for k = 1:numX
    covX = covX + (X(:,k) - meanX) * (X(:,k) - meanX)';
end
covX = covX / (numX - 1);

% essential part of PCA:
[V,D] = eig(covX);

PCA example

现在通过PCA减少特征通常意味着将最高方差的方向(对应于D中的对角线条目)解释为最具辨别力的方向。因此,您只需使用V的几列即可将要素重新加权到较小变量的较小子集。

也许有点偏离你的问题,但在我看来非常重要:部署PCA并不总是减少功能数量的最佳选择,因为最大差异的方向并不总是最具辨别力的方向!此外,您仍然需要计算所有功能,只需减少分类数量(这有望使您免于过度拟合问题)。所以也许您也想考虑其他feature selection方法。