📄 main_pca.m
字号:
function [mse_PCA, R2_PCA, accu_PCA] = main_PCA(blocksize)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%% PCA -> reduced features
% load data
load initial_ALZ_drifed_masked;
num_AA_volumes = size(AA, 2);
num_BB_volumes = size(BB, 2);
num_all_volumes = num_AA_volumes + num_BB_volumes;
all_volumes = [AA BB];
[nx ny nz] = size(all_volumes{1});
n_all_images = nz * num_all_volumes;
no_features = round(nx/blocksize) * round(ny/blocksize);
% retrieve features for each image
all_image = cell(1,n_all_images); % contains the features for all images
i_image = 1;
for index = 1: num_all_volumes
one_volume = all_volumes{index};
for i_2D = 1: nz
% get the 2D slices from volume
slice = one_volume(:,:,i_2D);
% get principle features of each
all_image{i_image} = slice;
i_image = i_image+1;
end
end
PCA_data = [];
for i = 1: n_all_images
if i <= 612
class = 0; % has disease
else
class = 1; % no disease
end
data = reshape(all_image{i}, 1, []);
data = [data class];
PCA_data = [PCA_data; data];
end
col = size(PCA_data, 2);
fprintf('PCA begin...\n');
[PCcoeff, PCvec] = pca(PCA_data(:,1:col-1), no_features);
fprintf('PCA finished...\n');
PCA_compressed_data = [PCA_data(:, 1:col-1) * PCvec PCA_data(:,col)];
[mse_PCA, R2_PCA, accu_PCA] = classifierANN(PCA_compressed_data);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -