How can one fuzzify a Support Vector Regression (SVR) model?
5 views (last 30 days)
Show older comments
Dear all,
I have a SVR model. I want to fuzzify it. I mean I want to fuzzify this model and change it to a 'Fuzzy SVR' system. Could anyone help me how I can do it?
Many Thanks,
0 Comments
Answers (1)
Sam Chak
on 24 Apr 2025
If the data from the Support Vector Regression (SVR) model is available, it is possible to train an Adaptive Neuro-Fuzzy Inference System (ANFIS) model.
%% SVR data
x = linspace(-1, 1, 2001)';
y = asinh(50*x);
mdl = fitrsvm(x, y, 'Standardize', true, 'KernelFunction', 'gaussian', 'KernelScale', 'auto');
yfit= predict(mdl, x);
figure
plot(x, yfit), grid on
xlabel('Input'), ylabel('Output'), title('Data from SVR')
%% create initial FIS
genOpt = genfisOptions('GridPartition');
genOpt.NumMembershipFunctions = 4;
genOpt.InputMembershipFunctionType = 'gauss2mf';
genOpt.OutputMembershipFunctionType = 'constant';
inFIS = genfis(x, yfit, genOpt);
%% train ANFIS
opt = anfisOptions('InitialFIS', inFIS, 'EpochNumber', 50);
opt.DisplayANFISInformation = 0;
opt.DisplayErrorValues = 0;
opt.DisplayStepSize = 0;
opt.DisplayFinalResults = 0;
outFIS = anfis([x yfit],opt);
figure
plotrule(outFIS)
%% plot result
figure
plot(x, [yfit, evalfis(outFIS, x)]), grid on
xlabel('Input'), ylabel('Output'),
title('Compare SVR Data with Trained ANFIS Output')
legend('SVR Data', 'Trained ANFIS Output', 'location', 'southeast')
0 Comments
See Also
Categories
Find more on Fuzzy Logic Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

