SVM classification with different kernels
5 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
I am using an SVM (SVM_train, Bioinformatics toolbox) to classify data, and I would like to have my final trained SVM models with different kernel functions. I didn't understand how to specify my own kernel maps: if I would like to use a Cauchy kernel defined as
k=(1/(1+(|u-v|^2/sigma))
where u,v are the vectors of the X data, and sigma is the parameter defined by the user (sigma=2.5). How I have to edit this matlab statement?
svmStruct = svmtrain(X,group,'Kernel_Function', 'rbf','RBF_Sigma', 2.5, 'Method', 'QP');
Thank you!
1 comentario
Jeremy Huard
el 31 de En. de 2023
Users using R2014b or newer should use the fitcsvm function for for one-class and binary classification or fitcecoc for multiclass classification instead.
There you can specify a custom kernel function by adding the 'KernelFunction','myfunction' name-value pair, where myfunction is the name of your function containing the kernel function definition.
Respuestas (4)
caterina
el 28 de Dic. de 2012
2 comentarios
Ilya
el 28 de Dic. de 2012
Replace
kval = 1/(1+dot);
with
kval = 1./(1+dot);
./ is for elementwise division. / is for matrix division.
Also, please do not post follow-up questions as answers to your own posts. Use comments for that.
Fourth Sem Geethanjali Electrical and Electronics Engineering
el 7 de Dic. de 2020
hi
svmStruct = svmtrain(x,group,'Kernel_Function', @(u,v) kfun(u,v,p1), 'Method', 'QP');
how will the function call change if i use fitcsvm instead of svmtrain.
can you please help me.
Sandy
el 3 de Oct. de 2014
Hi Caterina,
Just want to check whether you are able to rectify tha above issues. I am also getting the same error. Will you post me the code for above custom kernel.
Thanks in advance.
0 comentarios
muqdad aljuboori
el 2 de Abr. de 2017
Hi I very interested in this discussion I tried to apply the new funcion in my project but it doesnt work that what i did
SVR1 = fitrsvm(TrainInputs,TrainTargets,...
'KernelFunction', @(u,v) kfun3(u,v) ,...
'KernelScale','auto','Standardize',true);__
and the error is
Error using classreg.learning.modelparams.SVMParams.make (line 225) You must pass 'KernelFunction' as a character vector.
Error in classreg.learning.FitTemplate/fillIfNeeded (line 598) this.MakeModelParams(this.Type,this.MakeModelInputArgs{:});
Error in classreg.learning.FitTemplate.make (line 124) temp = fillIfNeeded(temp,type);
any suggestion ??? thanks
1 comentario
Jeremy Huard
el 31 de En. de 2023
You should specify the kernel function as char array:
SVR1 = fitrsvm(TrainInputs,TrainTargets,...
'KernelFunction', 'kfun3',...
'KernelScale','auto','Standardize',true);
Ver también
Categorías
Más información sobre Classification Ensembles en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!