필터 지우기
필터 지우기

matlab code for rotational svm

조회 수: 1 (최근 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에서 Classification에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by