資源簡介
PCA和KPCA的Matlab和C++程序,其中核函數使用的是高斯核函數

代碼片段和文件信息
clc
clear
%load(‘studydata.txt‘)
%x=studydata;
load(‘test.txt‘)
x=test;
psize=size(x);
percent=0.95;?%KPCA中特征值的提取效率
d=0.98;??%特征值成分的提取比重
var=287;
sign=1;?%采用gauss核
tic
[eigenvaluekernelmatrixeigenvectorsproject_invectorsleleijit]=kpca(xpercentvarsign);?%未對樣本進行篩選的KPCA
disp(‘KPCA所用時間‘);
toc
groupnumber=3;??%樣本分組的組數
tic
l=floor(psize(1)/groupnumber);??%重采樣進行重新分組
i=2;
k(1)=1;
while?i<=groupnumber+1
????k(i)=(i-1)*l;
????i=i+1;
????if?i*l>psize;
????????k(i)=psize(1);
????????break;
????end
end
xx=x(k(1):k(2):);????
[eigenvaluekleigenvectorsakpcaproject_invectorsleleijit]=kpca(xxpercentvarsign);?%先對第一組處理
if?t==1
????sume=abs(eigenvectors(:1));
else
????sume=abs(eigenvectors(:1))+abs(eigenvectors(:2));
end
[valuegetnumberrestdata]=shaixuan(xxsumed);?%對樣本進行篩選
ter_xx=restdata;?%記錄獲取的新樣本數據
pvalue=value;??%記錄獲取的樣本編號
newdatanumber=getnumber;%記錄獲取的樣本數目
%pvalue
for?j=2:groupnumber?%對每一小組樣本執行KPCA并對樣本進行篩選
????xx=x(k(j)+1:k(j+1):);????
????[eigenvaluekleigenvectorsakpcaproject_invectorsleleijit]=kpca(xxpercentvarsign);????
????if?t==1
????sume=abs(eigenvectors(:1));??
????else
????sume=abs(eigenvectors(:1))+abs(eigenvectors(:2));
????end
????[valuegetnumberrestdata]=shaixuan(xxsumed);?%對樣本進行篩選
????ter_xx=[ter_xx;restdata];????
????for?ii=1:getnumber
????????value(ii)=value(ii)+k(j);
????end???
????pvalue=[pvalue;value];
????newdatanumber=getnumber+newdatanumber;
end
%disp(‘分組對樣本進行提取之后的樣本集是‘);
%ter_xx
[eigenvalue2kleigenvectors2project_invectors2le2leiji2t2]=kpca(ter_xxpercentvarsign);??%再次調用KPCA
for?i=1:newdatanumber
????newkernermatrix(i:)=kernelmatrix(pvalue(i):);?%獲取索取樣本對應核矩陣的行數據
end
newproject=eigenvectors2‘*newkernermatrix;?%計算經AKPCA的運算后的投影
newproject=newproject‘;
disp(‘AKPCA所用時間‘);
toc
newdatanumber
disp(‘AKPCA所得的特征投影為‘);
newproject
%save?‘newproject.txt‘?newproject??-ASCII
sut=abs(project_invectors(:1))-abs(newproject(:1));?%求解誤差
sut=abs(sut‘./project_invectors(:1)‘);
disp(‘經過AKPCA第一投影每一項的標準誤差為‘)
sut
hold?on
subplot(221);
plot(project_invectors(:1)‘project_invectors(:2)‘‘.‘);
title(‘KPCA(gauss核)的前兩個主分量的分布‘);
subplot(222)
percent_spca=100*le;
pareto(percent_spca);
title(‘KPCA特征值的累積貢獻率‘);
subplot(223);
plot(newproject(:1)‘newproject(:2)‘‘.‘);
title(‘AKPCA(gauss核)的前兩個主分量的分布‘);
subplot(224)
percent_spca=100*le2;
pareto(percent_spca);
title(‘AKPCA特征值的累積貢獻率‘);
hold?off
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2007-06-02?19:15??畢設matlab和c++\
?????文件????????2528??2007-05-31?21:03??畢設matlab和c++\fenzuAKPCA.asv
?????文件????????2696??2007-06-01?21:39??畢設matlab和c++\fenzuAKPCA.m
?????文件????????2035??2007-05-31?21:23??畢設matlab和c++\fggfgh.asv
?????文件????????2035??2007-05-31?21:24??畢設matlab和c++\fggfgh.m
?????文件?????????177??2007-04-18?22:37??畢設matlab和c++\kernel.m
?????文件????????1605??2007-05-31?19:00??畢設matlab和c++\kpca.m
?????文件?????????330??2007-06-01?21:54??畢設matlab和c++\kpcakongxiresult436.txt
?????文件????????1729??2007-05-31?19:02??畢設matlab和c++\pca.m
?????文件?????????330??2007-05-30?10:01??畢設matlab和c++\pcakongxiresult.txt
?????文件?????????795??2007-05-31?19:18??畢設matlab和c++\shaixuan.asv
?????文件?????????792??2007-06-01?08:40??畢設matlab和c++\shaixuan.m
?????文件????????1551??2007-04-16?09:20??畢設matlab和c++\studydata.txt
?????文件????????9277??2007-05-17?13:17??畢設matlab和c++\test.txt
?????文件????????1380??2007-05-31?19:48??畢設matlab和c++\testAKPCA.asv
?????文件????????1639??2007-06-01?22:05??畢設matlab和c++\testAKPCA.m
?????文件?????????483??2007-05-31?16:29??畢設matlab和c++\testkernelparameter.m
?????文件????????1313??2007-05-31?19:02??畢設matlab和c++\test_pca_and_kpca.asv
?????文件????????1316??2007-05-31?19:03??畢設matlab和c++\test_pca_and_kpca.m
?????目錄???????????0??2007-06-02?19:15??畢設matlab和c++\單潔畢業設計C++程序5.28\
?????目錄???????????0??2007-06-02?19:15??畢設matlab和c++\單潔畢業設計C++程序5.28\kpca\
?????文件??????441629??2007-06-02?18:59??畢設matlab和c++\單潔畢業設計C++程序5.28\kpca\eigen.txt
?????文件???????????3??2007-06-02?18:59??畢設matlab和c++\單潔畢業設計C++程序5.28\kpca\gaussparameter.txt
?????文件????????2117??2007-06-02?18:56??畢設matlab和c++\單潔畢業設計C++程序5.28\kpca\kpca.cpp
?????文件????????3377??2007-06-02?18:51??畢設matlab和c++\單潔畢業設計C++程序5.28\kpca\kpca.dsp
?????文件?????????516??2007-06-02?19:15??畢設matlab和c++\單潔畢業設計C++程序5.28\kpca\kpca.dsw
?????文件???????11033??2007-06-02?18:51??畢設matlab和c++\單潔畢業設計C++程序5.28\kpca\kpca.h
?????文件???????58368??2007-06-02?19:15??畢設matlab和c++\單潔畢業設計C++程序5.28\kpca\kpca.ncb
?????文件???????48640??2007-06-02?19:15??畢設matlab和c++\單潔畢業設計C++程序5.28\kpca\kpca.opt
?????文件????????1246??2007-06-02?18:56??畢設matlab和c++\單潔畢業設計C++程序5.28\kpca\kpca.plg
?????文件????????7257??2007-06-02?18:59??畢設matlab和c++\單潔畢業設計C++程序5.28\kpca\kpcaproject.txt
............此處省略15個文件信息
- 上一篇:MFC中的多線程同步
- 下一篇:c++頭文件大全,很全哦,
評論
共有 條評論