资源简介

运用 kpca 和elm进行人脸识别,在orl人脸数据库中成功率90

资源截图

代码片段和文件信息

function [evectorstrain_kpcatest_kpca] =KPCA(traintest)
rbf_var=10000;
threshold = 90;
patterns=zscore(train); %训练数据标准化
test_patterns=zscore(test); %测试数据标准化
train_num=size(patterns1); %train_num是训练样本的个数
test_num=size(test_patterns1);%test_num是测试样本的个数
cov_size = train_num; %cov_size是训练样本的个数
for i=1:cov_size
for j=i:cov_size
K(ij) = exp(-norm(patterns(i:)-patterns(j:))^2/rbf_var); %核函数 rbf_var ??
K(ji) = K(ij);
end
end
unit = ones(cov_size cov_size)/cov_size;%cov_size是样本的个数
K_n = K - unit*K - K*unit + unit*K*unit;% 中心化核矩阵
[evectors_1evaltures_1] = eig(K_n/cov_size);
[xindex]=sort(real(diag(evaltures_1))); %sort每行按从小到大排序,x为排序后结果,index为索引
evals=flipud(x) ;% flipud函数实现矩阵的上下翻转
index=flipud(index);
evectors=evectors_1(:index);
% for i=1:cov_size
% evecs(:i) = evectors(:i)/(sqrt(evectors(:i)));
% end
train_eigval = 100*cumsum(evals)./sum(evals);
index = find(train_eigval >threshold);

train_kpca = zeros(train_num index(1)); %train_num是训练样本的个数
tra

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        1651  2016-12-22 19:10  kpca+elm\KPCA.m
     文件         351  2016-12-22 16:15  kpca+elm\LEM_test.m
     文件         434  2016-12-22 16:05  kpca+elm\LEM_train.m
     文件         706  2017-03-24 15:49  kpca+elm\Main.m
     文件      376589  2016-12-16 17:53  kpca+elm\ORL.mat
     文件         227  2017-03-24 15:49  kpca+elm\tiqu.m
     目录           0  2017-03-24 15:48  kpca+elm\

评论

共有 条评论