-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAnalysis_Ceff.m
More file actions
82 lines (72 loc) · 2.05 KB
/
Analysis_Ceff.m
File metadata and controls
82 lines (72 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
clear all;
load model_vortex_partition_rest_vs_task.mat;
NSUB=989;
NP=100;
gbc_ceff_rest_sub=mean(Ceff_rest_sub,3);
gbc_ceff_social_sub=mean(Ceff_social_sub,3);
nn=1;
for i=1:NP
a=gbc_ceff_rest_sub(:,i)';
b=gbc_ceff_social_sub(:,i)';
pp(nn)=ranksum(a,b);
nn=nn+1;
end
nsig=FDR_benjHoch(pp,0.05);
%%% Classification
NTRAIN=900;
kfold=1000;
cl=1:2;
pc=zeros(2,2);
for nfold=1:kfold
shuffling=randperm(NSUB);
TrainData1=[];
for sub=shuffling(1:NTRAIN)
TS=gbc_ceff_rest_sub(sub,nsig);
TrainData1=vertcat(TrainData1,TS);
end
XValidation1=[];
for sub=shuffling(NTRAIN+1:end)
TS=gbc_ceff_rest_sub(sub,nsig);
XValidation1=vertcat(XValidation1,TS);
end
Responses1=categorical(ones(size(TrainData1,1),1),cl);
YValidation1=categorical(ones(size(XValidation1,1),1),cl);
TrainData2=[];
for sub=shuffling(1:NTRAIN)
TS=gbc_ceff_social_sub(sub,nsig);
TrainData2=vertcat(TrainData2,TS);
end
XValidation2=[];
for sub=shuffling(NTRAIN+1:end)
TS=gbc_ceff_social_sub(sub,nsig);
XValidation2=vertcat(XValidation2,TS);
end
Responses2=categorical(2*ones(size(TrainData2,1),1),cl);
YValidation2=categorical(2*ones(size(XValidation2,1),1),cl);
TrainData=vertcat(TrainData1,TrainData2);
XValidation=vertcat(XValidation1,XValidation2);
Responses=vertcat(Responses1,Responses2);
YValidation=vertcat(YValidation1,YValidation2);
t = templateSVM('KernelFunction','rbf');
svmmodel=fitcecoc(TrainData,Responses,'Learners',t);
% compute
valno1=size(XValidation1,1);
con=zeros(2,2);
test1=predict(svmmodel,XValidation1);
for i=1:valno1
winclass=test1(i);
con(1,winclass)=con(1,winclass)+1;
end
valno2=size(XValidation2,1);
test2=predict(svmmodel,XValidation2);
for i=1:valno2
winclass=test2(i);
con(2,winclass)=con(2,winclass)+1;
end
con(1,:)=con(1,:)/valno1;
con(2,:)=con(2,:)/valno2;
accdist(nfold)=sum(diag(con))/2;
pc=pc+con;
end
pc=pc/kfold
acc=sum(diag(pc))/2