Effacer les filtres
Effacer les filtres

How to draw hyperplane using 'fitcsvm'

8 vues (au cours des 30 derniers jours)
Takashi KOSHIMIZU
Takashi KOSHIMIZU le 9 Fév 2019
以下が fitcsvmのサンプルコードですが、最後のPlotの中に、2つのカテゴリを分類するhyperplane を描きたいのですが、
ご存知の方、方法をご教授願えませんでしょうか。宜しくご確認お願い致します。
https://jp.mathworks.com/help/stats/fitcsvm.html
-----------------------------------------
load fisheriris
inds = ~strcmp(species,'setosa');
X = meas(inds,3:4);
y = species(inds);
SVMModel = fitcsvm(X,y);
sv = SVMModel.SupportVectors;
figure
gscatter(X(:,1),X(:,2),y)
hold on
plot(sv(:,1),sv(:,2),'ko','MarkerSize',10)
legend('versicolor','virginica','Support Vector')
hold off

Réponse acceptée

Yosuke Matsuki
Yosuke Matsuki le 10 Fév 2019
最終行 hold off の1行前に、下記コードを追加することでhyperplaneを描画可能です。
等高線(contour)として描画する方法になります。dは等高線のメッシュサイズです。
d = 0.02;
[x1Grid,x2Grid] = meshgrid(min(X(:,1)):d:max(X(:,1)),...
min(X(:,2)):d:max(X(:,2)));
xGrid = [x1Grid(:),x2Grid(:)];
[~,scores] = predict(SVMModel,xGrid);
contour(x1Grid,x2Grid,reshape(scores(:,2),size(x1Grid)),[0 0],'k');
上記コードは下記のページを参考にしました。
以上

Plus de réponses (1)

Takashi KOSHIMIZU
Takashi KOSHIMIZU le 10 Fév 2019
投稿有難うございました。
無事、上手く動作致しました。本件誠に有難うございます。パラメータを操作して、もう少し理解を深めてみます。

Catégories

En savoir plus sur MATLAB 入門 dans Help Center et File Exchange

Produits


Version

R2016b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!