matlab code for rotational svm
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
- 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
0 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Classification 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!