📄 kpca.m
字号:
function [K_n,eigvectors,eigvalues]=kpca(trainsamples,var);
% [K_n,eigvectors,eigvalues]=kpca(trainsamples,var)
%trainsamples are the training sample,trainsamples(i,:) is the ith train
%sample.
%var is the gaussian kernel's variance
% we use the Gaussian kernel
% kernel,k(x,y)=exp(-||x-y||^2/var);var
% eigvectors is the eigvector and eigvalues is the eig values
%K_n is the kernel matrix.
[h,w]=size(trainsamples);
for i=1:h
for j=i:h
K(i,j)=gausskernel(trainsamples(i,:),trainsamples(j,:),var);
K(j,i)=K(i,j);
end
end
K_n=K-(ones(h)*K)/h-(K*ones(h))/h+(ones(h)*K*ones(h))/(h^2);
[eigvectors,eigvalues_n]=eig(K_n);
eigvalues=real(diag(eigvalues_n));
for i=1:h
eigvectors(:,i)=eigvectors(:,i)/sqrt(eigvalues(i));
end
[eigvalues,it]=sort(eigvalues,'descend');
eigvectors=eigvectors(:,it);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -