Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 基于PCA的gabor滤波器组特征约简_Matlab_Image Processing_Pattern Matching_Feature Extraction_Feature Selection - Fatal编程技术网

Matlab 基于PCA的gabor滤波器组特征约简

Matlab 基于PCA的gabor滤波器组特征约简,matlab,image-processing,pattern-matching,feature-extraction,feature-selection,Matlab,Image Processing,Pattern Matching,Feature Extraction,Feature Selection,使用Matlab,我正在使用Gabor滤波器组,在不同的方向和尺度下,通过使用的滤波器数量,我得到了大量的特征。对于训练数据的总数,我想部署PCA以减少功能数量,但我不知道如何开始以及使用哪个功能,请提供帮助。如果要使用PCA以减少功能数量 更基本一点的版本: %% 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 = ze

使用Matlab,我正在使用Gabor滤波器组,在不同的方向和尺度下,通过使用的滤波器数量,我得到了大量的特征。对于训练数据的总数,我想部署PCA以减少功能数量,但我不知道如何开始以及使用哪个功能,请提供帮助。

如果要使用PCA以减少功能数量

更基本一点的版本:

%% 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特征约简通常意味着将D中对角项对应的最大方差方向解释为最具辨别力的方向。因此,您只需使用几列V就可以将您的特征重新加权为最大变化的较小子集


也许有点偏离你的问题,但在我看来相当重要:部署PCA并不总是减少特征数量的最佳选择,因为方差最大的方向并不总是最具辨别力的方向!此外,您还必须计算所有特征,并减少分类数量,这有望避免过度拟合问题。所以也许你也想考虑其他的方法。可以work@chappjc似乎今晚我们是孤独的;哦我猜有一条规则,注释功能不应该被误用为普通聊天:D