?? giniplot.m
字號:
function plotMsv(X,Y,alpha,bias,ratedist,aspect,mag,xaxis,yaxis,input)%Gini-Support Vector Machine Plotting routine% Adapted from Steve Gunn's SVC plotting function%% Usage: giniplot(X,Y,ker,alpha,bias,zoom,xaxis,yaxis,input)%% Parameters: X - Training inputs% alpha - Lagrange Multipliers% bias - Bias term % aspect - Aspect Ratio (default: 0 (fixed), 1 (variable))% mag - display magnification % xaxis - xaxis input (default: 1) % yaxis - yaxis input (default: 2)% input - vector of input values (default: zeros(no_of_inputs))% nargin if (nargin <5 | nargin > 10) % check correct number of arguments help plotMsvbw else epsilon = 1e-5; if (nargin < 10) input = zeros(1,size(X,2));, end if (nargin < 9) yaxis = 2;, end if (nargin < 8) xaxis = 1;, end if (nargin < 7) mag = 0.1;, end if (nargin < 6) aspect = 0;, end % Number of classes M = length(alpha(1,:)); % Scale the axes xmin = min(X(:,xaxis));, xmax = max(X(:,xaxis)); ymin = min(X(:,yaxis));, ymax = max(X(:,yaxis)); xa = (xmax - xmin);, ya = (ymax - ymin); if (~aspect) if (0.75*abs(xa) < abs(ya)) offadd = 0.5*(ya*4/3 - xa);, xmin = xmin - offadd - mag*0.5*ya;, xmax = xmax + offadd + mag*0.5*ya; ymin = ymin - mag*0.5*ya;, ymax = ymax + mag*0.5*ya; else offadd = 0.5*(xa*3/4 - ya);, xmin = xmin - mag*0.5*xa;, xmax = xmax + mag*0.5*xa; ymin = ymin - offadd - mag*0.5*xa;, ymax = ymax + offadd + mag*0.5*xa; end else xmin = xmin - mag*0.5*xa;, xmax = xmax + mag*0.5*xa; ymin = ymin - mag*0.5*ya;, ymax = ymax + mag*0.5*ya; end set(gca,'XLim',[xmin xmax],'YLim',[ymin ymax]); % Plot function value [x,y] = meshgrid(xmin:(xmax-xmin)/25:xmax,ymin:(ymax-ymin)/25:ymax); for x1 = 1 : size(x,1) for y1 = 1 : size(x,2) input(xaxis) = x(x1,y1);, input(yaxis) = y(x1,y1); %for i = 1 : length(alpha(:,1)) % if (abs(alpha(i)) > epsilon) %prob = clusterMrun(input,X,Y,alpha,bias); %prob = logsmoMrun(input,X,alpha,bias); mvalue = kernel(input,X)*alpha+bias'; prob = ginitest(mvalue,ratedist'); for m = 1:M, z(x1,y1,m) = prob(m); end; zmax(x1,y1) = 1-max(prob); % end %end end %waitbar((x1)/size(x,1)) end % Plot Training points sp = pcolor(x,y,zmax); shading interp; hold on for i = 1:size(alpha(:,1)) ind = find(Y(i,:)==1); % 3 class plot if ind == 1, plot(X(i,xaxis),X(i,yaxis),'wo','LineWidth',1) % Class A else if ind == 2, plot(X(i,xaxis),X(i,yaxis),'w+','LineWidth',1) % Class B else if ind == 3, plot(X(i,xaxis),X(i,yaxis),'w*','LineWidth',1) % Class B else if ind == 4, plot(X(i,xaxis),X(i,yaxis),'ws','LineWidth',1) % Class B else plot(X(i,xaxis),X(i,yaxis),'w^','LineWidth',1) % Class B end; end; end; end %if (abs(alpha(i)) > epsilon) % plot(X(i,xaxis),X(i,yaxis),'kh') % Support Vector %end end % Plot Boundary contour hold on for m = 1:M, %contour(x,y,z(:,:,m),[0 0],'k') contour(x,y,z(:,:,m),[0.5 0.5],'w--') %contour(x,y,z(:,:,m),[0.7 0.7],'k.') %contour(x,y,z(:,:,m),[0.3 0.3],'k.-') end; xlabel('x1'); ylabel('x2'); hold off colormap(gray); end
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -