SVM Visualization in MATLAB

前端 未结 4 1364
甜味超标
甜味超标 2021-01-05 01:58

How do I visualize the SVM classification once I perform SVM training in Matlab?

So far, I have only trained the SVM with:

% Labels are -1 or 1
groun         


        
4条回答
  •  感情败类
    2021-01-05 02:06

    If you are using LIBSVM, you can plot classification results:

    % Labels are -1 or 1
    groundTruth = Ytrain;
    d = xtrain;
    
    figure
    
    % plot training data
    hold on;
    pos = find(groundTruth==1);
    scatter(d(pos,1), d(pos,2), 'r')
    pos = find(groundTruth==-1);
    scatter(d(pos,1), d(pos,2), 'b')
    
    % now plot support vectors
    hold on;
    sv = full(model.SVs);
    plot(sv(:,1),sv(:,2),'ko');
    
    % now plot decision area
    [xi,yi] = meshgrid([min(d(:,1)):0.01:max(d(:,1))],[min(d(:,2)):0.01:max(d(:,2))]);
    dd = [xi(:),yi(:)];
    tic;[predicted_label, accuracy, decision_values] = svmpredict(zeros(size(dd,1),1), dd, model);toc
    pos = find(predicted_label==1);
    hold on;
    redcolor = [1 0.8 0.8];
    bluecolor = [0.8 0.8 1];
    h1 = plot(dd(pos,1),dd(pos,2),'s','color',redcolor,'MarkerSize',10,'MarkerEdgeColor',redcolor,'MarkerFaceColor',redcolor);
    pos = find(predicted_label==-1);
    hold on;
    h2 = plot(dd(pos,1),dd(pos,2),'s','color',bluecolor,'MarkerSize',10,'MarkerEdgeColor',bluecolor,'MarkerFaceColor',bluecolor);
    uistack(h1, 'bottom');
    uistack(h2, 'bottom');
    

提交回复
热议问题