📄 kernelpca.m
字号:
function [eigvect,eigval,Kt]=kernelpca(x,kernel,kerneloption)
% USAGE
% [eigvect,eigval]=kernelpca(x,kernel,kerneloption)
%
% Diagonalizing the covariance matrix in feature space
%
% eigenvalues are sorted in descending order
%
%
tol=1e-15; %tolerance on zeroness of eigenvalue
if nargin <2
kernel='poly';
kerneloption=1;
end;
nx=size(x,1);
K=svmkernel(x,kernel,kerneloption);
oneM=ones(nx,nx)./nx;
Kt=K-oneM*K-K*oneM+oneM*K*oneM;
[eigvect,eigval]=eig(Kt/nx); % diagonalizing Kt/nx;
eigval=diag(eigval);
indeigval=(find(abs(eigval)>=tol)); % keeping only eigval higher than tol
eigvect=eigvect(:,indeigval);
eigval=eigval(indeigval);
nbeigval=length(eigval);
for i=1:nbeigval % normalizing eigenvector
eigvect(:,i)=eigvect(:,i)/sqrt(eigval(i));
end;
[aux,ind]=sort(-eigval);
eigval=eigval(ind);
eigvect=eigvect(:,ind);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -