matlab code for rotational svm

3 Ansichten (letzte 30 Tage)
alex
alex am 3 Feb. 2019
Bearbeitet: alex am 9 Feb. 2019
  • Hello. This is the code that I wrote for Rotsvm (rotational svm), but when I test it on my data set with 5 classes, the value of sensivity for each class is computed [ 0;0;1;0;0]. I do not know how to fix this problem. can any one help me plz? I attached my dataset.
clc;clear;close;
label_data=load('ST7112J0_41_fea.mat');
label_data=label_data.fea_mat;
roro=size(label_data,1);
idx1=crossvalind('kfold',roro,10);
test10 = label_data(idx1==2,:);
train90 = label_data(idx1~=2,:);
function [stats0,labelsss0,predicted_label0]=Rotsvm(train90,test10);%total input data
train90 = [1:42;train90];
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
idx2=(crossvalind('kfold',41,6))';
train_one=train90(:,2:end);
f1=train_one(:,idx2==1);
f2=train_one(:,idx2==2);
f3=train_one(:,idx2==3);
f4=train_one(:,idx2==4);
f5=train_one(:,idx2==5);
f6=train_one(:,idx2==6);
f1=[train90(:,1) f1];
f2=[train90(:,1) f2];
f3=[train90(:,1) f3];
f4=[train90(:,1) f4];
f5=[train90(:,1) f5];
f6=[train90(:,1) f6];%ham label ham soton num asli
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
idx3=crossvalind('kfold',size(train90,1)-1,4);
ff1=f1(2:end,:);
ff2=f2(2:end,:);
ff3=f3(2:end,:);
ff4=f4(2:end,:);
ff5=f5(2:end,:);
ff6=f6(2:end,:);%just label
sub1=ff1(idx3~=1,:);
sub2=ff2(idx3~=1,:);
sub3=ff3(idx3~=1,:);
sub4=ff4(idx3~=1,:);
sub5=ff5(idx3~=1,:);
sub6=ff6(idx3~=1,:);%just label
pca_f1=pca(sub1(:,2:end),size(sub1,2)-1);
pca_f2=pca(sub2(:,2:end),size(sub2,2)-1);
pca_f3=pca(sub3(:,2:end),size(sub3,2)-1);
pca_f4=pca(sub4(:,2:end),size(sub4,2)-1);
pca_f5=pca(sub5(:,2:end),size(sub5,2)-1);
pca_f6=pca(sub6(:,2:end),size(sub6,2)-1);
outt0=blkdiag(pca_f1,pca_f2,pca_f3,pca_f4,pca_f5,pca_f6);
origi0=train90(2:end,2:end);
reordering=[f1(1,2:end) f2(1,2:end) f3(1,2:end) f4(1,2:end) f5(1,2:end) f6(1,2:end)];
storing=zeros(size(outt0,1),41);
for j=1:41;
gi=reordering(j);
storing(:,gi-1)=outt0(:,gi-1);
end
new_features0=origi0*(storing');
TestSet0=test10(:,2:end);
labelsss0=test10(:,1);
TrainingSet0=new_features0;
GroupTrain0=train90(2:end,1);
model0 = svmtrain(GroupTrain0, TrainingSet0, 's 0 t 1');
[predicted_label0] = svmpredict(labelsss0, TestSet0, model0);
stats0 = confusionmatStats(labelsss0,predicted_label0);
end

Antworten (0)

Kategorien

Mehr zu MATLAB finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by