How to Plot Decision Boundary for SVM

22 visualizzazioni (ultimi 30 giorni)
Kamyar Mazarei
Kamyar Mazarei il 13 Ott 2021
Modificato: Meet il 12 Nov 2024 alle 9:16
Hi,
after i make my model using 'fitcsvm' and predict the test data, id like to know the boundary and plot it
i cant find anything inside the model variable (1x1 ClassificationSVM) but i cant find anything thats like points so i can plot the line
heres the code i use if needed:
model=fitcsvm(trainD',trainL','Standardize',1);
trainD is 2x200 (100 for each class and 2 features)
ALSO
for some reason i dont understand, using linear svm gives me 100% accuracy while non lienar gives me about 75% (test data is too little 12 sample each)

Risposte (1)

Meet
Meet il 12 Nov 2024 alle 9:16
Modificato: Meet il 12 Nov 2024 alle 9:16
Hi Kamyar,
To plot a decision boundary using an SVM model, you can follow these steps:
  1. Obtain the linear coefficients (Beta) and the bias (Bias) from the SVM model using 'model.Beta' and 'model.Bias'.
  2. Use the equation from the "fitcsvm" documentation to plot the decision boundary.
  3. Determine the margin width and plot lines parallel to the decision boundary to visualize the margins.
  4. Display the data points, support vectors, decision boundary, and margins on a plot.
Regarding model accuracy, the difference between linear and non-linear SVM models arises because linear SVMs perform well on linearly separable data. In contrast, non-linear models can capture more complex patterns but might overfit, especially with small datasets.
Please refer to the below documentation link for an example to fit decision boundary of SVM:

Categorie

Scopri di più su Statistics and Machine Learning Toolbox in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by