How to Plot Decision Boundary for SVM

22 visualizaciones (últimos 30 días)
Kamyar Mazarei
Kamyar Mazarei el 13 de Oct. de 2021
Editada: Meet el 12 de Nov. de 2024 a las 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)

Respuestas (1)

Meet
Meet el 12 de Nov. de 2024 a las 9:16
Editada: Meet el 12 de Nov. de 2024 a las 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:

Categorías

Más información sobre Statistics and Machine Learning Toolbox en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by