SVM Visualization in MATLAB

前端 未结 4 1337
甜味超标
甜味超标 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');
    
    0 讨论(0)
  • 2021-01-05 02:06

    Check out this svm-toy function similar to the one in LIBSVM. Obviously it only works for 2D binary classification

    0 讨论(0)
  • 2021-01-05 02:07
    model = svmtrain(groundTruth, d, 'ShowPlot', true);
    
    0 讨论(0)
  • 2021-01-05 02:11

    Assuming your data has more than two dimensions, you can perform a PCA, project the data to 2D, then assign them a color according to the output of your svm classifier (e.g., red for class A, blue for class B). This is quick to do and you will see if there is anything to visualize. However, data with a high dimensionality are not likely to be easily visualizable in 2D.

    0 讨论(0)
提交回复
热议问题