• 大小: 2KB
    文件类型: .m
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: Matlab
  • 标签: KPCA  MATLAB  

资源简介

KPCA的MATLAB代码,用于特征提取十分有效。

资源截图

代码片段和文件信息

function [train_kpcatest_kpca] = kpca(traintestthresholdrbf_var)

%% 函数默认设置
if nargin <4
rbf_var=10000;%?
end
if nargin <3
threshold = 90;
end
%% 数据处理
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);
%% 

评论

共有 条评论