zoukankan      html  css  js  c++  java
  • SVMshow

    SVMshow

    % http://www.peteryu.ca/tutorials/matlab/visualize_decision_boundaries
    
    % load RankData
    % NumTrain =200;
    
    load RankData2
    
    lambda = 20;
    rho = 1;
    c1 =10;
    c2 =10;
    epsilon = 0.2;
    result=[];
    
    
    
    ker = 'lin';
    sigma = 1/50;
    par = NonLinearDualSVORIM(X, y, c1, c2, epsilon, rho, ker, sigma);
    
    
    % set up the domain over which you want to visualize the decision
    % boundary
    xrange = [-5 5];
    yrange = [-5 5];
    % step size for how finely you want to visualize the decision boundary.
    inc = 0.1;
    % 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.
        d = [];
        for k=1:max(y)
            d(:,k) =  decisionfun(xy, par, X,y,k,epsilon, ker,sigma)';
        end
        [~,idx] = min(abs(d),[],2)
     
    % reshape the idx (which contains the class label) into an image.
    decisionmap = reshape(idx, image_size);
    
    figure;
     
    %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(cmap);
    
     
    % label the axes.
    xlabel('x1');
    ylabel('x2');
    
    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');
    
    hold on;
    set(gca,'ydir','normal');
    

      

  • 相关阅读:
    新浪微博千万级规模高性能、高并发的网络架构经验分享
    PHP- 如何在终端输出带颜色的字体?
    淘宝大秒杀系统是如何设计的?
    如何打造千万级Feed流系统
    Redis实现分布式锁 php
    Ubuntu16.04 安装PHP7 的 imagick 扩展
    nginx配置http访问自动跳转到https
    使用Redis来实现LBS的应用
    PHP多进程编程初步
    选redis还是memcache,源码怎么说
  • 原文地址:https://www.cnblogs.com/huadongw/p/4925648.html
Copyright © 2011-2022 走看看