Skip to content

Commit 5efc9c7

Browse files
committed
Revert "fucked up everthing, reverting back"
This reverts commit 3aa9a44.
1 parent 3aa9a44 commit 5efc9c7

File tree

4 files changed

+232
-59
lines changed

4 files changed

+232
-59
lines changed

classifiers/bayes_plugin/plugin_classify.m

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,13 @@
1313
% yhat: list of estimated class identity for each graph
1414

1515
siz = size(As);
16-
if length(siz)==3
17-
s = siz(end); % # of samples (robust to As being an arbitrary array)
18-
else
19-
s = 1;
20-
end
16+
s = siz(end); % # of samples (robust to As being an arbitrary array)
2117
poiss = any(As(:))>1; % whether data is Poisson or Bernoulli
2218
n_subs = length(subspace);
2319
yhat = nan(s,n_subs);
2420

2521
for i=1:s
26-
datum = As(:,:,i); % this line only makes sense when data are graphs
22+
datum = As(:,:,i); % this line only makes sense when data are graphs
2723
for j=1:n_subs
2824
ind = subspace(j).indices; % for code legibility
2925

meta/classify_par.m

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -14,27 +14,25 @@
1414
% xval: xval structure after changing it
1515

1616
%% ensure that xval fields are set
17-
% if ~isfield(xval,'s0_trn'),
18-
% disp(['s0 = ' num2str(constants.s0)])
19-
% xval.s0_trn = input('\s0_trn [positive integer]: ');
20-
% end
21-
% if ~isfield(xval,'s1_trn'),
22-
% disp(['s1 = ' num2str(constants.s1)])
23-
% xval.s1_trn = input('\s1_trn [positive integer]: ');
24-
% end
25-
26-
% if num_iters is not specified, do leave-one-out cross-validation
17+
if ~isfield(xval,'s0_trn'),
18+
disp(['s0 = ' num2str(constants.s0)])
19+
xval.s0_trn = input('\s0_trn [positive integer]: ');
20+
end
21+
if ~isfield(xval,'s1_trn'),
22+
disp(['s1 = ' num2str(constants.s1)])
23+
xval.s1_trn = input('\s1_trn [positive integer]: ');
24+
end
2725
if ~isfield(xval,'num_iters'),
28-
xval.num_iters = constants.s; %choose(constants.s0,xval.s0_trn)*choose(constants.s1,xval.s1_trn);
26+
xval.num_iters = choose(constants.s0,xval.s0_trn)*choose(constants.s1,xval.s1_trn);
2927
end
3028

3129

3230

3331
%% run classifiers
3432
Lstats_tmp(1:xval.num_iters)=struct('avg',nan,'sem',nan);
35-
for i=1:xval.num_iters
33+
parfor i=1:xval.num_iters
3634
if mod(i,100)==0, disp(['repeat # ' num2str(i)]), end
37-
[Atrn Gtrn Atst Gtst inds] = crossvalprep3(As,constants,xval,i); % seperate data into training and testing sets
35+
[Atrn Gtrn Atst Gtst inds] = crossvalprep2(As,constants,xval,i); % seperate data into training and testing sets
3836

3937
% naive_bayes classifiers
4038
if ~isempty(subspace)

plots/plot_means_sig.m

Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,219 @@
1+
clear, clc
2+
3+
4+
alg.save=1;
5+
alg.figdir = '/Users/jovo/Research/figs/MRI/BLSA/';
6+
alg.fname = 'BLSA50';
7+
8+
9+
%% plot model and significance
10+
clc
11+
figure(1), clf,
12+
fs=10;
13+
14+
load('/Users/jovo/Research/data/MRI/BLSA/results/edge_significance.mat')
15+
16+
17+
alg.save=1;
18+
alg.figdir = '/Users/jovo/Research/figs/MRI/BLSA/';
19+
alg.fname = 'BLSA50';
20+
21+
22+
params = get_params_mle(As,constants);
23+
24+
emax=max(max([params.E0(:) params.E1(:) abs(params.E0(:)-params.E1(:))]));
25+
26+
subplot(131)
27+
image(64*params.E0/emax)
28+
colormap('gray')
29+
title('female','fontsize',fs)
30+
xlabel('vertices','fontsize',fs)
31+
ylabel('vertices','fontsize',fs)
32+
set(gca,'fontsize',fs,'DataAspectRatio',[1 1 1])
33+
34+
subplot(132)
35+
image(64*params.E1/emax)
36+
title('male','fontsize',fs)
37+
set(gca,'fontsize',fs)
38+
set(gca,'fontsize',fs,'DataAspectRatio',[1 1 1])
39+
40+
subplot(133)
41+
imagesc(1-d_pval)
42+
title('significance of difference','fontsize',fs)
43+
set(gca,'fontsize',fs)
44+
set(gca,'fontsize',fs,'DataAspectRatio',[1 1 1])
45+
46+
47+
48+
if alg.save
49+
wh=[6 3]; %width and height
50+
set(gcf,'PaperSize',wh,'PaperPosition',[0 0 wh],'Color','w');
51+
figname=[alg.figdir alg.fname '_params'];
52+
print('-dpdf',figname)
53+
print('-deps',figname)
54+
saveas(gcf,figname)
55+
end
56+
57+
%% plot Lhat vs signal subgraph size
58+
59+
clear, clc
60+
load('/Users/jovo/Research/data/MRI/BLSA/results/BLSA50_Lhat_200_subspaces.mat')
61+
alg.save=1;
62+
plot_Lhat_vs_signal_subgraph_size
63+
64+
%% make table of m most significant edges
65+
66+
clear, clc,
67+
load('/Users/jovo/Research/data/MRI/BLSA/results/edge_significance.mat')
68+
69+
[foo IX] = sort(d_pval(:));
70+
71+
[I J] = ind2sub([70 70],IX);
72+
73+
CorticalLabels = importdata('/Users/jovo/Research/data/MRI/BLSA/misc/IACL-corticallabeldescriptions-1110.txt',' ');
74+
75+
76+
clc
77+
78+
clear orderedregions
79+
m=find(foo<0.999999999999, 1, 'last' );
80+
for i=1:m
81+
82+
if I(i)<36, ii=I(i)+2; else ii=I(i)+3; end
83+
if J(i)<36, jj=J(i)+2; else jj=J(i)+3; end
84+
85+
if ii<11, ii_start=7; elseif ii<39, ii_start=8; else ii_start=9; end
86+
if jj<11, jj_start=7; elseif jj<39, jj_start=8; else jj_start=9; end
87+
88+
maxlen=19;
89+
label1=CorticalLabels{ii}(ii_start:end-1);
90+
if length(label1)>maxlen, label1=label1(1:maxlen); end
91+
label2=CorticalLabels{jj}(jj_start:end-1);
92+
if length(label2)>maxlen, label2=label2(1:maxlen); end
93+
94+
orderedregions{i,1}=foo(i);
95+
orderedregions{i,2}=label1;
96+
orderedregions{i,3}=label2;
97+
98+
end
99+
100+
%% remove good edges
101+
102+
clear, clc,
103+
load('/Users/jovo/Research/data/MRI/BLSA/results/edge_significance.mat')
104+
105+
alg.save=0;
106+
alg.num_repeats=100;
107+
alg.s0_trn=15;
108+
alg.s1_trn=15;
109+
[pvals ind]=sort(d_pval(:),'ascend');
110+
111+
k=0;
112+
for m=1:500
113+
k=k+1;
114+
subspace.manual=ind(m:end);
115+
[Lhat Lsem] = classify_holdout(As,constants,alg,subspace);
116+
117+
Lhats.manual(k)=mean(Lhat.manual);
118+
Lsems.manual(k)=std(Lsem.manual)/sqrt(alg.num_repeats);
119+
end
120+
121+
122+
% alg.num_repeats=1000;
123+
% subspace.manual=ind(50:end)
124+
% [LhatX LsemX] = classify_holdout(As,constants,alg,subspace);
125+
% mean(LhatX.manual)
126+
127+
128+
alg.save=0;
129+
alg.figdir = '/Users/jovo/Research/figs/MRI/BLSA/';
130+
% alg.postdir = '/Users/jovo/Research/data/MRI/BLSA/results/';
131+
alg.fname = 'BLSA50';
132+
if alg.save
133+
wh=[6 3]; %width and height
134+
set(gcf,'PaperSize',wh,'PaperPosition',[0 0 wh],'Color','w');
135+
figname=[alg.figdir alg.fname '_removed_subspace'];
136+
print('-dpdf',figname)
137+
print('-deps',figname)
138+
saveas(gcf,figname)
139+
end
140+
141+
142+
%% Lhat vs. m
143+
144+
clear, clc
145+
load('/Users/jovo/Research/data/MRI/BLSA/results/edge_significance.mat')
146+
147+
148+
alg.save=1;
149+
alg.num_repeats=100;
150+
alg.s0_trn=18;
151+
alg.s1_trn=18;
152+
alg.postdir='/Users/jovo/Research/data/MRI/BLSA/results/';
153+
alg.fname='Lhat_v_m';
154+
155+
naive_bayes=find(sum(As,3)>0);
156+
157+
158+
[foo fis_ind]=sort(d_pval(:),'ascend');
159+
160+
params = get_params_mle(As,constants);
161+
162+
[foo inc_ind]=sort(params.d_pos(:),'ascend');
163+
[foo cor_ind]=sort(params.d_opt(:),'ascend');
164+
165+
166+
subspace.fis=[];
167+
subspace.inc=[];
168+
subspace.cor=[];
169+
170+
subspace_names = fieldnames(subspace);
171+
n_subspaces=length(subspace_names);
172+
173+
for m=1:length(naive_bayes)
174+
175+
disp(m)
176+
subspace.fis=fis_ind(1:m);
177+
subspace.inc=inc_ind(1:m);
178+
subspace.cor=cor_ind(1:m);
179+
[Lhat Lsem] = classify_holdout(As,constants,alg,subspace);
180+
181+
for k=1:n_subspaces
182+
Lhats.(subspace_names{k})(m)=mean(Lhat.(subspace_names{k}));
183+
Lsems.(subspace_names{k})(m)=std(Lsem.(subspace_names{k}))/sqrt(alg.num_repeats);
184+
end
185+
186+
end
187+
188+
189+
%%
190+
deg=sum(d_pval)+sum(d_pval');
191+
[foo deg_ind] = sort(deg,'ascend');
192+
193+
clear subspace Lhat Lsem
194+
for m=5:length(deg_ind)
195+
196+
disp(m)
197+
198+
ind_max_mat=zeros(70);
199+
ind_max_mat(deg_ind(1:m),deg_ind(1:m))=1;
200+
ind_max_mat=triu(ind_max_mat,+1);
201+
subspace.coh=find(ind_max_mat);
202+
203+
[Lhat Lsem] = classify_holdout(As,constants,alg,subspace);
204+
205+
Lhats.coh(m)=mean(Lhat.coh);
206+
Lsems.coh(m)=std(Lsem.coh)/sqrt(alg.num_repeats);
207+
208+
end
209+
210+
211+
212+
213+
214+
215+
216+
217+
218+
219+

test_scripts/test_crossvalprep3.m

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)