Effacer les filtres
Effacer les filtres

Alternative way to use fitcsvm for code generation

2 vues (au cours des 30 derniers jours)
Keshav
Keshav le 5 Mar 2024
Commenté : Keshav le 7 Mar 2024
how to use alternate syntax if fitcsvm is not supported for code generation
  2 commentaires
Manikanta Aditya
Manikanta Aditya le 5 Mar 2024
Hey,
The 'fitcsvm' function in MATLAB is used for training a support vector machine (SVM) for binary classification. However, if 'fitcsvm' is not supported for code generation, you can use the lower-level functions that fitcsvm uses internally.
Here’s an example of how you can do this:
% Assume X is your N-by-P matrix of predictors, and Y is your N-by-1 vector of responses
X = 10; % your predictor matrix
Y = 20; % your response vector
% Convert the responses to +1 and -1 for the SVM
Y(Y == 0) = -1;
% Set up the SVM problem
H = 0.5 * (X' * X);
f = -Y;
A = -diag(Y) * X;
b = -ones(size(Y));
lb = zeros(size(X, 2), 1);
% Solve the SVM problem using quadprog
alpha = quadprog(H, f, A, b, [], [], lb);
Minimum found that satisfies the constraints. Optimization completed because the objective function is non-decreasing in feasible directions, to within the value of the optimality tolerance, and constraints are satisfied to within the value of the constraint tolerance.
% Compute the bias term
bias = mean(Y - X * (X' * alpha));
% Now you can classify new data using sign(Xnew * (X' * alpha) + bias)
This code does essentially the same thing as fitcsvm, but uses 'quadprog' to solve the SVM problem directly.
Thanks!
Keshav
Keshav le 7 Mar 2024
Thanks, Manikanta!

Connectez-vous pour commenter.

Réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by