why am I getting error when I detect dataset with SVM?
Mostrar comentarios más antiguos
actually i have problem with method support vector machine (SVM), i didn't detect my dataset in the program.
here is the error:
Error using svmtrain (line 230)
svmtrain has been removed. Use fitcsvm instead.
Error in multisvm (line 28)
svmStruct = svmtrain(T,newClass);
Error in Detect (line 144)
result = multisvm(Train_Feat,Train_Label,test);
here is the code:
% Load All The Features
load('Training_Data.mat')
% Put the test features into variable 'test'
test = feat_disease;
result = multisvm(Train_Feat,Train_Label,test);
%disp(result);
% Visualize Results
if result == 0
helpdlg(' Alternaria Alternata ');
disp(' Alternaria Alternata ');
elseif result == 1
helpdlg(' Anthracnose ');
disp('Anthracnose');
elseif result == 2
helpdlg(' Bacterial Blight ');
disp(' Bacterial Blight ');
elseif result == 3
helpdlg(' Cercospora Leaf Spot ');
disp('Cercospora Leaf Spot');
elseif result == 4
helpdlg(' Healthy Leaf ');
disp('Healthy Leaf ');
end
%% Evaluate Accuracy
load('Accuracy_Data.mat')
Accuracy_Percent= zeros(200,1);
for i = 1:500
data = Train_Feat;
%groups = ismember(Train_Label,1);
groups = ismember(Train_Label,0);
[train,test] = crossvalind('HoldOut',groups);
cp = classperf(groups);
svmStruct = svmtrain(data(train,:),groups(train),'showplot',false,'kernel_function','linear');
classes = svmclassify(svmStruct,data(test,:),'showplot',false);
classperf(cp,classes,test);
Accuracy = cp.CorrectRate;
Accuracy_Percent(i) = Accuracy.*100;
end
Max_Accuracy = max(Accuracy_Percent);
sprintf('Accuracy of Linear Kernel with 500 iterations is: %g%%',Max_Accuracy)
Respuesta aceptada
Más respuestas (3)
fawad khan
el 15 de Jul. de 2019
0 votos
same error here how you solve this error.
2 comentarios
Walter Roberson
el 16 de Jul. de 2019
You can run in R2017b. Or you can take the time to rewrite to use the new routines.
Anggita Puspawardani
el 4 de Jun. de 2020
Editada: Anggita Puspawardani
el 4 de Jun. de 2020
Lutfia Nuzula
el 24 de Mzo. de 2020
0 votos
some problem, but i was run in 2018b. how to solve the error?
4 comentarios
Walter Roberson
el 25 de Mzo. de 2020
You can run in R2017b. Or you can take the time to rewrite to use the new routines.
Anggita Puspawardani
el 4 de Jun. de 2020
Ashwini Patil
el 31 de Ag. de 2020
Editada: Ashwini Patil
el 31 de Ag. de 2020
But not properly classify the plant disease ,wrong disease display in window ,plz can i get the right code for proper classify result .
Anggita Puspawardani
el 12 de Oct. de 2020
Editada: Anggita Puspawardani
el 12 de Oct. de 2020
jasmine bala
el 30 de Mzo. de 2021
0 votos
how to solve the error in matlab 2018?
Group =fitcsvm(svmstruct1.Test_Set_tmp)
1 comentario
Walter Roberson
el 30 de Mzo. de 2021
Code that used svmstruct is almost always written for the earlier SVM functions that MATLAB does not provide any more. Those functions used numeric arrays, and did not permit table objects.
The newer fitcsvm does not accept being passed just a single parameter: it needs one of
- table and name of response variable
- table and "formula" of which variables are related
- numeric data as first parameter, and information about the labels in the second parameter (not necessarily numeric)
Categorías
Más información sobre Food Sciences en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!