Визуализация SVM в MATLAB - PullRequest
       47

Визуализация SVM в MATLAB

8 голосов
/ 16 апреля 2010

Как мне визуализировать классификацию SVM после выполнения обучения SVM в Matlab?

До сих пор я тренировался только с SVM:

% Labels are -1 or 1
groundTruth = Ytrain;
d = xtrain;

model = svmtrain(groundTruth, d);

Ответы [ 4 ]

7 голосов
/ 03 февраля 2011

Если вы используете LIBSVM, вы можете построить результаты классификации:

% 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');
2 голосов
/ 04 февраля 2011

Предполагая, что ваши данные имеют более двух измерений, вы можете выполнить PCA, проецировать данные в 2D, а затем назначить им цвет в соответствии с выводом вашего классификатора SVM (например, красный для класса A, синий для класса B) , Это быстро сделать, и вы увидите, есть ли что-нибудь для визуализации. Однако данные с высокой размерностью вряд ли будут легко визуализироваться в 2D.

0 голосов
/ 31 октября 2014
model = svmtrain(groundTruth, d, 'ShowPlot', true);
0 голосов
/ 16 апреля 2010

Проверьте эту svm-toy функцию, аналогичную функции в LIBSVM.Очевидно, что это работает только для 2D бинарной классификации

...