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

📄 wlyfex2svm_2.m

📁 matlab基础使用程序
💻 M
字号:
function WLYFEX2svm_2(featurefile,imgfile,images,faces,trainratio,pcs)
% featurefile       file including features extracted by Wavelet;
% imgfile           file including original images;
% images            number of images;
% faces             number of faces;
% trainratio        percent of which used to train SVM classifier
% pcs               number of principle components
    load            (featurefile,'X1');
    load            (imgfile,'V','winx','winy');
    maximages       =images+faces;
    pcsrange        =5:pcs;     %ranges of PCs used to classify.
    trainsimages    =1:floor(images*trainratio);
    trainsfaces     =images+1:images+floor(faces*trainratio);
    testsimages     =floor(images*trainratio)+1:images;
    testsfaces      =images+floor(faces*trainratio)+1:images+faces;
	tmp=X1(:,2:end);
    tmp             =mypca(double(X1(:,2:end))',pcs)';
%     save            tmppca tmp
    Accuracyfid     =fopen('Accuracy.txt','w');
    errResult       =[];
    Xtrain          =[];
    Xtest           =[];
    errcounter      =1;
    for kk=pcsrange
        fprintf     (1,'%d ',kk);
        X1          =[X1(:,1) tmp(:,1:kk)];
        [m n]       =size(X1);
        Xtrain      =[X1(trainsimages,:);X1(trainsfaces,:)];
        Xtest       =[X1(testsimages,:);X1(testsfaces,:)];

        fidtrain    =fopen('train.txt','w');
        [m n]       =size(Xtrain);
        for i       =1:m
            fprintf (fidtrain,'%g',Xtrain(i,1));
            for j   =2:n
                fprintf (fidtrain,' %g:%g',j-1,Xtrain(i,j));
            end
            fprintf (fidtrain,'\n');
        end
        fclose      (fidtrain);
        fidtest     =fopen('test.txt','w');
        [m n]       =size(Xtest);
        for i       =1:m
            fprintf(fidtest,'%g',Xtest(i,1));
            for j   =2:n
                fprintf(fidtest,' %g:%g',j-1,Xtest(i,j));
            end
            fprintf(fidtest,'\n');
        end
        fclose  (fidtest);

        dos     ('train');
        tmpfid  =fopen('log.txt','a');
        fprintf (tmpfid,'\nCurrent dims of PCs=%s\n',num2str(kk));
        fclose  (tmpfid);
        tmp1    =textread('svmout.txt');
        %record the index of images unrecognized;
        errResult{errcounter}=find(tmp1~=Xtest(:,1));
        save errResult errResult;

        if maximages    >size(errResult{errcounter},1)
            Xtrain1     =[V(trainsimages,:);V(trainsfaces,:)];
            Xtest1      =[V(testsimages,:);V(testsfaces,:)];
            save        traintest Xtrain1 Xtest1 winx winy
            maximages   =size(errResult{errcounter},1);
        end
        errcounter  =errcounter+1;
        %calculating the accuracy of classification.
        tmpsame     =find(tmp1==Xtest(:,1));
        accuracy    =size(tmpsame,1)/size(tmp1,1);
            fprintf(Accuracyfid,'%d %d\n',kk,accuracy);
        dos('copy log.txt+trainlog.txt+testlog.txt log.txt');
    end
    fclose(Accuracyfid);
    delete('svmmod.txt');
    delete('svmout.txt');
    delete('test.txt');
    delete('testlog.txt');
    delete('train.txt');
    delete('trainlog.txt');
    WLYshowresult('Accuracy.txt');

    disp('taining an testing finished!!!');

⌨️ 快捷键说明

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