資源簡(jiǎn)介
實(shí)現(xiàn)了基于matlab下的KL變換的詳細(xì)代碼,內(nèi)容比較詳細(xì)。

代碼片段和文件信息
function?[tezhivectorJfeaflag]=kltransform(dataclassnumsfeanumsnumsofoneselfeanumspanju)
%特征提取
if(size(data2)~=feanums)
???data=data‘;
end
if(numsofone*classnums~=size(data1))
???disp(‘shu?ru?shu?ju?wei?shu?chu?cuo‘)
???return;
end
if(panju<0|panju>7)
???sprintf(‘suo?shu?ru?de?panju?ge?shu?bi?xu?zai?%d?he?%d?zhi?jiannot?%d‘17panju)
???return;
end
sw=zeros(feanumsfeanums);
rx=zeros(feanumsfeanums);
sb=zeros(feanumsfeanums);
classmean=zeros(classnumsfeanums);
totalmean=zeros(1feanums);
totalmean=mean(data);
a=zeros(feanumsfeanums);
plei=1.0/classnums;
zongnums=classnums*numsofone;
J=zeros(1feanums);
feaflag=zeros(1feanums);
vector=zeros(feanumsfeanums);
tezhi=zeros(1feanums);
for?nums=1:classnums
???classmean(nums:)=mean(data((nums-1)*numsofone+1:nums*numsofone:));
end
for?nums=1:classnums
???for?geshu=(nums-1)*numsofone+1:nums*numsofone
??????a=(data(geshu:)-classmean(nums:))‘*(data(geshu:)-classmean(nums:));
??????sw=sw+a;
??????rx=rx+(data(geshu:)-totalmean(1:))‘*(data(geshu:)-totalmean(1:));
???end
???sb=sb+(classmean(nums:)-totalmean(1:))‘*(classmean(nums:)-totalmean(1:));
end
sw=sw*plei/numsofone;
rx=rx/zongnums;
sb=sb*plei;
if(panju==1)
???[vectora]=eig(rx);%?panju==1?zi?xiang?guan?ju?zhen?kl?bian?huan
elseif(panju==2)
???[vectora]=eig(sw);?%panju==2lei?nei?li?san?du?ju?zhen?kl?bian?huan??
elseif(panju==3)
???if(det(sw)==0)
??????disp(‘this?critia?does?not?worksw?is?singular‘)
??????return;
???end
???[vectora]=eig(sb/sw);?%panju==3sb/sw?kl?bian?huan?
elseif(panju==4) %panju=4?lei?ping?jun?xiang?liang?de?zui?you?ya?suo?
???[vectora]=eig(sw);
???baihua=zeros(feanumsfeanums);
???for?feas=1:feanums
??????baihua(:feas)=vector(:feas)/(a(feasfeas)^(1/2));
???end
???sbb=baihua‘*sb*baihua;
???[wa]=eig(sbb);
???vector=baihua*w;???
elseif(panju==5)??????%panju=5lei?jun?zhi?xin?xi?ti?qu?
???[vectora]=eig(sw);???
? for?feas=1:feanums
??????J(1feas)=vector(:feas)‘*sb*vector(:feas);
??????J(1feas)=J(1feas)/a(feasfeas);
? end
elseif(panju==6)???????%panju==6fang?cha?xin?xi?ti?qu
???[vectora]=eig(sw);
???leicov=zeros(feanumsfeanums);
???leitezhi=zeros(classnumsfeanums);
???for?nums=1:classnums
??????for?geshu=(nums-1)*numsofone+1:nums*numsofone
??????????leicov=leicov+(data(geshu:)-classmean(nums:))‘*(data(geshu:)-classmean(nums:));
??????end
??????leicov=leicov/numsofone;???
??????c=vector‘*leicov*vector;
??????for?feas=1:feanums
?????????leitezhi(numsfeas)=plei*c(feasfeas)/a(feasfeas);
??????end
???end???
???leitezhi;???
???for?feas=1:feanums
??????J(feas)=0;
??????for?nums=1:classnums
?????????J(feas)=J(feas)-leitezhi(numsfeas)*log(leitezhi(numsfeas));
??????end
???end??????
???%J=prod(leitezhi);?
elseif(panju==7)
???[vectora]=eig(sb);
end
tezhi=zeros(1feanums);
for?feas=1:feanums
???tezhi(1feas)=a(feasfeas);
end
if(panju<=4|panju==7)
???sumtezhi=sum(tezhi);
???J=tezhi/sumtezhi;
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件?????????707??2002-05-02?08:43??特征選擇與提取zch\NEAREST.M
?????文件?????????788??2002-05-02?18:29??特征選擇與提取zch\TONGJI.M
?????文件?????????345??2002-04-21?22:02??特征選擇與提取zch\XUANLIE.M
?????文件????????4031??2002-05-02?18:28??特征選擇與提取zch\kltransform.m
?????文件???????25321??2002-04-23?08:49??特征選擇與提取zch\tezhengtiqu.m
?????文件?????????248??2002-04-21?21:47??特征選擇與提取zch\writetofile.m
?????文件?????????190??2002-04-21?22:34??特征選擇與提取zch\writexinxi.m
?????目錄???????????0??2017-05-13?15:49??特征選擇與提取zch\
評(píng)論
共有 條評(píng)論