forked from Alexflex/HNNC
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtestClassificationTask.m
105 lines (87 loc) · 2.88 KB
/
testClassificationTask.m
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
function testClassificationTask()
% Функция осуществляет тестирование МСП на базе данных из каталога
% preparedDataSets на решении задач классификации. Результаты работы
% выводятся в соответствующий файл каталога testClassificationTask
clc;
clear all;
global flogid;
flogid = 1;
% список имен файлов, содержащих исходные данные для наборов множеств ИНС
filenames = {...
'cancer1',...
'cancer2',...
'cancer3',...
'card1',...
'card2',...
'card3',...
'diabetes1',...
'diabetes2',...
'diabetes3',...
'gene1',...
'gene2',...
'gene3',...
'glass1',...
'glass2',...
'glass3',...
'horse1',...
'horse2',...
'horse3',...
'mushroom1',...
'mushroom2',...
'mushroom3',...
'soybean1',...
'soybean2',...
'soybean3',...
'thyroid1',...
'thyroid2',...
'thyroid3', ...
'textureCR', ...
'vowels', ...
'nXOR'
};
tic;
fprintf('\nНачало обработки базы тестовых задач...');
for k = 1:length(filenames)
path = strcat('./learnedTasks/', filenames(k), '_text__log.dat');
flogid = fopen(char(path), 'w');
if(flogid == -1)
error('Test: Не могу открыть файл %s', filenames(k));
end
fprintf('\n\tОбрабатывается %s', char(filenames(k)));
% загрузка соответствующего набора данных
ds = loadDataSets(char(filenames(k)));
% создание МСП заданной архитектуры
net = mlpCreate([ds.numInputs, 10, 8, ds.numOutputs], ...
{'tansig'; 'tansig'; 'tansig'});
% обучение сети
[net, errors] = mlpTrain(net, ds);
% сохранение обученной сети в файл
path = strcat('./learnedTasks/', filenames(k), '_mlp');
mlpSave(net, char(path));
% сохранение графика обучения в файл
path = strcat('./learnedTasks/', filenames(k), '_log');
mlpPlot(char(path), errors, false);
% сохранение лога обучения в файл
path = strcat('./learnedTasks/', filenames(k), '_errors');
save(char(path), 'errors');
% тестирование сети
printMessage('\n\tТестирование МСП на обучающем множестве');
printMLPEvalLog(net, ds.training);
if(ds.hasTest)
printMessage('\n\tТестирование МСП на тестовом множестве');
printMLPEvalLog(net, ds.test);
end
if(ds.hasValidation)
printMessage('\n\tТестирование МСП на контрольном множестве');
printMLPEvalLog(net, ds.validation);
end
% сохранение лога обучения в файл
path = strcat('./learnedTasks/', filenames(k), '_errors_matlab_mlp');
% создание и обучение МСП Matlab
mlpMatlabTest(ds, path, ds.numInputs, 10, 8);
fclose(flogid);
pause(1);
end
fprintf('\nОбработка базы завершена. %d задач за %8.3f с\n', ...
length(filenames), toc);
end % of function