필터 지우기
필터 지우기

Low performance when training SVM model using "polynomial" kernel function

조회 수: 16 (최근 30일)
Hello,
I am trying to compare the performance of SVM regression (or SVR) between "rbf", "polynomial", and "linear".
The training works well when using "rbf" and "linear" (e.g., 0.7~0.8 of R^2).
However, when "polynomial" function was applied as kernel function, the performance degraded to 0.001 of R^2 or negative.
I used the code:
Mdl = fitrsvm(X,Y,"Standardize",'true','KernelFunction','polynomial','OptimizeHyperparameters',{'BoxConstraint','Epsilon','KernelScale','PolynomialOrder'},'HyperparameterOptimizationOptions',struct('MaxObjectiveEvaluations',100))
Please help
Thank you.

채택된 답변

Angelo Yeo
Angelo Yeo 2024년 6월 15일
As @Ganesh has answered, using "kernel" itself doesn't guarantee high performance. Improving model performance is a complicated topic and there are many approaches you can take. Here, I want to recommend you use Regression Learner app.
  • You can easily train multiple regression models including SVMs with different options.
  • You can optimize hyperparameters of the models. Choosing proper hyperparameters is highly important in Machine Learning research.
  • You can easily select features. This is an important step to boost the model performance.
  • You can export a model to the workspace to use the model with new data or generate MATLAB® code to learn about programmatic regression.

추가 답변 (1개)

Ganesh
Ganesh 2024년 6월 14일
The accuracy you achieve with a Kernal Function would depend on the data distribution. Adding your data might help us give you a better idea over the reason.
You could try out the following example in MATLAB:
Initially, run the example and see the number of iterations, and you can try changing the "Kernal Function" to "polynomial" and running the model. You will find that the number of iterations it takes to converge is now 20 times!
When your data is two or three columns it's easier to visualize the same, but as your dimensions grow, it gets harder to plot and visualize your findings.

Community Treasure Hunt

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

Start Hunting!

Translated by