⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 svmc7.m

📁 SVM程序用于小样本分析
💻 M
字号:
function [fitness,newxpopnHist] = svmc7(oxpopn,datas,realClass,i_datas,i_realClass,gen)
hang=size(datas,1);
newxpopnHist=[];
newClassRate1=[];
newClassRate3=[];
 xpopn = oxpopn; 
mn=size(xpopn,1);
mn1=size(xpopn,2);
for j=1:mn %mn=line of xpopn
   picked = []; 
   i_picked = [];
   %========================================
   p=sort(xpopn(j,2:xpopn(j,1)+1));%cc
   temp=[];
   for m=1:size(p,2)-1
       if p(m)~=p(m+1)               
          temp=[temp p(m)];
       end
   end
newxpopn=[temp p(end)];
z=xpopn(j,1)-size(newxpopn,2);

   if z~=0
      for u=1:z          
          sas=round(hang*rand(1));
        if sas==0
            sas=1;
        end
         summ=sum(sas~=newxpopn);
            while summ<size(newxpopn,2)
                 sas=round(hang*rand(1)); 
                 if sas==0;
                 sas=1;
                 end
                 summ=sum(sas~=newxpopn);
            end;
         newxpopn=[newxpopn sas];
      end
   else 
   newxpopn=xpopn(j,2:xpopn(j,1)+1);
end    
con=size(newxpopn,2);
   %========================================
   
      n = 1;
   for m=1:con
      picked(n,:) = datas(newxpopn(m),:);
	   i_picked(n,:) = i_datas(newxpopn(m),:);
      n = n+1; 
   end;   
   Samples=picked;
   Labels=realClass;

   SamplesT=i_picked;
   LabelsT=i_realClass;    
  %%%%%@@@@
                    newClassRate2=[];
                    cc=size(Samples,2)+size(SamplesT,2);                

                 
                for j=1:cc
                    
                   Samples=[SamplesT Samples];
                   Labels=[LabelsT Labels];  
                   
                   SamplesT=[Samples(:,cc)];
                   LabelsT=[Labels(:,cc)];
  
                  Samples=[Samples(:,1:(cc-1))];
                  Labels=[Labels(:,1:(cc-1))];
                   [newClassRate8]=compute(Samples,Labels,SamplesT,LabelsT); 
                  newClassRate2=[newClassRate2 newClassRate8];
                end;
   newClassRate=sum(newClassRate2)/cc ;
   newClassRate3=[newClassRate3;newClassRate];
fitness=100*newClassRate3;
  %%%%%%@@@@@@@@@@         
   h=[];
   h1=size(newxpopn,2);
   z1=mn1-1-h1;
   for v=1:z1
       a=round(1);
       h=[h a];
   end
   newxpopn=[h1 newxpopn h];
   newxpopnHist=[newxpopnHist;newxpopn];
   clear newxpopn;
end;  
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function  [ClassRate]=compute(Samples,Labels,SamplesT,LabelsT)  
        Degree = 4;
        [AlphaY, SVs, Bias, Parameters, nSV, nLabel] = PolySVC(Samples, Labels, Degree);      

[ClassRate, DecisionValue, Ns, ConfMatrix, PreLabels]= SVMTest(SamplesT, LabelsT, AlphaY, SVs, Bias,Parameters, nSV, nLabel);

   %end of compute
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -