Как использовать biplot() в Matlab
Я новичок в Matlab и не знаю синтаксис достаточно хорошо, чтобы выполнить эту задачу.
У меня есть набор данных, и я разделил его на данные обучения и тестирования, как показано ниже:
X = csvread('mydata.csv');
flag = X(:,1);
label = X(:,2);
P = X(:,3:end);
train = X(flag < 5,:);
test = X(flag == 5,:);
Теперь для "метки", которая является вторым столбцом набора данных X, есть три разных значения: 0, 8, 9. Я хочу различать три класса (0, 8, 9) с другим символом графика и цвет.
Мои исследования позволяют мне полагать, что biplot() является правильным инструментом в MATLAB для этого, но я не уверен, как какую функцию вызывать или как манипулировать различными параметрами в biplot(), чтобы помочь мне в этом.
Ниже то, что я получил так далеко:
Zeros = label(label == 0);
Eights = label(label == 8);
Nines = label(label == 9);
[coeff,score,latent] = pca(train);
plot (scores(Zeros), scores(Eights),scores(Nines),'.r','markersize', 20);
hold on
plot (scores(~Zeros), scores(~Eights),scores(~Nines),'^b', 'markersize', 7);
Subscript indices must either be real positive integers or logicals.
% Error in myPCA (line 24)
% plot (scores(Zeros), scores(Eights),scores(Nines),'.r','markersize', 20);
biplot(coeff(:,1:2),'scores',score(:,1:2));
% This works fine, but all of the data points are all red.
Спасибо!