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

📄 checkoutn.m

📁 求解离散问题的pso aco 算法
💻 M
字号:
 
% n-fold cross validating procedure

function [pso_rmse2]=checkoutn(cdata,pso,x,nn)
% cdata:  数据集
% pso: 被测试的粒子
% x: 类标号
% nn:nn-fold validating process
% pso_rsme: results
    feature=cdata; % test set and train set
    [n,p1]=size(cdata);
    n1=floor(n/nn); % number of test data
    
    %feature=cdata(:,pso);
   % [ps,pp]=size(pso);
    %[cn,cp]=size(cmodel);
    for i=1:6
        pso_rmse1(i)=0.0;
    end
    %pso_rmse=zeros(ps,10);
    for jj=1:nn %%nn折交叉验证开始
       %generate train set and test set
       ll1=[];
       ll2=[];
       for l=1:n
          ll1(l)=0;
          ll2(l)=1;
       end
       for l=((jj-1)*n1+1):(jj*n1)
           ll1(l)=1;
           ll2(l)=0;
      end
      ftest=[];
      ftrain=[];
      xtest=[];
      xtrain=[];
      ftest=feature(ll1>0,:);  %test data
      ftrain=feature(ll2>0,:); % train set
      xtest=x(ll1>0,:);
      xtrain=x(ll2>0,:);
      
      for j=1:n1%%test data
          dm=10000;%%给距离比较系数赋一个大值,便于比较
          for b=1:(n-n1)%%对前n1个test样本计算与后n-n1个train样本的距离
            %d=sqrt(pso(1)*(feature(b,1)-feature(j,1))*(feature(b,1)-feature(j,1))+pso(2)*(feature(b,2)-feature(j,2))*(feature(b,2)-feature(j,2))+pso(3)*(feature(b,3)-feature(j,3))*(feature(b,3)-feature(j,3))+pso(4)*(feature(b,4)-feature(j,4))*(feature(b,4)-feature(j,4))+pso(5)*(feature(b,5)-feature(j,5))*(feature(b,5)-feature(j,5))+pso(6)*(feature(b,6)-feature(j,6))*(feature(b,6)-feature(j,6))+pso(7)*(feature(b,7)-feature(j,7))*(feature(b,7)-feature(j,7))+pso(8)*(feature(b,8)-feature(j,8))*(feature(b,8)-feature(j,8))+pso(9)*(feature(b,9)-feature(j,9))*(feature(b,9)-feature(j,9))+pso(10)*(feature(b,10)-feature(j,10))*(feature(b,10)-feature(j,10))+pso(11)*(feature(b,11)-feature(j,11))*(feature(b,11)-feature(j,11))+pso(12)*(feature(b,12)-feature(j,12))*(feature(b,12)-feature(j,12))+pso(13)*(feature(b,13)-feature(j,13))*(feature(b,13)-feature(j,13))+pso(14)*(feature(b,14)-feature(j,14))*(feature(b,14)-feature(j,14))+pso(15)*(feature(b,15)-feature(j,15))*(feature(b,15)-feature(j,15)));
             d=sqrt(pso.*(ftrain(b,:)-ftest(j,:))*(ftrain(b,:)-ftest(j,:))');
             if d<dm%%最短距离算法
                xtest(j,2)=xtrain(b,1); % set the label of data b to data j
                dm=d;
             end
          end
          pso_rmse1(1)=pso_rmse1(1)+(xtest(j,1)-xtest(j,2))*(xtest(j,1)-xtest(j,2));%%离差在循环中累加,共345次;
          if xtest(j,1)==1&xtest(j,2)==1%%判定分类正误
             pso_rmse1(3)=pso_rmse1(3)+1;
          end
          if xtest(j,1)==1&xtest(j,2)==0%%判定分类正误
             pso_rmse1(4)=pso_rmse1(4)+1;
          end
          if xtest(j,1)==0&xtest(j,2)==1%%判定分类正误
             pso_rmse1(5)=pso_rmse1(5)+1;
          end
          if xtest(j,1)==0&xtest(j,2)==0%%判定分类正误
             pso_rmse1(6)=pso_rmse1(6)+1;
          end
     end % end of j=1:n1
 end %end of jj
    pso_rmse1(1)=sqrt(pso_rmse1(1)/(nn*n1));%%计算离差
    pso_rmse1(7)=pso_rmse1(3)/(pso_rmse1(3)+pso_rmse1(4));%% 第一类分类正确率
    pso_rmse1(8)=pso_rmse1(6)/(pso_rmse1(5)+pso_rmse1(6));%% 第二类分类正确率
    pso_rmse1(9)=(pso_rmse1(7)+pso_rmse1(8))/2;%%分类正确率平均值
    pso_rmse1(10)=(pso_rmse1(6)+pso_rmse1(3))/(pso_rmse1(3)+pso_rmse1(4)+pso_rmse1(5)+pso_rmse1(6)); 
    pso_rmse2=pso_rmse1;

⌨️ 快捷键说明

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