How to Plot Decision Boundary for SVM

조회 수: 24 (최근 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