How to write simple predict() function for ClassificationSVM

1 view (last 30 days)
I have trained ClassificationSVM. What is the simplest way to write function working like predict( SVMModel , X ) ? I would be gratefull for equation containing properties names from ClassificationSVM class.
Thanks !

Answers (1)

Iddo Weiner
Iddo Weiner on 2 Dec 2016
First you'd have to select features, check out:
https://www.mathworks.com/discovery/feature-selection.html
for info and/or ideas on how to do this.
You'll also need to decide what kind of model you're using, for the standard multi-linear regression check out the documentation on regress()
https://www.mathworks.com/help/stats/regress.html?s_tid=srchtitle
Now - if you really want the simplest model, I'd say you could skip feature selection and just run:
regress(labels, features)
and this will give you the regressor for each feature. Now your model is simply
prediction = A1*feature1 + ... + AN*featurenN
But I would generally advise against this, mainly becasue of the danger of overfitting. I suggest building a train and test based algorithm
  3 Comments
ramayya venna
ramayya venna on 23 Jan 2017
Edited: ramayya venna on 23 Jan 2017
Did you get the answer? I also have the same doubt. In my case, I am using polynomial kernel (hence beta is an empty matrix). How can I write simple predict function to test new data sample?
Aditi Vedalankar
Aditi Vedalankar on 10 Sep 2018
dear all, I have similar doubt . I have trained model generated by classification learner model. now when i use it for predicting the test data, the error appears as Function 'subsindex' is not defined for values of class 'cell'.
Error in trainClassifier (line 48) predictors = inputTable(:, predictorNames);
Error in Test_svm1 (line 7) [trainedClassifier, validationAccuracy] = trainClassifier(trainingData); pl help

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!