|
a |
|
b/gleason_classifier.m |
|
|
1 |
function gleason_classifer |
|
|
2 |
addpath /Volumes/Hydra/Analyses/SD_Recurrence/roi_tile_output/ |
|
|
3 |
|
|
|
4 |
%% Load and partition data |
|
|
5 |
load feature_tbl.mat |
|
|
6 |
load feature_tbl2.mat |
|
|
7 |
%% |
|
|
8 |
% train/test = unbalanced data |
|
|
9 |
% train2 = balanaced |
|
|
10 |
% train_hln/test_hln = train2 split into high, low, normal (semi-balanced lol) |
|
|
11 |
% train_ng/test_ng = train2 split into normal vs all other grades |
|
|
12 |
|
|
|
13 |
training = []; % training subject labels |
|
|
14 |
testing = []; % testing subject labels |
|
|
15 |
|
|
|
16 |
% Z-score first |
|
|
17 |
train = []; |
|
|
18 |
for i = 1:numel(training) |
|
|
19 |
trainingIdx = find(tbl.Subject == training(i)); |
|
|
20 |
train = cat(1,train,tbl(trainingIdx,[1,2,7:end])); |
|
|
21 |
end |
|
|
22 |
train2 = train; |
|
|
23 |
for i = 1:40 |
|
|
24 |
train2{:,i+2} = zscore(train{:,i+2}); |
|
|
25 |
end |
|
|
26 |
|
|
|
27 |
|
|
|
28 |
test = []; |
|
|
29 |
for i = 1:numel(testing) |
|
|
30 |
testingIdx = find(tbl.Subject == testing(i)); |
|
|
31 |
test = cat(1,test,tbl(testingIdx,[1,2,7:end])); |
|
|
32 |
end |
|
|
33 |
test2 = test; |
|
|
34 |
for i = 1:24 |
|
|
35 |
ave = mean(train{:,i+2}); |
|
|
36 |
stdev = std(train{:,i+2},'omitnan'); |
|
|
37 |
|
|
|
38 |
for j = 1:height(test2) |
|
|
39 |
test2{j,i+2} = (test2{j,i+2} - ave)/stdev; |
|
|
40 |
end |
|
|
41 |
end |
|
|
42 |
|
|
|
43 |
|
|
|
44 |
% Z-score first |
|
|
45 |
trainingIdx = find(tbl.Category == "Training"); |
|
|
46 |
train = tbl(trainingIdx,[2,7:end-2]); |
|
|
47 |
train2 = train; |
|
|
48 |
for i = 1:40 |
|
|
49 |
train2{:,i+1} = zscore(train{:,i+1}); |
|
|
50 |
end |
|
|
51 |
|
|
|
52 |
testingIdx = find(tbl.Category == "Testing"); |
|
|
53 |
test = tbl(testingIdx,[2,7:end-2]); |
|
|
54 |
|
|
|
55 |
test2 = test; |
|
|
56 |
for i = 1:24 |
|
|
57 |
ave = mean(train{:,i+1}); |
|
|
58 |
stdev = std(train{:,i+1},'omitnan'); |
|
|
59 |
|
|
|
60 |
for j = 1:height(test2) |
|
|
61 |
test2{j,i+1} = (test2{j,i+1} - ave)/stdev; |
|
|
62 |
end |
|
|
63 |
end |
|
|
64 |
|
|
|
65 |
% Z-score whole mounts used for demonstrations |
|
|
66 |
load feature_tbl_2235.mat |
|
|
67 |
load feature_tbl_2181.mat |
|
|
68 |
load feature_tbl_1163.mat |
|
|
69 |
|
|
|
70 |
for i = 1:24 |
|
|
71 |
ave = mean(train{:,i+2}); |
|
|
72 |
stdev = std(train{:,i+2},'omitnan'); |
|
|
73 |
|
|
|
74 |
for j = 1:height(feature_tbl_2235) |
|
|
75 |
feature_tbl_2235{j,i+7} = (feature_tbl_2235{j,i+7} - ave)/stdev; |
|
|
76 |
end |
|
|
77 |
end |
|
|
78 |
|
|
|
79 |
for i = 1:24 |
|
|
80 |
ave = mean(train{:,i+2}); |
|
|
81 |
stdev = std(train{:,i+2},'omitnan'); |
|
|
82 |
|
|
|
83 |
for j = 1:height(feature_tbl_2181) |
|
|
84 |
feature_tbl_2181{j,i+7} = (feature_tbl_2181{j,i+7} - ave)/stdev; |
|
|
85 |
end |
|
|
86 |
end |
|
|
87 |
|
|
|
88 |
for i = 1:24 |
|
|
89 |
ave = mean(train{:,i+2}); |
|
|
90 |
stdev = std(train{:,i+2},'omitnan'); |
|
|
91 |
|
|
|
92 |
for j = 1:height(feature_tbl_1163) |
|
|
93 |
feature_tbl_1163{j,i+5} = (feature_tbl_1163{j,i+5} - ave)/stdev; |
|
|
94 |
end |
|
|
95 |
end |
|
|
96 |
|
|
|
97 |
%% H/L/N |
|
|
98 |
train_hln = train2; |
|
|
99 |
loc = find(train_hln.Anot_Class == 'Atrophy' | train_hln.Anot_Class == 'HGPIN' ... |
|
|
100 |
| train_hln.Anot_Class == 'Seminal_Vesicles' | train_hln.Anot_Class == 'Tissue'); |
|
|
101 |
train_hln.Anot_Class(loc) = 'Normal'; |
|
|
102 |
|
|
|
103 |
loc = find(train_hln.Anot_Class == 'G3'); |
|
|
104 |
train_hln.Anot_Class(loc) = 'Low'; |
|
|
105 |
|
|
|
106 |
loc = find(train_hln.Anot_Class == 'G4FG' | train_hln.Anot_Class == 'G4CG' | train_hln.Anot_Class == 'G5'); |
|
|
107 |
train_hln.Anot_Class(loc) = 'High'; |
|
|
108 |
% |
|
|
109 |
test_hln = test2; |
|
|
110 |
loc = find(test_hln.Anot_Class == 'Atrophy' | test_hln.Anot_Class == 'HGPIN' ... |
|
|
111 |
| test_hln.Anot_Class == 'Seminal_Vesicles' | test_hln.Anot_Class == 'Tissue'); |
|
|
112 |
test_hln.Anot_Class(loc) = 'Normal'; |
|
|
113 |
|
|
|
114 |
loc = find(test_hln.Anot_Class == 'G3'); |
|
|
115 |
test_hln.Anot_Class(loc) = 'Low'; |
|
|
116 |
|
|
|
117 |
loc = find(test_hln.Anot_Class == 'G4FG' | test_hln.Anot_Class == 'G4CG' | test_hln.Anot_Class == 'G5'); |
|
|
118 |
test_hln.Anot_Class(loc) = 'High'; |
|
|
119 |
% |
|
|
120 |
loc = find(feature_tbl_2235.Anot_Class == 'Atrophy' | feature_tbl_2235.Anot_Class == 'HGPIN' ... |
|
|
121 |
| feature_tbl_2235.Anot_Class == 'Seminal_Vesicles' | feature_tbl_2235.Anot_Class == 'Tissue'); |
|
|
122 |
feature_tbl_2235.Anot_Class(loc) = 'Normal'; |
|
|
123 |
|
|
|
124 |
loc = find(feature_tbl_2235.Anot_Class == 'G3'); |
|
|
125 |
feature_tbl_2235.Anot_Class(loc) = 'Low'; |
|
|
126 |
|
|
|
127 |
loc = find(feature_tbl_2235.Anot_Class == 'G4FG' | feature_tbl_2235.Anot_Class == 'G4CG' | feature_tbl_2235.Anot_Class == 'G5'); |
|
|
128 |
feature_tbl_2235.Anot_Class(loc) = 'High'; |
|
|
129 |
% |
|
|
130 |
loc = find(feature_tbl_2181.Anot_Class == 'Atrophy' | feature_tbl_2181.Anot_Class == 'HGPIN' ... |
|
|
131 |
| feature_tbl_2181.Anot_Class == 'Seminal_Vesicles' | feature_tbl_2181.Anot_Class == 'Tissue'); |
|
|
132 |
feature_tbl_2181.Anot_Class(loc) = 'Normal'; |
|
|
133 |
|
|
|
134 |
loc = find(feature_tbl_2181.Anot_Class == 'G3'); |
|
|
135 |
feature_tbl_2181.Anot_Class(loc) = 'Low'; |
|
|
136 |
|
|
|
137 |
loc = find(feature_tbl_2181.Anot_Class == 'G4FG' | feature_tbl_2181.Anot_Class == 'G4CG' | feature_tbl_2181.Anot_Class == 'G5'); |
|
|
138 |
feature_tbl_2181.Anot_Class(loc) = 'High'; |
|
|
139 |
% |
|
|
140 |
loc = find(feature_tbl_1163.Anot_Class == 'Atrophy' | feature_tbl_1163.Anot_Class == 'HGPIN' ... |
|
|
141 |
| feature_tbl_1163.Anot_Class == 'Seminal_Vesicles' | feature_tbl_1163.Anot_Class == 'Tissue'); |
|
|
142 |
feature_tbl_1163.Anot_Class(loc) = 'Normal'; |
|
|
143 |
|
|
|
144 |
loc = find(feature_tbl_1163.Anot_Class == 'G3'); |
|
|
145 |
feature_tbl_1163.Anot_Class(loc) = 'Low'; |
|
|
146 |
|
|
|
147 |
loc = find(feature_tbl_1163.Anot_Class == 'G4FG' | feature_tbl_1163.Anot_Class == 'G4CG' | feature_tbl_1163.Anot_Class == 'G5'); |
|
|
148 |
feature_tbl_1163.Anot_Class(loc) = 'High'; |
|
|
149 |
|
|
|
150 |
mdl_hln_nb = fitcnb(train_hln(:,2:25),train_hln.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
151 |
mdl_hln_knn = fitcknn(train_hln(:,2:25),train_hln.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
152 |
mdl_hln_tree = fitctree(train_hln(:,2:25),train_hln.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
153 |
mdl_hln_ecoc = fitcecoc(train_hln(:,2:25),train_hln.Anot_Class,'OptimizeHyperparameters','auto'); % |
|
|
154 |
mdl_hln_ensemble = fitcensemble(train_hln(:,2:25),train_hln.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
155 |
mdl_hln_net = fitcnet(train_hln(:,2:25),train_hln.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
156 |
|
|
|
157 |
%% N/G |
|
|
158 |
train_ng = train2; |
|
|
159 |
loc = find(train_ng.Anot_Class == 'Atrophy' | train_ng.Anot_Class == 'HGPIN' ... |
|
|
160 |
| train_ng.Anot_Class == 'Seminal_Vesicles' | train_ng.Anot_Class == 'Tissue'); |
|
|
161 |
train_ng.Anot_Class(loc) = 'Normal'; |
|
|
162 |
% |
|
|
163 |
test_ng = test2; |
|
|
164 |
loc = find(test_ng.Anot_Class == 'Atrophy' | test_ng.Anot_Class == 'HGPIN' ... |
|
|
165 |
| test_ng.Anot_Class == 'Seminal_Vesicles' | test_ng.Anot_Class == 'Tissue'); |
|
|
166 |
test_ng.Anot_Class(loc) = 'Normal'; |
|
|
167 |
% |
|
|
168 |
loc = find(feature_tbl_2235.Anot_Class == 'Atrophy' | feature_tbl_2235.Anot_Class == 'HGPIN' ... |
|
|
169 |
| feature_tbl_2235.Anot_Class == 'Seminal_Vesicles' | feature_tbl_2235.Anot_Class == 'Tissue'); |
|
|
170 |
feature_tbl_2235.Anot_Class(loc) = 'Normal'; |
|
|
171 |
% |
|
|
172 |
loc = find(feature_tbl_2181.Anot_Class == 'Atrophy' | feature_tbl_2181.Anot_Class == 'HGPIN' ... |
|
|
173 |
| feature_tbl_2181.Anot_Class == 'Seminal_Vesicles' | feature_tbl_2181.Anot_Class == 'Tissue'); |
|
|
174 |
feature_tbl_2181.Anot_Class(loc) = 'Normal'; |
|
|
175 |
% |
|
|
176 |
loc = find(feature_tbl_1163.Anot_Class == 'Atrophy' | feature_tbl_1163.Anot_Class == 'HGPIN' ... |
|
|
177 |
| feature_tbl_1163.Anot_Class == 'Seminal_Vesicles' | feature_tbl_1163.Anot_Class == 'Tissue'); |
|
|
178 |
feature_tbl_1163.Anot_Class(loc) = 'Normal'; |
|
|
179 |
|
|
|
180 |
mdl_ng_nb = fitcnb(train_ng(:,2:25),train_ng.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
181 |
mdl_ng_knn = fitcknn(train_ng(:,2:25),train_ng.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
182 |
mdl_ng_tree = fitctree(train_ng(:,2:25),train_ng.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
183 |
mdl_ng_ecoc = fitcecoc(train_ng(:,2:25),train_ng.Anot_Class,'OptimizeHyperparameters','auto'); |
|
|
184 |
mdl_ng_ensemble = fitcensemble(train_ng(:,2:25),train_ng.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
185 |
mdl_ng_net = fitcnet(train_ng(:,2:25),train_ng.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
186 |
|
|
|
187 |
|
|
|
188 |
|
|
|
189 |
%% Cancer v Noncancer |
|
|
190 |
train_nc = train2; |
|
|
191 |
loc = find(train_nc.Anot_Class == 'Atrophy' | train_nc.Anot_Class == 'HGPIN' ... |
|
|
192 |
| train_nc.Anot_Class == 'Seminal_Vesicles' | train_nc.Anot_Class == 'Tissue'); |
|
|
193 |
train_nc.Anot_Class(loc) = 'Normal'; |
|
|
194 |
|
|
|
195 |
loc = find(train2.Anot_Class == 'G3' | train2.Anot_Class == 'G4FG' ... |
|
|
196 |
| train2.Anot_Class == 'G4CG' | train2.Anot_Class == 'G5'); |
|
|
197 |
train_nc.Anot_Class(loc) = 'Cancer'; |
|
|
198 |
% |
|
|
199 |
test_nc = test2; |
|
|
200 |
loc = find(test_nc.Anot_Class == 'Atrophy' | test_nc.Anot_Class == 'HGPIN' ... |
|
|
201 |
| test_nc.Anot_Class == 'Seminal_Vesicles' | test_nc.Anot_Class == 'Tissue'); |
|
|
202 |
test_nc.Anot_Class(loc) = 'Normal'; |
|
|
203 |
|
|
|
204 |
loc = find(test2.Anot_Class == 'G3' | test2.Anot_Class == 'G4FG' ... |
|
|
205 |
| test2.Anot_Class == 'G4CG' | test2.Anot_Class == 'G5'); |
|
|
206 |
test_nc.Anot_Class(loc) = 'Cancer'; |
|
|
207 |
% |
|
|
208 |
loc = find(feature_tbl_2235.Anot_Class == 'Atrophy' | feature_tbl_2235.Anot_Class == 'HGPIN' ... |
|
|
209 |
| feature_tbl_2235.Anot_Class == 'Seminal_Vesicles' | feature_tbl_2235.Anot_Class == 'Tissue'); |
|
|
210 |
feature_tbl_2235.Anot_Class(loc) = 'Normal'; |
|
|
211 |
|
|
|
212 |
loc = find(feature_tbl_2235.Anot_Class == 'G3' | feature_tbl_2235.Anot_Class == 'G4FG' ... |
|
|
213 |
| feature_tbl_2235.Anot_Class == 'G4CG' | feature_tbl_2235.Anot_Class == 'G5'); |
|
|
214 |
feature_tbl_2235.Anot_Class(loc) = 'Cancer'; |
|
|
215 |
% |
|
|
216 |
loc = find(feature_tbl_2181.Anot_Class == 'Atrophy' | feature_tbl_2181.Anot_Class == 'HGPIN' ... |
|
|
217 |
| feature_tbl_2181.Anot_Class == 'Seminal_Vesicles' | feature_tbl_2181.Anot_Class == 'Tissue'); |
|
|
218 |
feature_tbl_2181.Anot_Class(loc) = 'Normal'; |
|
|
219 |
|
|
|
220 |
loc = find(feature_tbl_2181.Anot_Class == 'G3' | feature_tbl_2181.Anot_Class == 'G4FG' ... |
|
|
221 |
| feature_tbl_2181.Anot_Class == 'G4CG' | feature_tbl_2181.Anot_Class == 'G5'); |
|
|
222 |
feature_tbl_2181.Anot_Class(loc) = 'Cancer'; |
|
|
223 |
% |
|
|
224 |
loc = find(feature_tbl_1163.Anot_Class == 'Atrophy' | feature_tbl_1163.Anot_Class == 'HGPIN' ... |
|
|
225 |
| feature_tbl_1163.Anot_Class == 'Seminal_Vesicles' | feature_tbl_1163.Anot_Class == 'Tissue'); |
|
|
226 |
feature_tbl_1163.Anot_Class(loc) = 'Normal'; |
|
|
227 |
|
|
|
228 |
loc = find(feature_tbl_1163.Anot_Class == 'G3' | feature_tbl_1163.Anot_Class == 'G4FG' ... |
|
|
229 |
| feature_tbl_1163.Anot_Class == 'G4CG' | feature_tbl_1163.Anot_Class == 'G5'); |
|
|
230 |
feature_tbl_1163.Anot_Class(loc) = 'Cancer'; |
|
|
231 |
|
|
|
232 |
mdl_nc_nb = fitcnb(train_nc(:,2:25),train_nc.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
233 |
mdl_nc_knn = fitcknn(train_nc(:,2:25),train_nc.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
234 |
mdl_nc_tree = fitctree(train_nc(:,2:25),train_nc.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
235 |
mdl_nc_ecoc = fitcecoc(train_nc(:,2:25),train_nc.Anot_Class,'OptimizeHyperparameters','auto'); |
|
|
236 |
mdl_nc_ensemble = fitcensemble(train_nc(:,2:25),train_nc.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
237 |
mdl_nc_net = fitcnet(train_nc(:,2:25),train_nc.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
238 |
|
|
|
239 |
%% All Gleason |
|
|
240 |
mdl_nb = fitcnb(train2(:,2:25),train2.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
241 |
mdl_knn = fitcknn(train2(:,2:25),train2.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
242 |
mdl_tree = fitctree(train2(:,2:25),train2.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
243 |
mdl_ecoc = fitcecoc(train2(:,2:25),train2.Anot_Class,'OptimizeHyperparameters','auto'); |
|
|
244 |
mdl_ensemble = fitcensemble(train2(:,2:25),train2.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
245 |
mdl_net = fitcnet(train2(:,2:25),train2.Anot_Class,'OptimizeHyperparameters','all'); |
|
|
246 |
|
|
|
247 |
%% Check Model Performance |
|
|
248 |
mdl_nb_pred = predict(mdl_nb, test2(:,2:25)); |
|
|
249 |
mdl_knn_pred = predict(mdl_knn, test2(:,2:25)); |
|
|
250 |
mdl_tree_pred = predict(mdl_tree, test2(:,2:25)); |
|
|
251 |
mdl_ecoc_pred = predict(mdl_ecoc, test2(:,2:25)); |
|
|
252 |
mdl_ensemble_pred = predict(mdl_ensemble, test2(:,2:25)); |
|
|
253 |
mdl_net_pred = predict(mdl_net, test2(:,2:25)); |
|
|
254 |
|
|
|
255 |
mdl_hln_nb_pred = predict(mdl_hln_nb, test_hln(:,2:25)); |
|
|
256 |
mdl_hln_knn_pred = predict(mdl_hln_knn, test_hln(:,2:25)); |
|
|
257 |
mdl_hln_tree_pred = predict(mdl_hln_tree, test_hln(:,2:25)); |
|
|
258 |
mdl_hln_ecoc_pred = predict(mdl_hln_ecoc, test_hln(:,2:25)); |
|
|
259 |
mdl_hln_ensemble_pred = predict(mdl_hln_ensemble, test_hln(:,2:25)); |
|
|
260 |
mdl_hln_net_pred = predict(mdl_hln_net, test_hln(:,2:25)); |
|
|
261 |
|
|
|
262 |
mdl_nc_nb_pred = predict(mdl_nc_nb, test_nc(:,2:25)); |
|
|
263 |
mdl_nc_knn_pred = predict(mdl_nc_knn, test_nc(:,2:25)); |
|
|
264 |
mdl_nc_tree_pred = predict(mdl_nc_tree, test_nc(:,2:25)); |
|
|
265 |
mdl_nc_ecoc_pred = predict(mdl_nc_ecoc, test_nc(:,2:25)); |
|
|
266 |
mdl_nc_ensemble_pred = predict(mdl_nc_ensemble, test_nc(:,2:25)); |
|
|
267 |
mdl_nc_net_pred = predict(mdl_nc_net, test_nc(:,2:25)); |
|
|
268 |
|
|
|
269 |
mdl_ng_nb_pred = predict(mdl_ng_nb, test_ng(:,2:25)); |
|
|
270 |
mdl_ng_knn_pred = predict(mdl_ng_knn, test_ng(:,2:25)); |
|
|
271 |
mdl_ng_tree_pred = predict(mdl_ng_tree, test_ng(:,2:25)); |
|
|
272 |
mdl_ng_ecoc_pred = predict(mdl_ng_ecoc, test_ng(:,2:25)); |
|
|
273 |
mdl_ng_ensemble_pred = predict(mdl_ng_ensemble, test_ng(:,2:25)); |
|
|
274 |
mdl_ng_net_pred = predict(mdl_ng_net, test_ng(:,2:25)); |
|
|
275 |
% |
|
|
276 |
tbl_mdl_nb = calculate_error(test2.Anot_Class,mdl_nb_pred); |
|
|
277 |
tbl_mdl_knn = calculate_error(test2.Anot_Class,mdl_knn_pred); |
|
|
278 |
tbl_mdl_tree = calculate_error(test2.Anot_Class,mdl_tree_pred); |
|
|
279 |
tbl_mdl_ecoc = calculate_error(test2.Anot_Class,mdl_ecoc_pred); |
|
|
280 |
tbl_mdl_ensemble = calculate_error(test2.Anot_Class,mdl_ensemble_pred); |
|
|
281 |
tbl_mdl_net = calculate_error(test2.Anot_Class,mdl_net_pred); |
|
|
282 |
|
|
|
283 |
tbl_mdl_hln_nb = calculate_error(test_hln.Anot_Class,mdl_hln_nb_pred); |
|
|
284 |
tbl_mdl_hln_knn = calculate_error(test_hln.Anot_Class,mdl_hln_knn_pred); |
|
|
285 |
tbl_mdl_hln_tree = calculate_error(test_hln.Anot_Class,mdl_hln_tree_pred); |
|
|
286 |
tbl_mdl_hln_ecoc = calculate_error(test_hln.Anot_Class,mdl_hln_ecoc_pred); |
|
|
287 |
tbl_mdl_hln_ensemble = calculate_error(test_hln.Anot_Class,mdl_hln_ensemble_pred); |
|
|
288 |
tbl_mdl_hln_net = calculate_error(test_hln.Anot_Class,mdl_hln_net_pred); |
|
|
289 |
|
|
|
290 |
tbl_mdl_nc_nb = calculate_error(test_nc.Anot_Class,mdl_nc_nb_pred); |
|
|
291 |
tbl_mdl_nc_knn = calculate_error(test_nc.Anot_Class,mdl_nc_knn_pred); |
|
|
292 |
tbl_mdl_nc_tree = calculate_error(test_nc.Anot_Class,mdl_nc_tree_pred); |
|
|
293 |
tbl_mdl_nc_ecoc = calculate_error(test_nc.Anot_Class,mdl_nc_ecoc_pred); |
|
|
294 |
tbl_mdl_nc_ensemble = calculate_error(test_nc.Anot_Class,mdl_nc_ensemble_pred); |
|
|
295 |
tbl_mdl_nc_net = calculate_error(test_nc.Anot_Class,mdl_nc_net_pred); |
|
|
296 |
|
|
|
297 |
tbl_mdl_ng_nb = calculate_error(test_ng.Anot_Class,mdl_nc_nb_pred); |
|
|
298 |
tbl_mdl_ng_knn = calculate_error(test_ng.Anot_Class,mdl_nc_knn_pred); |
|
|
299 |
tbl_mdl_ng_tree = calculate_error(test_ng.Anot_Class,mdl_nc_tree_pred); |
|
|
300 |
tbl_mdl_ng_ecoc = calculate_error(test_ng.Anot_Class,mdl_nc_ecoc_pred); |
|
|
301 |
tbl_mdl_ng_ensemble = calculate_error(test_ng.Anot_Class,mdl_nc_ensemble_pred); |
|
|
302 |
tbl_mdl_ng_net = calculate_error(test_ng.Anot_Class,mdl_nc_net_pred); |
|
|
303 |
% |
|
|
304 |
prec_mdl_nb = sum(tbl_mdl_nb.TP) / (sum(tbl_mdl_nb.TP) + sum(tbl_mdl_nb.FP)); |
|
|
305 |
prec_mdl_knn = sum(tbl_mdl_knn.TP) / (sum(tbl_mdl_knn.TP) + sum(tbl_mdl_knn.FP)); |
|
|
306 |
prec_mdl_tree = sum(tbl_mdl_tree.TP) / (sum(tbl_mdl_tree.TP) + sum(tbl_mdl_tree.FP)); |
|
|
307 |
prec_mdl_ecoc = sum(tbl_mdl_ecoc.TP) / (sum(tbl_mdl_ecoc.TP) + sum(tbl_mdl_ecoc.FP)); |
|
|
308 |
prec_mdl_ensemble = sum(tbl_mdl_ensemble.TP) / (sum(tbl_mdl_ensemble.TP) + sum(tbl_mdl_ensemble.FP)); |
|
|
309 |
prec_mdl_net = sum(tbl_mdl_net.TP) / (sum(tbl_mdl_net.TP) + sum(tbl_mdl_net.FP)); |
|
|
310 |
|
|
|
311 |
prec_mdl_hln_nb = sum(tbl_mdl_hln_nb.TP) / (sum(tbl_mdl_hln_nb.TP) + sum(tbl_mdl_hln_nb.FP)); |
|
|
312 |
prec_mdl_hln_knn = sum(tbl_mdl_hln_knn.TP) / (sum(tbl_mdl_hln_knn.TP) + sum(tbl_mdl_hln_knn.FP)); |
|
|
313 |
prec_mdl_hln_tree = sum(tbl_mdl_hln_tree.TP) / (sum(tbl_mdl_hln_tree.TP) + sum(tbl_mdl_hln_tree.FP)); |
|
|
314 |
prec_mdl_hln_ecoc = sum(tbl_mdl_hln_ecoc.TP) / (sum(tbl_mdl_hln_ecoc.TP) + sum(tbl_mdl_hln_ecoc.FP)); |
|
|
315 |
prec_mdl_hln_ensemble = sum(tbl_mdl_hln_ensemble.TP) / (sum(tbl_mdl_hln_ensemble.TP) + sum(tbl_mdl_hln_ensemble.FP)); |
|
|
316 |
prec_mdl_hln_net = sum(tbl_mdl_hln_net.TP) / (sum(tbl_mdl_hln_net.TP) + sum(tbl_mdl_hln_net.FP)); |
|
|
317 |
|
|
|
318 |
prec_mdl_nc_nb = sum(tbl_mdl_nc_nb.TP) / (sum(tbl_mdl_nc_nb.TP) + sum(tbl_mdl_nc_nb.FP)); |
|
|
319 |
prec_mdl_nc_knn = sum(tbl_mdl_nc_knn.TP) / (sum(tbl_mdl_nc_knn.TP) + sum(tbl_mdl_nc_knn.FP)); |
|
|
320 |
prec_mdl_nc_tree = sum(tbl_mdl_nc_tree.TP) / (sum(tbl_mdl_nc_tree.TP) + sum(tbl_mdl_nc_tree.FP)); |
|
|
321 |
prec_mdl_nc_ecoc = sum(tbl_mdl_nc_ecoc.TP) / (sum(tbl_mdl_nc_ecoc.TP) + sum(tbl_mdl_nc_ecoc.FP)); |
|
|
322 |
prec_mdl_nc_ensemble = sum(tbl_mdl_nc_ensemble.TP) / (sum(tbl_mdl_nc_ensemble.TP) + sum(tbl_mdl_nc_ensemble.FP)); |
|
|
323 |
prec_mdl_nc_net = sum(tbl_mdl_nc_net.TP) / (sum(tbl_mdl_nc_net.TP) + sum(tbl_mdl_nc_net.FP)); |
|
|
324 |
|
|
|
325 |
prec_mdl_ng_nb = sum(tbl_mdl_ng_nb.TP) / (sum(tbl_mdl_ng_nb.TP) + sum(tbl_mdl_ng_nb.FP)); |
|
|
326 |
prec_mdl_ng_knn = sum(tbl_mdl_ng_knn.TP) / (sum(tbl_mdl_ng_knn.TP) + sum(tbl_mdl_ng_knn.FP)); |
|
|
327 |
prec_mdl_ng_tree = sum(tbl_mdl_ng_tree.TP) / (sum(tbl_mdl_ng_tree.TP) + sum(tbl_mdl_ng_tree.FP)); |
|
|
328 |
prec_mdl_ng_ecoc = sum(tbl_mdl_ng_ecoc.TP) / (sum(tbl_mdl_ng_ecoc.TP) + sum(tbl_mdl_ng_ecoc.FP)); |
|
|
329 |
prec_mdl_ng_ensemble = sum(tbl_mdl_ng_ensemble.TP) / (sum(tbl_mdl_ng_ensemble.TP) + sum(tbl_mdl_ng_ensemble.FP)); |
|
|
330 |
prec_mdl_ng_net = sum(tbl_mdl_ng_net.TP) / (sum(tbl_mdl_ng_net.TP) + sum(tbl_mdl_ng_net.FP)); |
|
|
331 |
% |
|
|
332 |
rec_mdl_nb = sum(tbl_mdl_nb.TP) / (sum(tbl_mdl_nb.TP) + sum(tbl_mdl_nb.FN)); |
|
|
333 |
rec_mdl_knn = sum(tbl_mdl_knn.TP) / (sum(tbl_mdl_knn.TP) + sum(tbl_mdl_knn.FN)); |
|
|
334 |
rec_mdl_tree = sum(tbl_mdl_tree.TP) / (sum(tbl_mdl_tree.TP) + sum(tbl_mdl_tree.FN)); |
|
|
335 |
rec_mdl_ecoc = sum(tbl_mdl_ecoc.TP) / (sum(tbl_mdl_ecoc.TP) + sum(tbl_mdl_ecoc.FN)); |
|
|
336 |
rec_mdl_ensemble = sum(tbl_mdl_ensemble.TP) / (sum(tbl_mdl_ensemble.TP) + sum(tbl_mdl_ensemble.FN)); |
|
|
337 |
rec_mdl_net = sum(tbl_mdl_net.TP) / (sum(tbl_mdl_net.TP) + sum(tbl_mdl_net.FN)); |
|
|
338 |
|
|
|
339 |
rec_mdl_hln_nb = sum(tbl_mdl_hln_nb.TP) / (sum(tbl_mdl_hln_nb.TP) + sum(tbl_mdl_hln_nb.FN)); |
|
|
340 |
rec_mdl_hln_knn = sum(tbl_mdl_hln_knn.TP) / (sum(tbl_mdl_hln_knn.TP) + sum(tbl_mdl_hln_knn.FN)); |
|
|
341 |
rec_mdl_hln_tree = sum(tbl_mdl_hln_tree.TP) / (sum(tbl_mdl_hln_tree.TP) + sum(tbl_mdl_hln_tree.FN)); |
|
|
342 |
rec_mdl_hln_ecoc = sum(tbl_mdl_hln_ecoc.TP) / (sum(tbl_mdl_hln_ecoc.TP) + sum(tbl_mdl_hln_ecoc.FN)); |
|
|
343 |
rec_mdl_hln_ensemble = sum(tbl_mdl_hln_ensemble.TP) / (sum(tbl_mdl_hln_ensemble.TP) + sum(tbl_mdl_hln_ensemble.FN)); |
|
|
344 |
rec_mdl_hln_net = sum(tbl_mdl_hln_net.TP) / (sum(tbl_mdl_hln_net.TP) + sum(tbl_mdl_hln_net.FN)); |
|
|
345 |
|
|
|
346 |
rec_mdl_nc_nb = sum(tbl_mdl_nc_nb.TP) / (sum(tbl_mdl_nc_nb.TP) + sum(tbl_mdl_nc_nb.FN)); |
|
|
347 |
rec_mdl_nc_knn = sum(tbl_mdl_nc_knn.TP) / (sum(tbl_mdl_nc_knn.TP) + sum(tbl_mdl_nc_knn.FN)); |
|
|
348 |
rec_mdl_nc_tree = sum(tbl_mdl_nc_tree.TP) / (sum(tbl_mdl_nc_tree.TP) + sum(tbl_mdl_nc_tree.FN)); |
|
|
349 |
rec_mdl_nc_ecoc = sum(tbl_mdl_nc_ecoc.TP) / (sum(tbl_mdl_nc_ecoc.TP) + sum(tbl_mdl_nc_ecoc.FN)); |
|
|
350 |
rec_mdl_nc_ensemble = sum(tbl_mdl_nc_ensemble.TP) / (sum(tbl_mdl_nc_ensemble.TP) + sum(tbl_mdl_nc_ensemble.FN)); |
|
|
351 |
rec_mdl_nc_net = sum(tbl_mdl_nc_net.TP) / (sum(tbl_mdl_nc_net.TP) + sum(tbl_mdl_nc_net.FN)); |
|
|
352 |
|
|
|
353 |
rec_mdl_ng_nb = sum(tbl_mdl_ng_nb.TP) / (sum(tbl_mdl_ng_nb.TP) + sum(tbl_mdl_ng_nb.FN)); |
|
|
354 |
rec_mdl_ng_knn = sum(tbl_mdl_ng_knn.TP) / (sum(tbl_mdl_ng_knn.TP) + sum(tbl_mdl_ng_knn.FN)); |
|
|
355 |
rec_mdl_ng_tree = sum(tbl_mdl_ng_tree.TP) / (sum(tbl_mdl_ng_tree.TP) + sum(tbl_mdl_ng_tree.FN)); |
|
|
356 |
rec_mdl_ng_ecoc = sum(tbl_mdl_ng_ecoc.TP) / (sum(tbl_mdl_ng_ecoc.TP) + sum(tbl_mdl_ng_ecoc.FN)); |
|
|
357 |
rec_mdl_ng_ensemble = sum(tbl_mdl_ng_ensemble.TP) / (sum(tbl_mdl_ng_ensemble.TP) + sum(tbl_mdl_ng_ensemble.FN)); |
|
|
358 |
rec_mdl_ng_net = sum(tbl_mdl_ng_net.TP) / (sum(tbl_mdl_ng_net.TP) + sum(tbl_mdl_ng_net.FN)); |
|
|
359 |
% |
|
|
360 |
F_mdl_nb = 2*(prec_mdl_nb * rec_mdl_nb) / (prec_mdl_nb + rec_mdl_nb); |
|
|
361 |
F_mdl_knn = 2*(prec_mdl_knn * rec_mdl_knn) / (prec_mdl_knn + rec_mdl_knn); |
|
|
362 |
F_mdl_tree = 2*(prec_mdl_tree * rec_mdl_tree) / (prec_mdl_tree + rec_mdl_tree); |
|
|
363 |
F_mdl_ecoc = 2*(prec_mdl_ecoc * rec_mdl_ecoc) / (prec_mdl_ecoc + rec_mdl_ecoc); |
|
|
364 |
F_mdl_ensemble = 2*(prec_mdl_ensemble * rec_mdl_ensemble) / (prec_mdl_ensemble + rec_mdl_ensemble); |
|
|
365 |
F_mdl_net = 2*(prec_mdl_net * rec_mdl_net) / (prec_mdl_net + rec_mdl_net); |
|
|
366 |
|
|
|
367 |
F_mdl_hln_nb = 2*(prec_mdl_hln_nb * rec_mdl_hln_nb) / (prec_mdl_hln_nb + rec_mdl_hln_nb); |
|
|
368 |
F_mdl_hln_knn = 2*(prec_mdl_hln_knn * rec_mdl_hln_knn) / (prec_mdl_hln_knn + rec_mdl_hln_knn); |
|
|
369 |
F_mdl_hln_tree = 2*(prec_mdl_hln_tree * rec_mdl_hln_tree) / (prec_mdl_hln_tree + rec_mdl_hln_tree); |
|
|
370 |
F_mdl_hln_ecoc = 2*(prec_mdl_hln_ecoc * rec_mdl_hln_ecoc) / (prec_mdl_hln_ecoc + rec_mdl_hln_ecoc); |
|
|
371 |
F_mdl_hln_ensemble = 2*(prec_mdl_hln_ensemble * rec_mdl_hln_ensemble) / (prec_mdl_hln_ensemble + rec_mdl_hln_ensemble); |
|
|
372 |
F_mdl_hln_net = 2*(prec_mdl_hln_net * rec_mdl_hln_net) / (prec_mdl_hln_net + rec_mdl_hln_net); |
|
|
373 |
|
|
|
374 |
F_mdl_nc_nb = 2*(prec_mdl_nc_nb * rec_mdl_nc_nb) / (prec_mdl_nc_nb + rec_mdl_nc_nb); |
|
|
375 |
F_mdl_nc_knn = 2*(prec_mdl_nc_knn * rec_mdl_nc_knn) / (prec_mdl_nc_knn + rec_mdl_nc_knn); |
|
|
376 |
F_mdl_nc_tree = 2*(prec_mdl_nc_tree * rec_mdl_nc_tree) / (prec_mdl_nc_tree + rec_mdl_nc_tree); |
|
|
377 |
F_mdl_nc_ecoc = 2*(prec_mdl_nc_ecoc * rec_mdl_nc_ecoc) / (prec_mdl_nc_ecoc + rec_mdl_nc_ecoc); |
|
|
378 |
F_mdl_nc_ensemble = 2*(prec_mdl_nc_ensemble * rec_mdl_nc_ensemble) / (prec_mdl_nc_ensemble + rec_mdl_nc_ensemble); |
|
|
379 |
F_mdl_nc_net = 2*(prec_mdl_nc_net * rec_mdl_nc_net) / (prec_mdl_nc_net + rec_mdl_nc_net); |
|
|
380 |
|
|
|
381 |
F_mdl_ng_nb = 2*(prec_mdl_ng_nb * rec_mdl_ng_nb) / (prec_mdl_ng_nb + rec_mdl_ng_nb); |
|
|
382 |
F_mdl_ng_knn = 2*(prec_mdl_ng_knn * rec_mdl_ng_knn) / (prec_mdl_ng_knn + rec_mdl_ng_knn); |
|
|
383 |
F_mdl_ng_tree = 2*(prec_mdl_ng_tree * rec_mdl_ng_tree) / (prec_mdl_ng_tree + rec_mdl_ng_tree); |
|
|
384 |
F_mdl_ng_ecoc = 2*(prec_mdl_ng_ecoc * rec_mdl_ng_ecoc) / (prec_mdl_ng_ecoc + rec_mdl_ng_ecoc); |
|
|
385 |
F_mdl_ng_ensemble = 2*(prec_mdl_ng_ensemble * rec_mdl_ng_ensemble) / (prec_mdl_ng_ensemble + rec_mdl_ng_ensemble); |
|
|
386 |
F_mdl_ng_net = 2*(prec_mdl_ng_net * rec_mdl_ng_net) / (prec_mdl_ng_net + rec_mdl_ng_net); |
|
|
387 |
% |
|
|
388 |
acc_mdl_nb = (sum(tbl_mdl_nb.TP )+ sum(tbl_mdl_nb.TN)) / (sum(tbl_mdl_nb.TP) + sum(tbl_mdl_nb.FP) + sum(tbl_mdl_nb.TN) + sum(tbl_mdl_nb.FN)); |
|
|
389 |
acc_mdl_knn = (sum(tbl_mdl_knn.TP )+ sum(tbl_mdl_knn.TN)) / (sum(tbl_mdl_knn.TP) + sum(tbl_mdl_knn.FP) + sum(tbl_mdl_knn.TN) + sum(tbl_mdl_knn.FN)); |
|
|
390 |
acc_mdl_tree = (sum(tbl_mdl_tree.TP )+ sum(tbl_mdl_tree.TN)) / (sum(tbl_mdl_tree.TP) + sum(tbl_mdl_tree.FP) + sum(tbl_mdl_tree.TN) + sum(tbl_mdl_tree.FN)); |
|
|
391 |
acc_mdl_ecoc = (sum(tbl_mdl_ecoc.TP )+ sum(tbl_mdl_ecoc.TN)) / (sum(tbl_mdl_ecoc.TP) + sum(tbl_mdl_ecoc.FP) + sum(tbl_mdl_ecoc.TN) + sum(tbl_mdl_ecoc.FN)); |
|
|
392 |
acc_mdl_ensemble = (sum(tbl_mdl_ensemble.TP )+ sum(tbl_mdl_ensemble.TN)) / (sum(tbl_mdl_ensemble.TP) + sum(tbl_mdl_ensemble.FP) + sum(tbl_mdl_ensemble.TN) + sum(tbl_mdl_ensemble.FN)); |
|
|
393 |
acc_mdl_net = (sum(tbl_mdl_net.TP )+ sum(tbl_mdl_net.TN)) / (sum(tbl_mdl_net.TP) + sum(tbl_mdl_net.FP) + sum(tbl_mdl_net.TN) + sum(tbl_mdl_net.FN)); |
|
|
394 |
|
|
|
395 |
acc_mdl_hln_nb = (sum(tbl_mdl_hln_nb.TP )+ sum(tbl_mdl_hln_nb.TN)) / (sum(tbl_mdl_hln_nb.TP) + sum(tbl_mdl_hln_nb.FP) + sum(tbl_mdl_hln_nb.TN) + sum(tbl_mdl_hln_nb.FN)); |
|
|
396 |
acc_mdl_hln_knn = (sum(tbl_mdl_hln_knn.TP )+ sum(tbl_mdl_hln_knn.TN)) / (sum(tbl_mdl_hln_knn.TP) + sum(tbl_mdl_hln_knn.FP) + sum(tbl_mdl_hln_knn.TN) + sum(tbl_mdl_hln_knn.FN)); |
|
|
397 |
acc_mdl_hln_tree = (sum(tbl_mdl_hln_tree.TP )+ sum(tbl_mdl_hln_tree.TN)) / (sum(tbl_mdl_hln_tree.TP) + sum(tbl_mdl_hln_tree.FP) + sum(tbl_mdl_hln_tree.TN) + sum(tbl_mdl_hln_tree.FN)); |
|
|
398 |
acc_mdl_hln_ecoc = (sum(tbl_mdl_hln_ecoc.TP )+ sum(tbl_mdl_hln_ecoc.TN)) / (sum(tbl_mdl_hln_ecoc.TP) + sum(tbl_mdl_hln_ecoc.FP) + sum(tbl_mdl_hln_ecoc.TN) + sum(tbl_mdl_hln_ecoc.FN)); |
|
|
399 |
acc_mdl_hln_ensemble = (sum(tbl_mdl_hln_ensemble.TP )+ sum(tbl_mdl_hln_ensemble.TN)) / (sum(tbl_mdl_hln_ensemble.TP) + sum(tbl_mdl_hln_ensemble.FP) + sum(tbl_mdl_hln_ensemble.TN) + sum(tbl_mdl_hln_ensemble.FN)); |
|
|
400 |
acc_mdl_hln_net = (sum(tbl_mdl_hln_net.TP )+ sum(tbl_mdl_hln_net.TN)) / (sum(tbl_mdl_hln_net.TP) + sum(tbl_mdl_hln_net.FP) + sum(tbl_mdl_hln_net.TN) + sum(tbl_mdl_hln_net.FN)); |
|
|
401 |
|
|
|
402 |
acc_mdl_nc_nb = (sum(tbl_mdl_nc_nb.TP )+ sum(tbl_mdl_nc_nb.TN)) / (sum(tbl_mdl_nc_nb.TP) + sum(tbl_mdl_nc_nb.FP) + sum(tbl_mdl_nc_nb.TN) + sum(tbl_mdl_nc_nb.FN)); |
|
|
403 |
acc_mdl_nc_knn = (sum(tbl_mdl_nc_knn.TP )+ sum(tbl_mdl_nc_knn.TN)) / (sum(tbl_mdl_nc_knn.TP) + sum(tbl_mdl_nc_knn.FP) + sum(tbl_mdl_nc_knn.TN) + sum(tbl_mdl_nc_knn.FN)); |
|
|
404 |
acc_mdl_nc_tree = (sum(tbl_mdl_nc_tree.TP )+ sum(tbl_mdl_nc_tree.TN)) / (sum(tbl_mdl_nc_tree.TP) + sum(tbl_mdl_nc_tree.FP) + sum(tbl_mdl_nc_tree.TN) + sum(tbl_mdl_nc_tree.FN)); |
|
|
405 |
acc_mdl_nc_ecoc = (sum(tbl_mdl_nc_ecoc.TP )+ sum(tbl_mdl_nc_ecoc.TN)) / (sum(tbl_mdl_nc_ecoc.TP) + sum(tbl_mdl_nc_ecoc.FP) + sum(tbl_mdl_nc_ecoc.TN) + sum(tbl_mdl_nc_ecoc.FN)); |
|
|
406 |
acc_mdl_nc_ensemble = (sum(tbl_mdl_nc_ensemble.TP )+ sum(tbl_mdl_nc_ensemble.TN)) / (sum(tbl_mdl_nc_ensemble.TP) + sum(tbl_mdl_nc_ensemble.FP) + sum(tbl_mdl_nc_ensemble.TN) + sum(tbl_mdl_nc_ensemble.FN)); |
|
|
407 |
acc_mdl_nc_net = (sum(tbl_mdl_nc_net.TP )+ sum(tbl_mdl_nc_net.TN)) / (sum(tbl_mdl_nc_net.TP) + sum(tbl_mdl_nc_net.FP) + sum(tbl_mdl_nc_net.TN) + sum(tbl_mdl_nc_net.FN)); |
|
|
408 |
|
|
|
409 |
acc_mdl_ng_nb = (sum(tbl_mdl_ng_nb.TP )+ sum(tbl_mdl_ng_nb.TN)) / (sum(tbl_mdl_ng_nb.TP) + sum(tbl_mdl_ng_nb.FP) + sum(tbl_mdl_ng_nb.TN) + sum(tbl_mdl_ng_nb.FN)); |
|
|
410 |
acc_mdl_ng_knn = (sum(tbl_mdl_ng_knn.TP )+ sum(tbl_mdl_ng_knn.TN)) / (sum(tbl_mdl_ng_knn.TP) + sum(tbl_mdl_ng_knn.FP) + sum(tbl_mdl_ng_knn.TN) + sum(tbl_mdl_ng_knn.FN)); |
|
|
411 |
acc_mdl_ng_tree = (sum(tbl_mdl_ng_tree.TP )+ sum(tbl_mdl_ng_tree.TN)) / (sum(tbl_mdl_ng_tree.TP) + sum(tbl_mdl_ng_tree.FP) + sum(tbl_mdl_ng_tree.TN) + sum(tbl_mdl_ng_tree.FN)); |
|
|
412 |
acc_mdl_ng_ecoc = (sum(tbl_mdl_ng_ecoc.TP )+ sum(tbl_mdl_ng_ecoc.TN)) / (sum(tbl_mdl_ng_ecoc.TP) + sum(tbl_mdl_ng_ecoc.FP) + sum(tbl_mdl_ng_ecoc.TN) + sum(tbl_mdl_ng_ecoc.FN)); |
|
|
413 |
acc_mdl_ng_ensemble = (sum(tbl_mdl_ng_ensemble.TP )+ sum(tbl_mdl_ng_ensemble.TN)) / (sum(tbl_mdl_ng_ensemble.TP) + sum(tbl_mdl_ng_ensemble.FP) + sum(tbl_mdl_ng_ensemble.TN) + sum(tbl_mdl_ng_ensemble.FN)); |
|
|
414 |
acc_mdl_ng_net = (sum(tbl_mdl_ng_net.TP )+ sum(tbl_mdl_ng_net.TN)) / (sum(tbl_mdl_ng_net.TP) + sum(tbl_mdl_ng_net.FP) + sum(tbl_mdl_ng_net.TN) + sum(tbl_mdl_ng_net.FN)); |
|
|
415 |
% |
|
|
416 |
spec_mdl_nb = sum(tbl_mdl_nb.TN) / (sum(tbl_mdl_nb.TN) + sum(tbl_mdl_nb.FP)); |
|
|
417 |
spec_mdl_knn = sum(tbl_mdl_knn.TN) / (sum(tbl_mdl_knn.TN) + sum(tbl_mdl_knn.FP)); |
|
|
418 |
spec_mdl_tree = sum(tbl_mdl_tree.TN) / (sum(tbl_mdl_tree.TN) + sum(tbl_mdl_tree.FP)); |
|
|
419 |
spec_mdl_ecoc = sum(tbl_mdl_ecoc.TN) / (sum(tbl_mdl_ecoc.TN) + sum(tbl_mdl_ecoc.FP)); |
|
|
420 |
spec_mdl_ensemble = sum(tbl_mdl_ensemble.TN) / (sum(tbl_mdl_ensemble.TN) + sum(tbl_mdl_ensemble.FP)); |
|
|
421 |
spec_mdl_net = sum(tbl_mdl_net.TN) / (sum(tbl_mdl_net.TN) + sum(tbl_mdl_net.FP)); |
|
|
422 |
|
|
|
423 |
spec_mdl_hln_nb = sum(tbl_mdl_hln_nb.TN) / (sum(tbl_mdl_hln_nb.TN) + sum(tbl_mdl_hln_nb.FP)); |
|
|
424 |
spec_mdl_hln_knn = sum(tbl_mdl_hln_knn.TN) / (sum(tbl_mdl_hln_knn.TN) + sum(tbl_mdl_hln_knn.FP)); |
|
|
425 |
spec_mdl_hln_tree = sum(tbl_mdl_hln_tree.TN) / (sum(tbl_mdl_hln_tree.TN) + sum(tbl_mdl_hln_tree.FP)); |
|
|
426 |
spec_mdl_hln_ecoc = sum(tbl_mdl_hln_ecoc.TN) / (sum(tbl_mdl_hln_ecoc.TN) + sum(tbl_mdl_hln_ecoc.FP)); |
|
|
427 |
spec_mdl_hln_ensemble = sum(tbl_mdl_hln_ensemble.TN) / (sum(tbl_mdl_hln_ensemble.TN) + sum(tbl_mdl_hln_ensemble.FP)); |
|
|
428 |
spec_mdl_hln_net = sum(tbl_mdl_hln_net.TN) / (sum(tbl_mdl_hln_net.TN) + sum(tbl_mdl_hln_net.FP)); |
|
|
429 |
|
|
|
430 |
spec_mdl_nc_nb = sum(tbl_mdl_nc_nb.TN) / (sum(tbl_mdl_nc_nb.TN) + sum(tbl_mdl_nc_nb.FP)); |
|
|
431 |
spec_mdl_nc_knn = sum(tbl_mdl_nc_knn.TN) / (sum(tbl_mdl_nc_knn.TN) + sum(tbl_mdl_nc_knn.FP)); |
|
|
432 |
spec_mdl_nc_tree = sum(tbl_mdl_nc_tree.TN) / (sum(tbl_mdl_nc_tree.TN) + sum(tbl_mdl_nc_tree.FP)); |
|
|
433 |
spec_mdl_nc_ecoc = sum(tbl_mdl_nc_ecoc.TN) / (sum(tbl_mdl_nc_ecoc.TN) + sum(tbl_mdl_nc_ecoc.FP)); |
|
|
434 |
spec_mdl_nc_ensemble = sum(tbl_mdl_nc_ensemble.TN) / (sum(tbl_mdl_nc_ensemble.TN) + sum(tbl_mdl_nc_ensemble.FP)); |
|
|
435 |
spec_mdl_nc_net = sum(tbl_mdl_nc_net.TN) / (sum(tbl_mdl_nc_net.TN) + sum(tbl_mdl_nc_net.FP)); |
|
|
436 |
|
|
|
437 |
spec_mdl_ng_nb = sum(tbl_mdl_ng_nb.TN) / (sum(tbl_mdl_ng_nb.TN) + sum(tbl_mdl_ng_nb.FP)); |
|
|
438 |
spec_mdl_ng_knn = sum(tbl_mdl_ng_knn.TN) / (sum(tbl_mdl_ng_knn.TN) + sum(tbl_mdl_ng_knn.FP)); |
|
|
439 |
spec_mdl_ng_tree = sum(tbl_mdl_ng_tree.TN) / (sum(tbl_mdl_ng_tree.TN) + sum(tbl_mdl_ng_tree.FP)); |
|
|
440 |
spec_mdl_ng_ecoc = sum(tbl_mdl_ng_ecoc.TN) / (sum(tbl_mdl_ng_ecoc.TN) + sum(tbl_mdl_ng_ecoc.FP)); |
|
|
441 |
spec_mdl_ng_ensemble = sum(tbl_mdl_ng_ensemble.TN) / (sum(tbl_mdl_ng_ensemble.TN) + sum(tbl_mdl_ng_ensemble.FP)); |
|
|
442 |
spec_mdl_ng_net = sum(tbl_mdl_ng_net.TN) / (sum(tbl_mdl_ng_net.TN) + sum(tbl_mdl_ng_net.FP)); |
|
|
443 |
|
|
|
444 |
%% Make Final Tables |
|
|
445 |
tbl_mdl = [tbl_mdl_nb;tbl_mdl_knn;tbl_mdl_tree;tbl_mdl_ecoc;tbl_mdl_ensemble;tbl_mdl_net;... |
|
|
446 |
tbl_mdl_hln_nb;tbl_mdl_hln_knn;tbl_mdl_hln_tree;tbl_mdl_hln_ecoc;tbl_mdl_hln_ensemble;tbl_mdl_hln_net;... |
|
|
447 |
tbl_mdl_nc_nb;tbl_mdl_nc_knn;tbl_mdl_nc_tree;tbl_mdl_nc_ecoc;tbl_mdl_nc_ensemble;tbl_mdl_nc_net;... |
|
|
448 |
tbl_mdl_ng_nb;tbl_mdl_ng_knn;tbl_mdl_ng_tree;tbl_mdl_ng_ecoc;tbl_mdl_ng_ensemble;tbl_mdl_ng_net]; |
|
|
449 |
|
|
|
450 |
overall_tbl = [prec_mdl_nb, rec_mdl_nb, spec_mdl_nb, F_mdl_nb, acc_mdl_nb;... |
|
|
451 |
prec_mdl_knn, rec_mdl_knn, spec_mdl_knn, F_mdl_knn, acc_mdl_knn;... |
|
|
452 |
prec_mdl_tree, rec_mdl_tree, spec_mdl_tree, F_mdl_tree, acc_mdl_tree;... |
|
|
453 |
prec_mdl_ecoc, rec_mdl_ecoc, spec_mdl_ecoc, F_mdl_ecoc, acc_mdl_ecoc;... |
|
|
454 |
prec_mdl_ensemble, rec_mdl_ensemble, spec_mdl_ensemble, F_mdl_ensemble, acc_mdl_ensemble;... |
|
|
455 |
prec_mdl_net, rec_mdl_net, spec_mdl_net, F_mdl_net, acc_mdl_net;... |
|
|
456 |
|
|
|
457 |
prec_mdl_hln_nb, rec_mdl_hln_nb, spec_mdl_hln_nb, F_mdl_hln_nb, acc_mdl_hln_nb;... |
|
|
458 |
prec_mdl_hln_knn, rec_mdl_hln_knn, spec_mdl_hln_knn, F_mdl_hln_knn, acc_mdl_hln_knn;... |
|
|
459 |
prec_mdl_hln_tree, rec_mdl_hln_tree, spec_mdl_hln_tree, F_mdl_hln_tree, acc_mdl_hln_tree;... |
|
|
460 |
prec_mdl_hln_ecoc, rec_mdl_hln_ecoc, spec_mdl_hln_ecoc, F_mdl_hln_ecoc, acc_mdl_hln_ecoc;... |
|
|
461 |
prec_mdl_hln_ensemble, rec_mdl_hln_ensemble, spec_mdl_hln_ensemble, F_mdl_hln_ensemble, acc_mdl_hln_ensemble;... |
|
|
462 |
prec_mdl_hln_net, rec_mdl_hln_net, spec_mdl_hln_net, F_mdl_hln_net, acc_mdl_hln_net;... |
|
|
463 |
|
|
|
464 |
prec_mdl_nc_nb, rec_mdl_nc_nb, spec_mdl_nc_nb, F_mdl_nc_nb, acc_mdl_nc_nb;... |
|
|
465 |
prec_mdl_nc_knn, rec_mdl_nc_knn, spec_mdl_nc_knn, F_mdl_nc_knn, acc_mdl_nc_knn;... |
|
|
466 |
prec_mdl_nc_tree, rec_mdl_nc_tree, spec_mdl_nc_tree, F_mdl_nc_tree, acc_mdl_nc_tree;... |
|
|
467 |
prec_mdl_nc_ecoc, rec_mdl_nc_ecoc, spec_mdl_nc_ecoc, F_mdl_nc_ecoc, acc_mdl_nc_ecoc;... |
|
|
468 |
prec_mdl_nc_ensemble, rec_mdl_nc_ensemble, spec_mdl_nc_ensemble, F_mdl_nc_ensemble, acc_mdl_nc_ensemble;... |
|
|
469 |
prec_mdl_nc_net, rec_mdl_nc_net, spec_mdl_nc_net, F_mdl_nc_net, acc_mdl_nc_net;... |
|
|
470 |
|
|
|
471 |
prec_mdl_ng_nb, rec_mdl_ng_nb, spec_mdl_ng_nb, F_mdl_ng_nb, acc_mdl_ng_nb;... |
|
|
472 |
prec_mdl_ng_knn, rec_mdl_ng_knn, spec_mdl_ng_knn, F_mdl_ng_knn, acc_mdl_ng_knn;... |
|
|
473 |
prec_mdl_ng_tree, rec_mdl_ng_tree, spec_mdl_ng_tree, F_mdl_ng_tree, acc_mdl_ng_tree;... |
|
|
474 |
prec_mdl_ng_ecoc, rec_mdl_ng_ecoc, spec_mdl_ng_ecoc, F_mdl_ng_ecoc, acc_mdl_ng_ecoc;... |
|
|
475 |
prec_mdl_ng_ensemble, rec_mdl_ng_ensemble, spec_mdl_ng_ensemble, F_mdl_ng_ensemble, acc_mdl_ng_ensemble;... |
|
|
476 |
prec_mdl_ng_net, rec_mdl_ng_net, spec_mdl_ng_net, F_mdl_ng_net, acc_mdl_ng_net]; |
|
|
477 |
|
|
|
478 |
% |
|
|
479 |
figure(); confusionchart(char(test2.Anot_Class), char(mdl_nb_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
480 |
figure(); confusionchart(char(test2.Anot_Class), char(mdl_knn_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
481 |
figure(); confusionchart(char(test2.Anot_Class), char(mdl_tree_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
482 |
figure(); confusionchart(char(test2.Anot_Class), char(mdl_ecoc_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
483 |
figure(); confusionchart(char(test2.Anot_Class), char(mdl_ensemble_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
484 |
figure(); confusionchart(char(test2.Anot_Class), char(mdl_net_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
485 |
|
|
|
486 |
figure(); confusionchart(char(test_hln.Anot_Class), char(mdl_hln_nb_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
487 |
figure(); confusionchart(char(test_hln.Anot_Class), char(mdl_hln_knn_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
488 |
figure(); confusionchart(char(test_hln.Anot_Class), char(mdl_hln_tree_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
489 |
figure(); confusionchart(char(test_hln.Anot_Class), char(mdl_hln_ecoc_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
490 |
figure(); confusionchart(char(test_hln.Anot_Class), char(mdl_hln_ensemble_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
491 |
figure(); confusionchart(char(test_hln.Anot_Class), char(mdl_hln_net_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
492 |
|
|
|
493 |
figure(); confusionchart(char(test_nc.Anot_Class), char(mdl_nc_nb_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
494 |
figure(); confusionchart(char(test_nc.Anot_Class), char(mdl_nc_knn_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
495 |
figure(); confusionchart(char(test_nc.Anot_Class), char(mdl_nc_tree_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
496 |
figure(); confusionchart(char(test_nc.Anot_Class), char(mdl_nc_ecoc_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
497 |
figure(); confusionchart(char(test_nc.Anot_Class), char(mdl_nc_ensemble_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
498 |
figure(); confusionchart(char(test_nc.Anot_Class), char(mdl_nc_net_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
499 |
|
|
|
500 |
figure(); confusionchart(char(test_ng.Anot_Class), char(mdl_ng_nb_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
501 |
figure(); confusionchart(char(test_ng.Anot_Class), char(mdl_ng_knn_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
502 |
figure(); confusionchart(char(test_ng.Anot_Class), char(mdl_ng_tree_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
503 |
figure(); confusionchart(char(test_ng.Anot_Class), char(mdl_ng_ecoc_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
504 |
figure(); confusionchart(char(test_ng.Anot_Class), char(mdl_ng_ensemble_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
505 |
figure(); confusionchart(char(test_ng.Anot_Class), char(mdl_ng_net_pred), 'RowSummary','row-normalized','ColumnSummary','column-normalized'); |
|
|
506 |
|
|
|
507 |
%% Demonstration models |
|
|
508 |
figure |
|
|
509 |
confusionchart(feature_tbl_2235.Anot_Class,predict(mdl_auto_nc_unbal,feature_tbl_2235(:,(8:end))),'RowSummary','row-normalized','ColumnSummary','column-normalized') |
|
|
510 |
title('confusion matrix 2235') |
|
|
511 |
figure |
|
|
512 |
confusionchart(feature_tbl_2181.Anot_Class,predict(mdl_auto_nc_unbal,feature_tbl_2181(:,(8:end))),'RowSummary','row-normalized','ColumnSummary','column-normalized') |
|
|
513 |
title('confusion matrix 2181') |
|
|
514 |
|
|
|
515 |
|
|
|
516 |
mdl_2181 = 1 - loss(mdl_auto_nc_unbal,feature_tbl_2181(:,[2,8:end]),'Anot_Class'); |
|
|
517 |
mdl_2181_lbs = predict(mdl_auto_nc_unbal,feature_tbl_2181(:,[8:end])); |
|
|
518 |
|
|
|
519 |
mdl_2235 = 1 - loss(mdl_auto_nc_unbal,feature_tbl_2235(:,[4,8:end]),'Anot_Class'); |
|
|
520 |
mdl_2235_lbs = predict(mdl_auto_nc_unbal,feature_tbl_2235(:,[8:end])); |
|
|
521 |
|
|
|
522 |
mdl_1163 = 1 - loss(mdl_auto_nc_unbal,feature_tbl_1163(:,[2,6:end]),'Anot_Class'); |
|
|
523 |
mdl_1163_lbs = predict(mdl_auto_nc_unbal,feature_tbl_1163(:,[6:end])); |
|
|
524 |
|
|
|
525 |
%%%%%% |
|
|
526 |
mdl_2181 = 1 - loss(mdl_auto_unbal_ng,feature_tbl_2181(:,[2,8:end]),'Anot_Class'); |
|
|
527 |
mdl_2181_lbs = predict(new_mdl,table2array(feature_tbl_2181(:,8:end))); |
|
|
528 |
|
|
|
529 |
mdl_2235 = 1 - loss(mdl_auto_unbal_ng,feature_tbl_2235(:,4,8:end),'Anot_Class'); |
|
|
530 |
mdl_2235_lbs = predict(new_mdl,table2array(feature_tbl_2235(:,8:end))); |
|
|
531 |
|
|
|
532 |
mdl_1163 = 1 - loss(mdl_auto_unbal_ng,feature_tbl_1163(:,2,6:end),'Anot_Class'); |
|
|
533 |
mdl_1163_lbs = predict(new_mdl,table2array(feature_tbl_1163(:,6:end))); |
|
|
534 |
|
|
|
535 |
figure |
|
|
536 |
confusionchart(train_ng.Anot_Class,predict(mdl_auto_unbal_ng,table2array(train_ng(:,2:25))),'RowSummary','row-normalized','ColumnSummary','column-normalized') |
|
|
537 |
title('confusion matrix test') |
|
|
538 |
|
|
|
539 |
|
|
|
540 |
%% Create Whole Mounts |
|
|
541 |
% anot_names = {'Atrophy','Seminal_Vesicles','HGPIN','Tissue','G3','G4CG','G4FG','G5','Background'}; |
|
|
542 |
% map = [0 0 0 % atrophy |
|
|
543 |
% 0 0 255 |
|
|
544 |
% 255 120 0 |
|
|
545 |
% 220 140 200 %% |
|
|
546 |
% 50 255 0 |
|
|
547 |
% 255 20 255 |
|
|
548 |
% 255 250 20 |
|
|
549 |
% 0 255 255 |
|
|
550 |
% 220 222 221]; |
|
|
551 |
% |
|
|
552 |
anot_names = {'Normal','G3','G4CG','G4FG','G5','Background'}; |
|
|
553 |
map = [220 140 200 |
|
|
554 |
50 255 0 |
|
|
555 |
255 20 255 |
|
|
556 |
255 250 20 |
|
|
557 |
0 255 255 |
|
|
558 |
220 222 221]; |
|
|
559 |
|
|
|
560 |
% anot_names = {'Normal','Cancer','Background'}; |
|
|
561 |
% map = [220 140 200 |
|
|
562 |
% 50 255 0 |
|
|
563 |
% 255 20 255 |
|
|
564 |
% 255 250 20 |
|
|
565 |
% 0 255 255 |
|
|
566 |
% 255 255 255]; |
|
|
567 |
% % 220 222 221]; |
|
|
568 |
|
|
|
569 |
anot_names = {'Normal','Low','High','Background'}; |
|
|
570 |
map = [220 140 200 |
|
|
571 |
255 0 0 |
|
|
572 |
0 0 255 |
|
|
573 |
220 222 221]; |
|
|
574 |
map = uint8(map); |
|
|
575 |
|
|
|
576 |
feature_tbl_2181 = [feature_tbl_2181 table(mdl_2181_lbs)]; |
|
|
577 |
feature_tbl_2181.Properties.VariableNames{32} = 'prediction'; |
|
|
578 |
feature_tbl_2181.prediction = categorical(feature_tbl_2181.prediction); |
|
|
579 |
|
|
|
580 |
for i = 1:numel(anot_names) |
|
|
581 |
loc = find(feature_tbl_2181.prediction == anot_names{i}); |
|
|
582 |
feature_tbl_2181(loc,33) = {i}; |
|
|
583 |
end |
|
|
584 |
feature_tbl_2181.Properties.VariableNames{33} = 'pred_indx'; |
|
|
585 |
|
|
|
586 |
wm2181 = zeros(34,41); |
|
|
587 |
for h = 1:height(feature_tbl_2181) |
|
|
588 |
tile = feature_tbl_2181.Tile_Name{h}; |
|
|
589 |
name = strsplit(tile,{'_','.'}); |
|
|
590 |
i = str2num(name{4}(2:end)); |
|
|
591 |
j = str2num(name{5}(2:end)); |
|
|
592 |
wm2181(j,i) = feature_tbl_2181.pred_indx(h); |
|
|
593 |
end |
|
|
594 |
wm2181(find(wm2181==0)) = numel(anot_names); |
|
|
595 |
|
|
|
596 |
figure(); |
|
|
597 |
imagesc(wm2181); colormap(map); title('classifier'); |
|
|
598 |
|
|
|
599 |
|
|
|
600 |
feature_tbl_2235 = [feature_tbl_2235 table(mdl_2235_lbs)]; |
|
|
601 |
feature_tbl_2235.Tile_Name = cellstr(feature_tbl_2235.Tile_Name); |
|
|
602 |
feature_tbl_2235.Properties.VariableNames{32} = 'prediction'; |
|
|
603 |
feature_tbl_2235.prediction = categorical(feature_tbl_2235.prediction); |
|
|
604 |
for i = 1:numel(anot_names) |
|
|
605 |
loc = find(feature_tbl_2235.prediction == anot_names{i}); |
|
|
606 |
feature_tbl_2235(loc,33) = {i}; |
|
|
607 |
end |
|
|
608 |
feature_tbl_2235.Properties.VariableNames{33} = 'pred_indx'; |
|
|
609 |
|
|
|
610 |
|
|
|
611 |
wm2235 = zeros(24,31); |
|
|
612 |
for h = 1:height(feature_tbl_2235) |
|
|
613 |
tile = feature_tbl_2235.Tile_Name{h}; |
|
|
614 |
name = strsplit(tile,{'_','.'}); |
|
|
615 |
i = str2num(name{4}(2:end)); |
|
|
616 |
j = str2num(name{5}(2:end)); |
|
|
617 |
wm2235(j,i) = feature_tbl_2235.pred_indx(h); |
|
|
618 |
end |
|
|
619 |
|
|
|
620 |
wm2235(find(wm2235==0)) = numel(anot_names); |
|
|
621 |
|
|
|
622 |
figure(); |
|
|
623 |
imagesc(wm2235); colormap(map); title('classifier'); |
|
|
624 |
|
|
|
625 |
|
|
|
626 |
feature_tbl_1163 = [feature_tbl_1163 table(mdl_1163_lbs)]; |
|
|
627 |
feature_tbl_1163.Tile_Name = cellstr(feature_tbl_1163.Tile_Name); |
|
|
628 |
feature_tbl_1163.Properties.VariableNames{30} = 'prediction'; |
|
|
629 |
feature_tbl_1163.prediction = categorical(feature_tbl_1163.prediction); |
|
|
630 |
for i = 1:numel(anot_names) |
|
|
631 |
loc = find(feature_tbl_1163.prediction == anot_names{i}); |
|
|
632 |
feature_tbl_1163(loc,31) = {i}; |
|
|
633 |
end |
|
|
634 |
feature_tbl_1163.Properties.VariableNames{31} = 'pred_indx'; |
|
|
635 |
|
|
|
636 |
|
|
|
637 |
wm1163 = zeros(39,33); |
|
|
638 |
for h = 1:height(feature_tbl_1163) |
|
|
639 |
tile = feature_tbl_1163.Tile_Name{h}; |
|
|
640 |
name = strsplit(tile,{'_','.'}); |
|
|
641 |
i = str2num(name{4}(2:end)); |
|
|
642 |
j = str2num(name{5}(2:end)); |
|
|
643 |
wm1163(j,i) = feature_tbl_1163.pred_indx(h); |
|
|
644 |
end |
|
|
645 |
|
|
|
646 |
wm1163(find(wm1163==0)) = numel(anot_names); |
|
|
647 |
|
|
|
648 |
figure(); |
|
|
649 |
imagesc(wm1163); colormap(map); title('classifier'); |
|
|
650 |
|
|
|
651 |
|
|
|
652 |
anot_2181 = imread('/Volumes/Hera/Prostate_Data/2181/Hist/9/Olympus/large_recon_8_ANOT.tif'); |
|
|
653 |
anot_2181 = anot_2181(:,:,1:3); |
|
|
654 |
whole_image2181 = imread('/Volumes/Hera/Prostate_Data/2181/Hist/9/Olympus/large_recon_8_nowhite.tiff'); |
|
|
655 |
|
|
|
656 |
[Seminal_Vesicles,Atrophy,HGPIN,G3,G4FG,G4CG,G5,tissue_mask] = color_thresh_masks(anot_2181,whole_image2181,0,0); |
|
|
657 |
|
|
|
658 |
% Normal vs Cancer |
|
|
659 |
ken2181 = (Atrophy+HGPIN+Seminal_Vesicles+tissue_mask) + 2*G3 + 3*G4CG + 4*G4FG + 5*G5; |
|
|
660 |
ken2181(find(ken2181==0)) = numel(anot_names); |
|
|
661 |
% figure(); imagesc(ken2181); colormap(map); |
|
|
662 |
|
|
|
663 |
atari_2181 = imresize(ken2181,size(wm2181),'nearest'); |
|
|
664 |
% figure(); imagesc(atari_2181); colormap(map) |
|
|
665 |
|
|
|
666 |
wm2181(find(atari_2181 == numel(anot_names))) = numel(anot_names); |
|
|
667 |
atari_2181(find(wm2181 == numel(anot_names))) = numel(anot_names); |
|
|
668 |
figure(); |
|
|
669 |
subplot(121); imagesc(wm2181); colormap(map); title('classifier'); axis image |
|
|
670 |
subplot(122); imagesc(atari_2181); colormap(map); title('ken'); axis image |
|
|
671 |
|
|
|
672 |
for i = 1:numel(anot_names) |
|
|
673 |
comp_table2(i,1) = {anot_names{i}}; |
|
|
674 |
comp_table2(i,2) = {numel(find(atari_2181 == i))}; % Ken volume |
|
|
675 |
comp_table2(i,3) = {numel(find(wm2181 == i))}; % Classifier volume |
|
|
676 |
comp_table2(i,4) = {dice((atari_2181==i),(wm2181==i))}; |
|
|
677 |
end |
|
|
678 |
|
|
|
679 |
figure |
|
|
680 |
b = bar(categorical(anot_names),cell2mat(comp_table2(:,2:3))); |
|
|
681 |
xtips1 = b(1).XEndPoints; |
|
|
682 |
ytips1 = b(1).YEndPoints; |
|
|
683 |
labels1 = string(b(1).YData); |
|
|
684 |
text(xtips1,ytips1,labels1,'HorizontalAlignment','center',... |
|
|
685 |
'VerticalAlignment','bottom') |
|
|
686 |
xtips2 = b(2).XEndPoints; |
|
|
687 |
ytips2 = b(2).YEndPoints; |
|
|
688 |
labels2 = string(b(2).YData); |
|
|
689 |
text(xtips2,ytips2,labels2,'HorizontalAlignment','center',... |
|
|
690 |
'VerticalAlignment','bottom') |
|
|
691 |
title('2181 Volume'); |
|
|
692 |
|
|
|
693 |
|
|
|
694 |
|
|
|
695 |
anot_1163 = imread('/Volumes/Hera/Prostate_Data/1163/Hist/7/Olympus/large_recon_8_ANOT.tif'); |
|
|
696 |
anot_1163= anot_1163(:,:,1:3); |
|
|
697 |
whole_image1163 = imread('/Volumes/Hera/Prostate_Data/1163/Hist/7/Olympus/large_recon_8_nowhite.tiff'); |
|
|
698 |
|
|
|
699 |
[Seminal_Vesicles,Atrophy,HGPIN,G3,G4FG,G4CG,G5,tissue_mask] = color_thresh_masks(anot_1163,whole_image1163,0,0); |
|
|
700 |
|
|
|
701 |
% % % All Annotation Classes |
|
|
702 |
% ken2181 = Atrophy + 2*Seminal_Vesicles + 3*HGPIN + 4*tissue_mask + 5*G3 + 6*G4CG + 7*G4FG + 8*G5; |
|
|
703 |
% ken2181(find(ken2181==0)) = numel(anot_names); |
|
|
704 |
% figure(); imagesc(ken2181); colormap(map) |
|
|
705 |
|
|
|
706 |
% Normal vs Cancer |
|
|
707 |
ken1163 = (Atrophy+HGPIN+Seminal_Vesicles+tissue_mask) + 2*G3 + 3*G4CG + 4*G4FG + 5*G5; |
|
|
708 |
ken1163(find(ken1163==0)) = numel(anot_names); |
|
|
709 |
% figure(); imagesc(ken2181); colormap(map); |
|
|
710 |
|
|
|
711 |
atari_1163 = imresize(ken1163,size(wm1163),'nearest'); |
|
|
712 |
% figure(); imagesc(atari_2181); colormap(map) |
|
|
713 |
|
|
|
714 |
wm1163(find(atari_1163 == numel(anot_names))) = numel(anot_names); |
|
|
715 |
atari_1163(find(wm1163 == numel(anot_names))) = numel(anot_names); |
|
|
716 |
figure(); |
|
|
717 |
subplot(121); imagesc(wm1163); colormap(map); title('classifier'); axis image |
|
|
718 |
subplot(122); imagesc(atari_1163); colormap(map); title('ken'); axis image |
|
|
719 |
|
|
|
720 |
for i = 1:numel(anot_names) |
|
|
721 |
comp_table2(i,1) = {anot_names{i}}; |
|
|
722 |
comp_table2(i,2) = {numel(find(atari_2181 == i))}; % Ken volume |
|
|
723 |
comp_table2(i,3) = {numel(find(wm2181 == i))}; % Classifier volume |
|
|
724 |
comp_table2(i,4) = {dice((atari_2181==i),(wm2181==i))}; |
|
|
725 |
end |
|
|
726 |
|
|
|
727 |
figure |
|
|
728 |
b = bar(categorical(anot_names),cell2mat(comp_table2(:,2:3))); |
|
|
729 |
xtips1 = b(1).XEndPoints; |
|
|
730 |
ytips1 = b(1).YEndPoints; |
|
|
731 |
labels1 = string(b(1).YData); |
|
|
732 |
text(xtips1,ytips1,labels1,'HorizontalAlignment','center',... |
|
|
733 |
'VerticalAlignment','bottom') |
|
|
734 |
xtips2 = b(2).XEndPoints; |
|
|
735 |
ytips2 = b(2).YEndPoints; |
|
|
736 |
labels2 = string(b(2).YData); |
|
|
737 |
text(xtips2,ytips2,labels2,'HorizontalAlignment','center',... |
|
|
738 |
'VerticalAlignment','bottom') |
|
|
739 |
title('2181 Volume'); |