How to Plot Decision Boundary for SVM

22 views (last 30 days)
Kamyar Mazarei
Kamyar Mazarei on 13 Oct 2021
Edited: Meet on 12 Nov 2024 at 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)

Answers (1)

Meet
Meet on 12 Nov 2024 at 9:16
Edited: Meet on 12 Nov 2024 at 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:

Categories

Find more on Statistics and Machine Learning Toolbox in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!