フィルターのクリア

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 Center および File ExchangeClassification についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by