-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.m
51 lines (36 loc) · 2.46 KB
/
main.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
clear();
load("dataset\IS_dataset.mat")
copies = 10;
seed = 27;
% generate couples (master, noisedmaster)
[specmaster, specnoised] = gen_copies(spectra, copies, seed);
% compute lab coordinates for both sets
[labmaster, labnoise] = compute_lab(specmaster, specnoised, copies);
% compute DeltaE
distance = de(labnoise', labmaster')'
% figure('Position', [100, 100, 1000, 400]);
% subplot(1,2,1)
% plot(spec)
% yyaxis right
% plot(specnoised)
% lab1 = roo2lab(spec'.*speccoeff, 'D65/2', 380:1:800)
% lab2 = roo2lab(specnoised'.*speccoeff, 'D65/2', 380:1:800)
% subplot(1,2,2)
% print_diff_lab(lab1, lab2);
% distance = sqrt( (lab2(1)-lab1(1))^2 + (lab2(2)-lab1(2))^2 + (lab2(3)-lab1(3))^2 )
features = compute_features(specmaster, specnoised, copies);
opt = statset('display', 'iter');
%[fs, history] = sequentialfs(@fs_net, features, distance', 'cv', 'none', 'opt', opt, 'nfeatures', 12);
% compute best network
%bestfeatures = features(:,fs);
%selected best 10 features - parabola regression
%bestfeatures = features(:, [true false false false true false false true false false true false false false false true false false false false false false true false false false false false false false true false true false false false false false true true false false false false false false false false]);
%bestfeatures = features(:, [true true false false false false false true false false false false false false true true false false false false false false true false true false false false false false true false true false false true false false false false false false]);
% 10 features, 10 neurons (0.84)
%bestfeatures = features(:, boolean([0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 1 0 0 1 0 1 0 1]));
% 12 features, 10 neurons (0.93) (others,skewness,sum,NO regression)
%bestfeatures = features(:, boolean([1 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 1 0 0 1 0 1 0 0 1 0 0]));
% 12 features, 10 neurons (0.963, 0.135) (others,skewness,sum,regression)
bestfeatures = features(:, boolean([0 1 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 1 0 0 0 0 0 0 1 0 0 1 0 1 0 1 0 0 1 0 0 1 0]));
mse = fs_net_final(bestfeatures, distance');
disp(['Mean Squared Error = ', num2str(mse)]);