How to Plot Decision Boundary for SVM

22 次查看(过去 30 天)
Kamyar Mazarei
Kamyar Mazarei 2021-10-13
编辑: Meet 2024-11-12,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)

回答(1 个)

Meet
Meet 2024-11-12,9:16
编辑:Meet 2024-11-12,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:

类别

Help CenterFile Exchange 中查找有关 Statistics and Machine Learning Toolbox 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by