Добрый день, ребята. Я изучаю SVM и пытаюсь завершить упражнение на openclassroom.stanford.edu.

Мой вопрос: что такое код Octave / Matlab для построения следующим образом введите описание изображения здесь

Если у меня есть набор 2D-точек

{(x_11, x_12), (x_21, x_22), ..., (x_i1, x_i2)},

И соответствующий набор меток

{1, -1, ..., -1},

Каков код для построения этих данных в 2D-формате, как на этом рисунке?

Я хотел бы, чтобы (x_i1, x_i2) соответствовал 1 (или -1, как угодно).

Большое спасибо :)

0
Jiang 27 Фев 2015 в 06:44

2 ответа

Лучший ответ

Скажем, у вас есть вектор x-координат X и y-координат Y, а также индикаторный вектор k из единиц и -1, вы можете сделать

plot(X(k>0),Y(k>0),'b',X(k<0),Y(k<0),'g')

Который использует логическое индексирование для выделения элементов с k=1 и k=-1 по отдельности, или использует scatter и использует вектор k для раскрашивания точек. Я установил для colormap синюю (k=-1) и зеленую (k=1) точки.

colormap([0 0 1;0 1 0])
scatter(X,Y,[],k,'filled')

Использование plot: (честно говоря, вы также можете изменить маркеры на закрашенные точки) введите описание изображения здесь

И scatter: введите описание изображения здесь

1
David 27 Фев 2015 в 04:35

Вот мое решение, которое работает ...

X = [2 2;3 4;0.5 4;3 6;5 7;7 8;6 8]
y = [0;0;0;0;1;1;1]
plot(X(y>0,1), X(y>0,2), 'rs','MarkerFaceColor', 'r', 'MarkerSize', 27, X(y==0,1), X(y==0,2),'go', 'MarkerFaceColor', 'g', 'MarkerSize', 27)
axis([0 10 0 10])

Результат:

enter image description here

0
Jean-Pierre Schnyder 28 Апр 2019 в 16:48