matlab code for rotational svm

3 次查看(过去 30 天)
alex
alex 2019-2-3
编辑: alex 2019-2-9
  • 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 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by