📄 equalsze.m
字号:
% Equalise number of samples per class
%
% Gives equal priors while avoiding random selection of each new sample
% and so prevents over and under representation of samples.
function GcsProject = EqualSze(GcsProject)
% Find largest number of samples of any class
maxSamples = 0;
for cindex =1:GcsProject.Gcs.NoClasses
eval(['No = size(GcsProject.data' int2str(cindex) ',1);']); % Count samples
if No>maxSamples
maxSamples = No
end
end
% Replicate samples for smaller classes
% For each class
for cindex =1:GcsProject.Gcs.NoClasses
eval(['No = size(GcsProject.data' int2str(cindex) ',1);']);
eval(['tempset = GcsProject.data' int2str(cindex) ';']); % Augmented set to be constructed
% while extra samples needed > number of actual samples
while maxSamples -size(tempset,1) > No
% replicate entire set
eval(['tempset = [tempset; GcsProject.data' int2str(cindex) '];']);
end
% Pick remaining samples (<number in original set) randomly without replacement from original set
while maxSamples -size(tempset,1) > 0
eval(['index = ceil(size(GcsProject.data' int2str(cindex) ',1)*rand(1));']);
eval(['tempset = [tempset; GcsProject.data' int2str(cindex) '(index,:)];']);
eval(['GcsProject.data' int2str(cindex) '(index,:) = [];']);
end
eval(['GcsProject.data' int2str(cindex) ' = tempset;']);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -