首页 > 其他 > 详细

MATLAB画图

时间:2016-01-06 23:34:19      阅读:323      评论:0      收藏:0      [点我收藏+]

画图代码

clear
% http://www.peteryu.ca/tutorials/matlab/visualize_decision_boundaries

% load RankData
% NumTrain =200;

load RankData2

% X = [X, -ones(size(X,1),1)];

lambda = 20;
rho = 2;
c1 =10;
c2 =10;
epsilon = 0.2;
result=[];
ker = ‘linear‘;
 ker = ‘rbf‘;
sigma = 1/1000;
method=5
contour_level1 = [-epsilon,0, epsilon];
contour_level2 = [-epsilon,0, epsilon];
xrange = [-5 5];
yrange = [-5 5];
% step size for how finely you want to visualize the decision boundary.
inc = 0.01;
% generate grid coordinates. this will be the basis of the decision
% boundary visualization.
[x1, x2] = meshgrid(xrange(1):inc:xrange(2), yrange(1):inc:yrange(2));
% size of the (x, y) image, which will also be the size of the
% decision boundary image that is used as the plot background.
image_size = size(x1)

xy = [x1(:) x2(:)]; % make (x,y) pairs as a bunch of row vectors.
%xy = [reshape(x, image_size(1)*image_size(2),1) reshape(y, image_size(1)*image_size(2),1)]

% loop through each class and calculate distance measure for each (x,y)
% from the class prototype.

% calculate the city block distance between every (x,y) pair and
% the sample mean of the class.
% the sum is over the columns to produce a distance for each (x,y)
% pair.

switch method
    case 1
        par = ParNonLinearDualSVORIM(X, y, c1, c2, epsilon, rho, ker, sigma);
         f = TestPrecisionNonLinear(par,X, y,X, y, ker,epsilon,sigma);
        % set up the domain over which you want to visualize the decision
        % boundary
        d = [];
        for k=1:max(y)
            d(:,k) =  decisionfun(xy, par, X,y,k,epsilon, ker,sigma)‘;
        end
       [~,idx] = min(abs(d)/par.normw{k},[],2);
       contour_level=contour_level1;
    case 2
        par = ParNonLinearDualBoundSVORIM(X, y, c1, c2, epsilon, rho, ker, sigma);
        f = TestPrecisionNonLinear(par,X, y,X, y, ker,epsilon,sigma);
        % set up the domain over which you want to visualize the decision
        % boundary
        d = [];
        for k=1:max(y)
            d(:,k) =  decisionfun(xy, par, X,y,k,epsilon, ker,sigma)‘;
        end
       [~,idx] = min(abs(d)/par.normw{k},[],2);
       contour_level=contour_level1;
    case  3
  %       par = NewSVORIM(X, y, c1, c2, epsilon, rho);
       par = LinearDualSVORIM(X,y, c1, c2, epsilon, rho); % ADMM for linear dual model 
        d = [];
        for k=1:max(y)
            w= par.w(:,k)‘;
             d(:,k) = w*xy‘-par.b(k);
        end
         [~,idx] = min(abs(d)/norm(par.w),[],2);
         contour_level=contour_level1;
    case 4
        path=‘C:\Users\hd\Desktop\svorim\svorim\‘;
        name=‘RankData2‘;
        k=0;
        fname1 = strcat(path, name,‘_train.‘, num2str(k));  
        fname2 = strcat(path, name,‘_targets.‘, num2str(k));  
        fname2 = strcat(path, name,‘_test.‘, num2str(k)); 
        Data=[X y];
        save(fname1,‘Data‘,‘-ascii‘);
        save(fname2,‘y‘,‘-ascii‘);
        save(fname2,‘X‘,‘-ascii‘);
        command= strcat(path,‘svorim -F 1 -Z 0 -Co 10 -p 0 -Ko 1/10 C:\Users\hd\Desktop\svorim\svorim\‘, name, ‘_train.‘, num2str(k));
%        command= ‘C:\Users\hd\Desktop\svorim\svorim\svorim -F 1 -Z 0 -Co 10 C:\Users\hd\Desktop\svorim\svorim\RankData2_train.0‘;
%        command=‘C:\Users\hd\Desktop\svorim\svorim\svorim -F 1 -Z 0 -Co 10 G:\datasets-orreview\discretized-regression\5bins\X4058\matlab\mytask_train.0‘
        dos(command);
        fname2 = strcat(fname1, ‘.svm.alpha‘);
        alpha_bais = textread(fname2);
        r=length(unique(y));
        model.alpha=alpha_bais(1:end-r+1);
        model.b=alpha_bais(end-r+2:end);
        xnew=xy;
        nT=size(xnew,1);
        for k=1:r-1
%             d(:,k)=model.alpha‘*Kernel(ker,X‘,xy‘,sigma)- model.b(k);
            if nT >1000
                for j=1:nT/1000
                    xnewk=xnew(1000*(j-1)+1:1000*j,:);
                    f(1000*(j-1)+1:1000*j) = model.alpha‘*Kernel(ker,X‘,xnewk‘,sigma)- model.b(k);
                end
                xnewk=xnew(1000*j+1:nT,:);
                f(1000*j+1:nT)=model.alpha‘*Kernel(ker,X‘,xnewk‘,sigma)- model.b(k);
            else
                f =model.alpha‘*Kernel(ker,X‘,xnew‘,sigma)- model.b(k);
            end
             d(:,k)=f;
        end

         pretarget=[];idx=[];
        for i=1:size(xy,1)
            idx(i) = min([find(d(i,:)<0,1,‘first‘),length(model.b)+1]);
        end
        contour_level=contour_level2;
    case 5
        train.patterns =X;
        train.targets = y;
        test.patterns =xy;
        test.targets = ones(size(xy,1),1);
        switch ker
            case ‘linear‘
                parameters=[c1];
               Algorithm = SVOREXLin();
                Title=‘SVORLin(c=10)‘;
            case ‘rbf‘
                parameters=[c1 sigma];
                 Algorithm = SVORIM();
                 Title=‘SVORIM(\gamma=1/1000)‘;
        end
        [model_information] =  Algorithm.runAlgorithm(train, test, parameters);
        
%         r=length(unique(y));
%         model.alpha=model_information.model.projection‘;
%         model.b=model_information.model.thresholds;
%         xnew=xy;
%         nT=size(xnew,1);
%         for k=1:r-1
% %             d(:,k)=model.alpha‘*Kernel(ker,X‘,xy‘,sigma)- model.b(k);
%             if nT >1000
%                 for j=1:nT/1000
%                     xnewk=xnew(1000*(j-1)+1:1000*j,:);
%                     f(1000*(j-1)+1:1000*j) = model.alpha‘*Kernel(ker,X‘,xnewk‘,sigma)- model.b(k);
%                 end
%                 xnewk=xnew(1000*j+1:nT,:);
%                 f(1000*j+1:nT)=model.alpha‘*Kernel(ker,X‘,xnewk‘,sigma)- model.b(k);
%             else
%                 f =model.alpha‘*Kernel(ker,X‘,xnew‘,sigma)- model.b(k);
%             end
%              d(:,k)=f;
%         end
% 
%          pretarget=[];idx=[];
%         for i=1:size(xy,1)
%             idx(i) = min([find(d(i,:)<0,1,‘first‘),length(model.b)+1]);
%         end
        idx=model_information.predictedTest;
        contour_level=contour_level2;
        MZE =1- mean(model_information.predictedTrain==y);
        MAE= mean(abs(model_information.predictedTrain-y));
        Title = [Title ‘MZE=‘ num2str(MZE) ‘MAE=‘ num2str(MAE)];
        
  case 6
        train.patterns =X;
        train.targets = y;
        test.patterns =xy;
        test.targets = ones(size(xy,1),1);
        switch ker
            case ‘linear‘
                parameters=[c1];
                 Algorithm = SVORLin();
                Title=‘REDSVMLin(c=10)‘;
            case ‘rbf‘
                parameters=[c1 sigma];
                 Algorithm = REDSVM();
                 Title=‘REDSVM(\gamma=1/1000)‘;
        end
        [model_information] =  Algorithm.runAlgorithm(train, test, parameters);        
        idx=model_information.predictedTest;
        contour_level=contour_level2;        
        MZE =1- mean(model_information.predictedTrain==y);
        MAE= mean(abs(model_information.predictedTrain-y));
        Title = [Title ‘MZE=‘ num2str(MZE) ‘MAE=‘ num2str(MAE)];
end


 
% reshape the idx (which contains the class label) into an image.
decisionmap = reshape(idx, image_size);

% figure(7);
%  
% %show the image
% imagesc(xrange,yrange,decisionmap);
% hold on;
% set(gca,‘ydir‘,‘normal‘);
%  
% % colormap for the classes:
% % class 1 = light red, 2 = light green, 3 = light blue
% cmap = [1 0.8 0.8; 0.95 1 0.95; 0.9 0.9 1];
% colormap cool;
% 
% imagesc(xrange,yrange,decisionmap);

% plot the class training data.

color = {‘r.‘,‘go‘,‘b*‘,‘r.‘,‘go‘,‘b*‘};

for i=1:max(y)
    plot(X(y==i,1),X(y==i,2), color{i});
    hold on
end
% include legend
% legend(‘Class 1‘, ‘Class 2‘, ‘Class 3‘,‘Location‘,‘NorthOutside‘, ...
%     ‘Orientation‘, ‘horizontal‘);
legend(‘Class 1‘, ‘Class 2‘, ‘Class 3‘);
set(gca,‘ydir‘,‘normal‘);
hold on
for k = 1:max(y)-1
%       decisionmapk = reshape(d(:,k), image_size);
%       contour(x1,x2, decisionmapk, [contour_level(1) contour_level(1) ], color{k},‘Fill‘,‘off‘);
%      contour(x1,x2, decisionmapk, [contour_level(2) contour_level(2) ], color{k},‘Fill‘,‘off‘,‘LineWidth‘,2);
%       contour(x1,x2, decisionmapk, [contour_level(3) contour_level(3) ], color{k},‘Fill‘,‘off‘);   
      if k<max(y)
           contour(x1,x2, decisionmap, [k+1 k+1], color{k},‘Fill‘,‘off‘,‘LineWidth‘,2);
      end
end

hold off
%  
% label the axes.
xlabel(‘x1‘);
ylabel(‘x2‘);
title(Title)

 

MATLAB画图

原文:http://www.cnblogs.com/huadongw/p/5107803.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!